diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f0366ca --- /dev/null +++ b/.gitignore @@ -0,0 +1,64 @@ +#OS junk files +[Tt]humbs.db +*.DS_Store + +#Visual Studio files +*.[Oo]bj +*.user +*.aps +*.pch +*.vspscc +*.vssscc +*_i.c +*_p.c +*.ncb +*.suo +*.tlb +*.tlh +*.bak +*.[Cc]ache +*.ilk +*.log +*.lib +*.sbr +*.sdf +*.opensdf +*.unsuccessfulbuild +ipch/ +obj/ +[Bb]in +[Dd]ebug*/ +[Rr]elease*/ +Ankh.NoLoad + +#MonoDevelop +*.pidb +*.userprefs + +#Tooling +_ReSharper*/ +*.resharper +[Tt]est[Rr]esult* +*.sass-cache + +#Project files +[Bb]uild/ + +#Subversion files +.svn + +# Office Temp Files +~$* + +#NuGet +packages/ + +#ncrunch +*ncrunch* +*crunch*.local.xml + +# visual studio database projects +*.dbmdl + +#Test files +*.testsettings \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..a42a2b0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,56 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + 1. You must give any other recipients of the Work or Derivative Works a copy of this License; and + + 2. You must cause any modified files to carry prominent notices stating that You changed the files; and + + 3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + + 4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + +You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +See FAQ for answers to frequently asked questions about this license. + diff --git a/README-original.md b/README-original.md new file mode 100644 index 0000000..702bae9 --- /dev/null +++ b/README-original.md @@ -0,0 +1,11 @@ +F# 3.0 Compiler + Library Source Code Drop, matching Visual Studio 2012 (R) RTM binary release +=== + + +The original README can be found at http://fsharppowerpack.codeplex.com/SourceControl/changeset/view/70537#1229467 + +It has been removed to avoid confusion because the build instructions were Windows-specific. + +**License:** subject to terms and conditions of the Apache License, Version 2.0. A copy of the license can be found in the License.html file at the root of this distribution. By using this source code in any fashion, you are agreeing to be bound by the terms of the Apache License, Version 2.0. You must not remove this notice, or any other, from this software. + +**Questions?** If you have questions about the source code, please ask at the [F# Open Source Google Group](http://groups.google.com/group/fsharp-opensource). Please do not ask the Visual F# team at Microsoft for help with this source code: they like to be friendly, but they are very busy working on improving F# and need to focus on that. diff --git a/README.md b/README.md new file mode 100644 index 0000000..8a40b2b --- /dev/null +++ b/README.md @@ -0,0 +1,205 @@ +This is the F# compiler, core library and core tools (open source edition). It uses the Apache 2.0 license. + +The `master` branch is for the latest version of F# (currently F# 3.0). + +To bootstrap the compiler, binaries built from an earlier version of this project are used. + +## Requirements + +Requires mono 2.9 or higher. Prefer Mono 3.0. + +On OSX, requires automake 2.69. To install from [homebrew](http://mxcl.github.com/homebrew): +``` +brew install automake +``` + + +## Building + +### On Linux and other Unix systems: +The usual: +``` +./autogen.sh +make +sudo make install +``` +By default that makes optimized binaries. To make debug, use ```make CONFIG=debug``` + + +### On MacOS (OSX) + +Use a prefix to your version of Mono: +``` +./autogen.sh --prefix=/Library/Frameworks/Mono.framework/Versions/Current/ +make +sudo make install +``` +By default that makes optimized binaries. To make debug, use ```make CONFIG=debug``` + +### On Windows, using msbuild (e.g.. if .NET is installed) +If you have only VS2012 installed, and not VS2010, you'll need to install the F# 2.0 Runtime (http://www.microsoft.com/en-us/download/details.aspx?id=13450) +``` +cd src +msbuild fsharp-proto-build.proj +ngen install ..\lib\proto\4.0\fsc-proto.exe (optional) +msbuild fsharp-library-build.proj /p:Configuration=Release +msbuild fsharp-compiler-build.proj /p:Configuration=Release +``` +You can also build the FSharp.Core for .NET 2.0, Mono 2.1, MonoTouch, Silverlight 5.0, Windows Phone 7.1, Portable Profile47 (net45+sl5+win8), Portable Profile88 (net4+sl4+wp71+win8) and XNA 4.0 for Xbox 360 profiles: +``` +msbuild fsharp-library-build.proj /p:TargetFramework=net20 /p:Configuration=Release +msbuild fsharp-library-build.proj /p:TargetFramework=mono21 /p:Configuration=Release +msbuild fsharp-library-build.proj /p:TargetFramework=monotouch /p:Configuration=Release +msbuild fsharp-library-build.proj /p:TargetFramework=portable-net45+sl5+win8 /p:Configuration=Release +msbuild fsharp-library-build.proj /p:TargetFramework=portable-net4+sl4+wp71+win8 /p:Configuration=Release +msbuild fsharp-library-build.proj /p:TargetFramework=sl5 /p:Configuration=Release +msbuild fsharp-library-build.proj /p:TargetFramework=wp7 /p:Configuration=Release +msbuild fsharp-library-build.proj /p:TargetFramework=net40-xna40-xbox360 /p:Configuration=Release +``` +You can also build the FSharp.Core and FSharp.Compiler.Silverlight.dll for Silverlight 5.0: +``` +msbuild fsharp-library-build.proj /p:TargetFramework=sl5-compiler /p:Configuration=Release +msbuild fsharp-compiler-build.proj /p:TargetFramework=sl5-compiler /p:Configuration=Release +``` +Change to ``` /p:Configuration=Debug``` for debug binaries. + +### On Windows, using xbuild (e.g. if no .NET is installed and only Mono 3.0 is installed): + +``` +cd src +xbuild fsharp-proto-build.proj +xbuild fsharp-library-build.proj +xbuild fsharp-compiler-build.proj +``` + +Building using xbuild does not yet lay down a Mono-ready distribution (see src/fsharp/targets.make), so should only +be used for private development rather than preparing distributions. + + +## Strong Names + +The FSharp.Core.dll produced is only delay-signed (Mono does not require strong names). +If a strong-name signed FSharp.Core.dll is needed then use the one in +``` + lib\bootstrap\signed\3.0\v4.0\FSharp.Core.dll +``` + + +## What you get + +Once built the main compiler binaries go in + lib/release/4.0 + +There are versions of FSharp.Core for .NET 2.0, MonoAndroid, MonoTouch (Mono profile 2.1) in + lib/release/2.0 + lib/release/2.1 + lib/release/2.1monotouch + +On 'make install' the binaries etc. go in the prefix, e.g. + + /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/2.0/FSharp.Core.dll + /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/2.1/FSharp.Core.dll + /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.0/fsc.exe + /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.0/FSharp.Compiler.dll + ... + /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.5/fsc.exe + /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.5/FSharp.Compiler.dll + ... + /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/gac/.../FSharp.Compiler.dll + /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/gac/.../FSharp.Compiler.dll + ... + +plus some files for xbuild support + + /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/Microsoft\ F#/v4.0/* + /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/Microsoft\ SDKs/F#/3.0/Framework/* + +(these names are the canonical names for Microsoft.FSharp.Targets used by project files coming from Visual Studio) + +plus scripts + + /usr/bin/fsharpc (F# compiler) + /usr/bin/fsharpi (F# Interactive) + +## Development notes + +###Continuous Integration Build + +We have a CI build set up with the JetBrains/Teamcity server as part of the F# community projects there: + +http://teamcity.codebetter.com/project.html?projectId=project61&tab=projectOverview + +@forki controls access. Right now this builds both a Mono 'make' install and a Windows 'cd src; msbuild fsharp-build.proj' build. No binaries are saved from the build, it is just for sanity checking. + + +###Editing the Compiler with Visual Studio or MonoDevelop + +Open `all-vs2012.sln`, and edit in modes Debug or Release. The compiler takes a good while to compile and that +can be a bit invasive to the work flow, so it's normally better to do the actual compilation from +the command line, see above. + +The F# support in MonoDevelop uses an in-process background compiler. On the Mac this causes pausing garbage +collections to kick in which makes editing the compiler in MonoDevelop awkward. + +### Building F# Core Unit Tests for .NET 4.x (optional) + +This uses the proto compiler to build the unit tests that check some parts of `FSharp.Core.dll` and `FSharp.Compiler.dll`. There is also another set of tests under `tests\fsharp`. + +``` +msbuild fsharp-library-unittests-build.proj /p:TargetFramework=net40 +``` + +*Note: You must have NUnit installed to build the unit tests.* + + + +### Validation and Use + +Here are some simple tests to validate what you have built by checking `fsi.exe` (F# Interactive) starts up: + +``` +lib\debug\4.0\fsi.exe +1 + 1;; +\#q;; +lib\debug\4.0\fsi.exe /help +lib\debug\4.0\fsc.exe /help +echo printfn "hello world" > hello.fs +lib\debug\4.0\fsc.exe hello.fs +hello.exe +``` + +### Running Compiler tests (on Windows) + +There are language tests under `tests\fsharp\core`. The test apparatus is primitive and unfortunately uses batch files. You can run these on Windows using: + +``` +cd ..\tests\fsharp\core +..\..\build-and-run-all-installed-ilx-configs.bat results.log +``` + +The results file will contain one entry for each test directory, plus any reported errors. + +``` +tests\fsharp\core +tests\fsharp\core\queriesCustomQueryOps +tests\fsharp\core\queriesLeafExpressionConvert +tests\fsharp\core\queriesNullableOperators +tests\fsharp\core\queriesOverIEnumerable +... +``` + +Some tests for LINQ queries require SQL Server be installed. A failing test will look like this: + +``` +ERRORLEVEL=1: in tests\fsharp\core\csfromfs\build.bat +``` + +You can then go to the relevant directory and run `build.bat` and `run.bat`. + + +## History + +F# compiler sources dropped by Microsoft are available from [fsharppowerpack.codeplex.com](http://fsharppowerpack.codeplex.com). + +Uses bootstrapping libraries, tools and F# compiler. The `lib/bootstrap/X.0` directories contain mono-built libraries, compiler and tools that can be used to bootstrap a build. You can also supply your own via the `--with-bootstrap` option. + diff --git a/samples/crlish/TestApp/App.config b/samples/crlish/TestApp/App.config new file mode 100644 index 0000000..8e15646 --- /dev/null +++ b/samples/crlish/TestApp/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/samples/crlish/TestApp/Program.cs b/samples/crlish/TestApp/Program.cs new file mode 100644 index 0000000..6517c3b --- /dev/null +++ b/samples/crlish/TestApp/Program.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace TestApp +{ + class Program + { + static void Main(string[] args) + { + int i = 1 + 1; + Console.WriteLine(i); + } + } +} diff --git a/samples/crlish/TestApp/Properties/AssemblyInfo.cs b/samples/crlish/TestApp/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..bc9722e --- /dev/null +++ b/samples/crlish/TestApp/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("TestApp")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("TestApp")] +[assembly: AssemblyCopyright("Copyright © 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("9958c0ed-5145-4c38-87ac-97c8a0f2aee6")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/samples/crlish/TestApp/TestApp.csproj b/samples/crlish/TestApp/TestApp.csproj new file mode 100644 index 0000000..ea43450 --- /dev/null +++ b/samples/crlish/TestApp/TestApp.csproj @@ -0,0 +1,58 @@ + + + + + Debug + AnyCPU + {E3F21F5E-94A5-485D-9FC0-571D27E87EE8} + Exe + Properties + TestApp + TestApp + v4.5 + 512 + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/crlish/clrish/App.config b/samples/crlish/clrish/App.config new file mode 100644 index 0000000..c9bdc98 --- /dev/null +++ b/samples/crlish/clrish/App.config @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/crlish/clrish/ExecutionEngine.fs b/samples/crlish/clrish/ExecutionEngine.fs new file mode 100644 index 0000000..8f5c420 --- /dev/null +++ b/samples/crlish/clrish/ExecutionEngine.fs @@ -0,0 +1,334 @@ +module ExecutionEngine +open System +open System.Collections.Generic +open Microsoft.FSharp.Compiler.AbstractIL.ILBinaryReader +open Microsoft.FSharp.Compiler.AbstractIL.IL + +type InstructionResult = + | NoResult + | Return of obj + | Branch of ILCodeLabel + | ExceptionThrown of Exception + + +let rec exeMethod (currentModule: ILModuleReader) (parameters: obj[]) (typeDef: ILTypeDef) (methodDef: ILMethodDef) = + let stack = new Stack() + let locals = Array.zeroCreate methodDef.Locals.Length + + let exeTargetMethod (ilMethodSpec: ILMethodSpec) objPtr = + let innerExe ilTypeSpec = + let targetType, targetModule = TypeManagement.getType currentModule ilTypeSpec + let possibleMethods = targetType.Methods.FindByName(ilMethodSpec.Name) + let targetMethod = possibleMethods |> Seq.tryFind (fun x -> x.CallingSignature.ArgTypes = ilMethodSpec.FormalArgTypes) + match targetMethod with + | Some targetMethod -> + let parameters = + match objPtr with + | Some x -> + let parameters = Array.zeroCreate (stack.Count + 1) + stack.CopyTo(parameters, 0) + parameters.[stack.Count] <-x + parameters |> Array.rev + | None -> stack.ToArray() + MemoryManagement.pushThreadParameters parameters targetMethod + let result = exeMethod targetModule parameters targetType targetMethod + stack.Clear() + MemoryManagement.popThreadParameters () + let result' = + match result with + | Return result -> + stack.Push result + NoResult + | _ -> result + result' + | None -> failwith "failed to find method %A" ilMethodSpec + match ilMethodSpec.EnclosingType with + | ILType.Void -> failwith "Unsupported type" + | ILType.Array (ilArrayShape, ilType) -> failwith "Unsupported type" + | ILType.Value (ilTypeSpec) -> innerExe ilTypeSpec + | ILType.Boxed (ilTypeSpec) -> innerExe ilTypeSpec + | ILType.Ptr (ilType) -> failwith "Unsupported type" + | ILType.Byref (ilType) -> failwith "Unsupported type" + | ILType.FunctionPointer (ilCallingSignature) -> failwith "Unsupported type" + | ILType.TypeVar i -> failwith "Unsupported type" + | ILType.Modified (required, ilTypeRef, ilType) -> failwith "Unsupported type" + + let execILBlock ilBasicBlock = + match ilBasicBlock with + // Basic + | AI_add -> + let v1 = stack.Pop() + let v2 = stack.Pop() + match v1, v2 with + | (:? int as v1), (:? int as v2) -> stack.Push(v1 + v2) + | _ -> failwith "adding supported combination of types" + NoResult + | AI_add_ovf -> failwith "Instruction AI_add_ovf unsupported" + | AI_add_ovf_un -> failwith "Instruction AI_add_ovf_un unsupported" + | AI_and -> failwith "Instruction AI_and unsupported" + | AI_div -> failwith "Instruction AI_div unsupported" + | AI_div_un -> failwith "Instruction AI_div_un unsupported" + | AI_ceq -> failwith "Instruction AI_ceq unsupported" + | AI_cgt -> failwith "Instruction AI_cgt unsupported" + | AI_cgt_un -> failwith "Instruction AI_cgt_un unsupported" + | AI_clt -> failwith "Instruction AI_clt unsupported" + | AI_clt_un -> failwith "Instruction AI_clt_un unsupported" + | AI_conv (ilBasicType) -> failwith "Instruction AI_conv unsupported" + | AI_conv_ovf (ilBasicType) -> failwith "Instruction AI_conv_ovf unsupported" + | AI_conv_ovf_un (ilBasicType) -> failwith "Instruction AI_conv_ovf_un unsupported" + | AI_mul -> failwith "Instruction AI_mul unsupported" + | AI_mul_ovf -> failwith "Instruction AI_mul_ovf unsupported" + | AI_mul_ovf_un -> failwith "Instruction AI_mul_ovf_un unsupported" + | AI_rem -> failwith "Instruction AI_rem unsupported" + | AI_rem_un -> failwith "Instruction AI_rem_un unsupported" + | AI_shl -> failwith "Instruction AI_shl unsupported" + | AI_shr -> failwith "Instruction AI_shr unsupported" + | AI_shr_un -> failwith "Instruction AI_shr unsupported" + | AI_sub -> failwith "Instruction AI_sub unsupported" + | AI_sub_ovf -> failwith "Instruction AI_sub_ovf unsupported" + | AI_sub_ovf_un -> failwith "Instruction AI_sub_ovf_un unsupported" + | AI_xor -> failwith "Instruction AI_xor unsupported" + | AI_or -> failwith "Instruction AI_xor unsupported" + | AI_neg -> failwith "Instruction AI_neg unsupported" + | AI_not -> failwith "Instruction AI_not unsupported" + | AI_ldnull -> + stack.Push null + NoResult + | AI_dup -> failwith "Instruction AI_dup unsupported" + | AI_pop -> + stack.Pop() |> ignore + NoResult + | AI_ckfinite -> failwith "Instruction AI_ckfinite unsupported" + | AI_nop -> NoResult + | AI_ldc (ilBasicType, ilConst) -> + match ilConst with + | ILConst.I4 x -> stack.Push x + | ILConst.I8 x -> stack.Push x + | ILConst.R4 x -> stack.Push x + | ILConst.R8 x -> stack.Push x + NoResult + + | I_ldarg (i) -> + stack.Push(parameters.[int i]) + NoResult + | I_ldarga (i) -> + stack.Push (MemoryManagement.getParameterAddress (int i)) + NoResult + | I_ldind (ilAlignment, ilVolatility, ilBasicType) -> failwith "Instruction I_ldind unsupported" + | I_ldloc (i) -> + stack.Push(locals.[int i]) + NoResult + + | I_ldloca (i) -> failwith "Instruction I_ldloca unsupported" + | I_starg (i) -> failwith "Instruction I_starg unsupported" + | I_stind (ilAlignment, ilVolatility, ilBasicType) -> failwith "Instruction I_stind unsupported" + | I_stloc (i) -> + locals.[int i] <- stack.Pop() + NoResult + + // Control transfer + | I_br (ilCodeLabel) -> + Branch ilCodeLabel + | I_jmp (ilMethodSpec) -> failwith "Instruction I_jmp unsupported" + | I_brcmp (ilComparisonInstr, ilCodeLabel1, ilCodeLabel2) -> + let firstBranch = + match ilComparisonInstr with + | BI_brfalse | BI_brtrue -> + let v1 = stack.Pop() + match ilComparisonInstr with + | BI_brfalse -> + match v1 with + | null -> true + | :? bool as v1 when v1 = false -> true + | :? int as v1 when v1 = 0 -> true + | :? int16 as v1 when v1 = 0s -> true + | :? int64 as v1 when v1 = 0L -> true + | _ -> false + | BI_brtrue -> + match v1 with + | null -> false + | :? bool as v1 when v1 = true -> true + | :? int as v1 when v1 <> 0 -> true + | :? int16 as v1 when v1 <> 0s -> true + | :? int64 as v1 when v1 <> 0L -> true + | _ -> false + | _ -> failwith "can't happen" + | _ -> + let v1 = stack.Pop() + let v2 = stack.Pop() + match ilComparisonInstr with + | BI_beq -> unbox v1 = unbox v2 + | BI_bge -> unbox v1 >= unbox v2 + | BI_bge_un -> unbox v1 >= unbox v2 + | BI_bgt -> unbox v1 > unbox v2 + | BI_bgt_un -> unbox v1 > unbox v2 + | BI_ble -> unbox v1 <= unbox v2 + | BI_ble_un -> unbox v1 <= unbox v2 + | BI_blt -> unbox v1 < unbox v2 + | BI_blt_un -> unbox v1 < unbox v2 + | BI_bne_un -> unbox v1 <> unbox v2 + | _ -> failwith "can't happen" + if firstBranch then Branch ilCodeLabel1 else Branch ilCodeLabel2 + | I_switch (ilCodeLabels,ilCodeLabel) -> failwith "Instruction I_switch unsupported" (* last label is fallthrough *) + | I_ret -> + match stack.Count, methodDef.CallingSignature.ReturnType with + | 0, ILType.Void -> Return null + | 1, _ -> Return (stack.Pop()) + | _ -> failwith "Error unblanced stack at return instruction" + + // Method call + | I_call (ilTailcall, ilMethodSpec, ilVarArgs) -> + exeTargetMethod ilMethodSpec None + | I_callvirt (ilTailcall, ilMethodSpec, ilVarArgs) -> failwith "Instruction I_callvirt unsupported" + | I_callconstraint (ilTailcall, ilType, ilMethodSpec, ilVarArgs) -> failwith "Instruction I_callconstraint unsupported" + | I_calli (ilTailcall, ilCallingSignature, ilVarArgs) -> failwith "Instruction I_calli unsupported" + | I_ldftn ilMethodSpec -> failwith "Instruction I_ldftn unsupported" + | I_newobj (ilMethodSpec, ilVarArgs) -> + let t, _ = TypeManagement.getType currentModule ilMethodSpec.EnclosingType.TypeSpec + let newObjRef = MemoryManagement.getBlankObject t + + let result = exeTargetMethod ilMethodSpec (Some (box newObjRef)) + result + + // Exceptions + | I_throw -> failwith "Instruction I_throw unsupported" + | I_endfinally -> failwith "Instruction I_endfinally unsupported" + | I_endfilter -> failwith "Instruction I_endfilter unsupported" + | I_leave ilCodeLabel -> failwith "Instruction I_leave unsupported" + | I_rethrow -> failwith "Instruction I_rethrow unsupported" + + // Object instructions + | I_ldsfld (ilVolatility, ilFieldSpec) -> + let t, tModule = TypeManagement.getType currentModule ilFieldSpec.EnclosingType.TypeSpec + let fieldValue = MemoryManagement.getStaticField tModule t ilFieldSpec (exeMethod tModule [||] t) + stack.Push fieldValue + NoResult + | I_ldfld (ilAlignment, ilVolatility, ilFieldSpec) -> failwith "Instruction I_ldfld unsupported" + | I_ldsflda (ilFieldSpec) -> + let t, tModule = TypeManagement.getType currentModule ilFieldSpec.EnclosingType.TypeSpec + let fieldAddress = MemoryManagement.getStaticFieldAddress tModule t ilFieldSpec (exeMethod tModule [||] t) + stack.Push fieldAddress + NoResult + | I_ldflda (ilFieldSpec) -> failwith "Instruction I_ldflda unsupported" + | I_stsfld (ilVolatility, ilFieldSpec) -> failwith "Instruction I_stsfld unsupported" + | I_stfld (ilAlignment, ilVolatility, ilFieldSpec) -> + let value = stack.Pop() + let objRef = stack.Pop() :?> int + MemoryManagement.storeValueInObjectField objRef value currentModule ilFieldSpec + NoResult + | I_ldstr (stringToLoad) -> failwith "Instruction I_ldstr unsupported" + | I_isinst (ilType) -> failwith "Instruction I_isinst unsupported" + | I_castclass (ilType) -> failwith "Instruction I_castclass unsupported" + | I_ldtoken (ilToken) -> failwith "Instruction I_ldtoken unsupported" + | I_ldvirtftn (ilMethodSpec) -> failwith "Instruction I_ldvirtftn unsupported" + + // Value type instructions + | I_cpobj (ilType) -> failwith "Instruction I_cpobj unsupported" + | I_initobj (ilType) -> failwith "Instruction I_initobj unsupported" + | I_ldobj (ilAlignment, ilVolatility, ilType) -> failwith "Instruction I_ldobj unsupported" + | I_stobj (ilAlignment, ilVolatility, ilType) -> failwith "Instruction I_stobj unsupported" + | I_box (ilType) -> + let value = stack.Pop() + let addr = MemoryManagement.storeBoxedValue value + stack.Push addr + NoResult + | I_unbox (ilType) -> failwith "Instruction I_unbox unsupported" + | I_unbox_any (ilType) -> failwith "Instruction I_unbox_any unsupported" + | I_sizeof (ilType) -> failwith "Instruction I_sizeof unsupported" + + // Generalized array instructions. In AbsIL these instructions include + // both the single-dimensional variants (with ILArrayShape == ILArrayShape.SingleDimensional) + // and calls to the "special" multi-dimensional "methods" such as + // newobj void string[,]::.ctor(int32, int32) + // call string string[,]::Get(int32, int32) + // call string& string[,]::Address(int32, int32) + // call void string[,]::Set(int32, int32,string) + // The IL reader transforms calls of this form to the corresponding + // generalized instruction with the corresponding ILArrayShape + // argument. This is done to simplify the IL and make it more uniform. + // The IL writer then reverses this when emitting the binary. + | I_ldelem (ilBasicType) -> failwith "Instruction I_ldelem unsupported" + | I_stelem (ilBasicType) -> failwith "Instruction I_stelem unsupported" + | I_ldelema (ilReadonly, whatDoesThisBoolMean, ilArrayShape, ilType) -> failwith "Instruction I_ldelema unsupported"(* ILArrayShape = ILArrayShape.SingleDimensional for single dimensional arrays *) + | I_ldelem_any (ilArrayShap, ilType) -> failwith "Instruction I_ldelem_any unsupported" (* ILArrayShape = ILArrayShape.SingleDimensional for single dimensional arrays *) + | I_stelem_any (ilArrayShape, ilType) -> failwith "Instruction I_stelem_any unsupported" (* ILArrayShape = ILArrayShape.SingleDimensional for single dimensional arrays *) + | I_newarr (ilArrayShape, ilType) -> failwith "Instruction I_newarr unsupported" (* ILArrayShape = ILArrayShape.SingleDimensional for single dimensional arrays *) + | I_ldlen -> failwith "Instruction I_ldlen unsupported" + + // "System.TypedReference" related instructions: almost + // no languages produce these, though they do occur in mscorlib.dll + // System.TypedReference represents a pair of a type and a byref-pointer + // to a value of that type. + | I_mkrefany (ilType) -> + stack.Push ilType // seems wrong + NoResult + | I_refanytype -> failwith "Instruction I_refanytype unsupported" + | I_refanyval (ilType) -> failwith "Instruction I_refanyval unsupported" + + // Debug-specific + // I_seqpoint is a fake instruction to represent a sequence point: + // the next instruction starts the execution of the + // statement covered by the given range - this is a + // dummy instruction and is not emitted + | I_break -> failwith "Instruction I_break unsupported" + | I_seqpoint ilSourceMarker -> failwith "Instruction I_seqpoint unsupported" + + // Varargs - C++ only + | I_arglist -> failwith "Instruction I_arglist unsupported" + + // Local aggregates, i.e. stack allocated data (alloca) : C++ only + | I_localloc -> failwith "Instruction I_localloc unsupported" + | I_cpblk (ilAlignment, ilVolatility) -> failwith "Instruction I_cpblk unsupported" + | I_initblk (ilAlignment, ilVolatility) -> failwith "Instruction I_initblk unsupported" + + // EXTENSIONS, e.g. MS-ILX + | EI_ilzero (ilType) -> failwith "Instruction EI_ilzero unsupported" + | EI_ldlen_multi (x, y) -> failwith "Instruction EI_ldlen_multi unsupported" + | I_other (ilxExtensionInstr) -> failwith "Instruction I_other unsupported" + let rec matchLabel label code = + match code with + | ILBasicBlock ilBasicBlock -> ilBasicBlock.Label = label + | GroupBlock (ilDebugMappings, ilCodes) -> ilCodes |> List.exists (fun x -> matchLabel label x) + | RestrictBlock (ilCodeLabels, ilCode) -> matchLabel label ilCode || ilCodeLabels |> List.exists (fun x -> x = label) + | TryBlock (ilCode, ilExceptionBlock) -> matchLabel label ilCode + let rec execCodeBlock code = + match code with + | ILBasicBlock ilBasicBlock -> + let rec loop index = + let instr = ilBasicBlock.Instructions.[index] + let result = execILBlock instr + let nextIndex = index + 1 + match result with + | Return _ -> result + | Branch _ -> result + | ExceptionThrown _ -> result + | NoResult -> + if ilBasicBlock.Instructions.Length = nextIndex then + result + else + loop nextIndex + loop 0 + | GroupBlock (ilDebugMappings, ilCodes) -> + let firstBlock = List.head ilCodes + let result = execCodeBlock firstBlock + match result with + | Branch targetLabel -> + let targetBlock = + ilCodes |> List.find (fun code -> matchLabel targetLabel code) + execCodeBlock targetBlock + | _ -> result + | RestrictBlock (ilCodeLabels, ilCode) -> + execCodeBlock ilCode + | TryBlock (ilCode, ilExceptionBlock) -> + // TODO error handling :) + execCodeBlock ilCode + printfn "%s.%s %A" typeDef.Name methodDef.Name parameters + if methodDef.IsUnmanagedExport then + printfn "IsUnmanagedExport" + NoResult + elif methodDef.IsInternalCall then + let result = InternalCalls.execInternalCall methodDef parameters + stack.Push result + NoResult + else + execCodeBlock methodDef.MethodBody.Code diff --git a/samples/crlish/clrish/InternalCalls.fs b/samples/crlish/clrish/InternalCalls.fs new file mode 100644 index 0000000..d92aca9 --- /dev/null +++ b/samples/crlish/clrish/InternalCalls.fs @@ -0,0 +1,11 @@ +module InternalCalls +open System +open System.Threading +open Microsoft.FSharp.Compiler.AbstractIL.ILBinaryReader +open Microsoft.FSharp.Compiler.AbstractIL.IL + +let execInternalCall (meth: ILMethodDef) (parameters: obj[]) = + match meth.Name with + | "_CompareExchange" -> + Interlocked.CompareExchange(ref parameters.[0], parameters.[1], parameters.[2]) + | _ -> failwith "internal call not supported" diff --git a/samples/crlish/clrish/Loader.fs b/samples/crlish/clrish/Loader.fs new file mode 100644 index 0000000..b9b542a --- /dev/null +++ b/samples/crlish/clrish/Loader.fs @@ -0,0 +1,30 @@ +module Loader + +open System +open System.Collections.Generic +open System.IO +open Microsoft.FSharp.Compiler.AbstractIL.ILBinaryReader +open Microsoft.FSharp.Compiler.AbstractIL.IL + +let assemblyPath = Environment.ExpandEnvironmentVariables(@"%windir%\Microsoft.NET\Framework\v4.0.30319") + +let modules = new Dictionary() + +let loadModuleFromPath path = + let ``module`` = OpenILModuleReader path defaults + match ``module``.ILModuleDef.Manifest with + | Some manifest -> + modules.Add(manifest.Name, ``module``) + | None -> failwith "Module has no manifest, only full assemblies are support" + ``module`` + +let getModule (assemblyRef: ILAssemblyRef) = + if modules.ContainsKey assemblyRef.Name then + modules.[assemblyRef.Name] + else + // sooner or later we'll need to search more places/file type, but this will get the frawework .dlls + loadModuleFromPath (Path.Combine(assemblyPath, assemblyRef.Name + ".dll")) + +let closeModules() = + for ``module`` in modules.Values do + CloseILModuleReader ``module`` diff --git a/samples/crlish/clrish/MemoryManagement.fs b/samples/crlish/clrish/MemoryManagement.fs new file mode 100644 index 0000000..f267de4 --- /dev/null +++ b/samples/crlish/clrish/MemoryManagement.fs @@ -0,0 +1,108 @@ +module MemoryManagement +open System +open System.Collections.Generic +open Microsoft.FSharp.Compiler.AbstractIL.ILBinaryReader +open Microsoft.FSharp.Compiler.AbstractIL.IL + +let memoryChunkSize = 5120 +let memoryArrays: obj[][] = Array.zeroCreate memoryChunkSize + +let getSlotIndexes i = + let chunkIndex = i / memoryChunkSize + let index = i - (chunkIndex * memoryChunkSize) + chunkIndex, index + +let getSlotValue i = + let chunkIndex, index = getSlotIndexes i + memoryArrays.[chunkIndex].[index] + +let setSlotValue i value = + let chunkIndex, index = getSlotIndexes i + if memoryArrays.[chunkIndex] = null then + memoryArrays.[chunkIndex] <- Array.zeroCreate memoryChunkSize + memoryArrays.[chunkIndex].[index] <- value + + +let heapPointer = ref (5 * memoryChunkSize) +let threadStackPointer = ref 1 + +let pushThreadParameters (parameters: obj[]) (targetMethod: ILMethodDef) = + for parameter in parameters do + setSlotValue !threadStackPointer parameter + incr threadStackPointer + setSlotValue !threadStackPointer (targetMethod, parameters.Length) + incr threadStackPointer + +let popThreadParameters () = + decr threadStackPointer + let _, parameterCount = (getSlotValue !threadStackPointer) :?> (ILMethodDef * int) + threadStackPointer := !threadStackPointer - parameterCount + +let getParameterAddress i = + let methodDesLocaction = !threadStackPointer - 1 + let _, parameterCount = (getSlotValue methodDesLocaction) :?> (ILMethodDef * int) + !threadStackPointer - (parameterCount + 1) + i + +let staticFieldLocations = new Dictionary() + +let rec getDefaultValue (t: ILType) = + match t with + | ILType.Void -> failwith "Unsupported type" + | ILType.Array (_) -> null + | ILType.Value (ilTypeSpec) -> Activator.CreateInstance(Type.GetType(ilTypeSpec.TypeRef.QualifiedName)) + | ILType.Boxed (ilTypeSpec) -> null + | ILType.Ptr (ilType) -> IntPtr.Zero :> obj + | ILType.Byref (ilType) -> failwith "Unsupported type" + | ILType.FunctionPointer (ilCallingSignature) -> failwith "Unsupported type" + | ILType.TypeVar i -> failwith "Unsupported type" + | ILType.Modified (required, ilTypeRef, ilType) -> getDefaultValue ilType + +let getFieldStaticFieldOffset t name = + t.Fields.AsList + |> List.filter (fun x -> x.IsStatic) + |> List.findIndex(fun x -> x.Name = name) + +let getStaticFieldAddress (tModule: ILModuleReader) (t: ILTypeDef) (field: ILFieldSpec) (execMethod: (ILMethodDef -> 'a)) = + // TODO this is will not provide a key that's unique for each type + let typeFullname = sprintf "%s, %s" t.Name tModule.ILModuleDef.Name + + if not (staticFieldLocations.ContainsKey typeFullname) then + staticFieldLocations.Add(typeFullname, !heapPointer) + for field in t.Fields.AsList |> List.filter (fun x -> x.IsStatic) do + setSlotValue !heapPointer (getDefaultValue field.Type) + incr heapPointer + + let staticCtor = t.Methods.AsList |> List.find (fun x -> x.IsClassInitializer) + execMethod staticCtor |> ignore + + staticFieldLocations.[typeFullname] + (getFieldStaticFieldOffset t field.Name) + +let getStaticField (tModule: ILModuleReader) (t: ILTypeDef) (field: ILFieldSpec) (execMethod: (ILMethodDef -> 'a)) = + let location = getStaticFieldAddress tModule t field execMethod + getSlotValue location + + +let getFieldInstranceFieldOffset t name = + t.Fields.AsList + |> List.filter (fun x -> not x.IsStatic) + |> List.findIndex(fun x -> x.Name = name) + +let getBlankObject (t: ILTypeDef) = + let objRef = !heapPointer + setSlotValue (!heapPointer) t + incr heapPointer + for field in t.Fields.AsList |> List.filter (fun x -> not x.IsStatic) do + setSlotValue !heapPointer (getDefaultValue field.Type) + incr heapPointer + objRef + +let storeValueInObjectField objRef value (currentModule: ILModuleReader) (fieldSpec: ILFieldSpec) = + let t, _ = TypeManagement.getType currentModule fieldSpec.EnclosingType.TypeSpec + let offset = getFieldInstranceFieldOffset t fieldSpec.Name + setSlotValue (objRef + offset) value + +let storeBoxedValue (value: obj) = + let objRef = !heapPointer + setSlotValue !heapPointer value + incr heapPointer + objRef diff --git a/samples/crlish/clrish/Program.fs b/samples/crlish/clrish/Program.fs new file mode 100644 index 0000000..f10a000 --- /dev/null +++ b/samples/crlish/clrish/Program.fs @@ -0,0 +1,19 @@ +open System +open System.Collections.Generic +open Microsoft.FSharp.Compiler.AbstractIL.ILBinaryReader +open Microsoft.FSharp.Compiler.AbstractIL.IL + +[] +let main argv = + let entryModule = Loader.loadModuleFromPath argv.[0] + try + let entryPoint = + entryModule.ILModuleDef.TypeDefs |> Seq.collect (fun x -> x.Methods |> Seq.map (fun m -> x, m) ) |> Seq.tryFind (fun (t,m) -> m.IsEntryPoint) + match entryPoint with + | Some (t, entryPoint) -> + ExecutionEngine.exeMethod entryModule [||] t entryPoint |> ignore + | None -> failwith "No entry point found" + finally + Loader.closeModules() + 0 + diff --git a/samples/crlish/clrish/TypeManagement.fs b/samples/crlish/clrish/TypeManagement.fs new file mode 100644 index 0000000..27a935b --- /dev/null +++ b/samples/crlish/clrish/TypeManagement.fs @@ -0,0 +1,21 @@ +module TypeManagement +open System +open System.Collections.Generic +open Microsoft.FSharp.Compiler.AbstractIL.ILBinaryReader +open Microsoft.FSharp.Compiler.AbstractIL.IL + +let getType (currentModule: ILModuleReader) (ilTypeSpec: ILTypeSpec) = + let typesModule = + if ilTypeSpec.Scope.IsLocalRef then + currentModule + else + Loader.getModule ilTypeSpec.Scope.AssemblyRef + let targetType = + typesModule.ILModuleDef.TypeDefs + |> Seq.append ( typesModule.ILModuleDef.TypeDefs |> Seq.collect(fun x -> x.NestedTypes)) + |> Seq.tryFind (fun x -> x.Name = ilTypeSpec.Name) + match targetType with + | Some x -> x, typesModule + | None -> failwithf "Failed to load %A" ilTypeSpec + + diff --git a/samples/crlish/clrish/crlish.fsproj b/samples/crlish/clrish/crlish.fsproj new file mode 100644 index 0000000..d23ed60 --- /dev/null +++ b/samples/crlish/clrish/crlish.fsproj @@ -0,0 +1,75 @@ + + + + + Debug + AnyCPU + 2.0 + 0898e907-dab0-49fe-9f9a-5767d80d2376 + Exe + crlish + crlish + v4.5 + crlish + + + true + full + false + false + bin\Debug\ + DEBUG;TRACE + 3 + AnyCPU + bin\Debug\crlish.XML + true + "C:\code\clrish\src\TestApp\bin\Debug\TestApp.exe" + + + pdbonly + true + true + bin\Release\ + TRACE + 3 + AnyCPU + bin\Release\crlish.XML + true + + + + + True + + + + + + + + + + + + + + + + + FSharp.AbsIL + {2e4d67b4-522d-4cf7-97e4-ba940f0b18f3} + True + + + + 11 + + + + \ No newline at end of file diff --git a/src/absil-vs2012.sln b/src/absil-vs2012.sln new file mode 100644 index 0000000..87ef28c --- /dev/null +++ b/src/absil-vs2012.sln @@ -0,0 +1,63 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.AbsIL", "fsharp\FSharp.AbsIL\FSharp.AbsIL.fsproj", "{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestApp", "..\samples\crlish\TestApp\TestApp.csproj", "{E3F21F5E-94A5-485D-9FC0-571D27E87EE8}" +EndProject +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "crlish", "..\samples\crlish\clrish\crlish.fsproj", "{0898E907-DAB0-49FE-9F9A-5767D80D2376}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{A3F6BF8D-E804-4804-B39D-CC1704B98A2F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "clrish", "clrish", "{E7297A96-1B40-4790-9D27-DEAEE95E7633}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Debug|Any CPU.ActiveCfg = Debug|x86 + {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Debug|x86.ActiveCfg = Debug|x86 + {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Debug|x86.Build.0 = Debug|x86 + {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Release|Any CPU.ActiveCfg = Release|x86 + {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Release|Mixed Platforms.Build.0 = Release|x86 + {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Release|x86.ActiveCfg = Release|x86 + {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Release|x86.Build.0 = Release|x86 + {E3F21F5E-94A5-485D-9FC0-571D27E87EE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E3F21F5E-94A5-485D-9FC0-571D27E87EE8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E3F21F5E-94A5-485D-9FC0-571D27E87EE8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {E3F21F5E-94A5-485D-9FC0-571D27E87EE8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {E3F21F5E-94A5-485D-9FC0-571D27E87EE8}.Debug|x86.ActiveCfg = Debug|Any CPU + {E3F21F5E-94A5-485D-9FC0-571D27E87EE8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E3F21F5E-94A5-485D-9FC0-571D27E87EE8}.Release|Any CPU.Build.0 = Release|Any CPU + {E3F21F5E-94A5-485D-9FC0-571D27E87EE8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {E3F21F5E-94A5-485D-9FC0-571D27E87EE8}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {E3F21F5E-94A5-485D-9FC0-571D27E87EE8}.Release|x86.ActiveCfg = Release|Any CPU + {0898E907-DAB0-49FE-9F9A-5767D80D2376}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0898E907-DAB0-49FE-9F9A-5767D80D2376}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0898E907-DAB0-49FE-9F9A-5767D80D2376}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {0898E907-DAB0-49FE-9F9A-5767D80D2376}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {0898E907-DAB0-49FE-9F9A-5767D80D2376}.Debug|x86.ActiveCfg = Debug|Any CPU + {0898E907-DAB0-49FE-9F9A-5767D80D2376}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0898E907-DAB0-49FE-9F9A-5767D80D2376}.Release|Any CPU.Build.0 = Release|Any CPU + {0898E907-DAB0-49FE-9F9A-5767D80D2376}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {0898E907-DAB0-49FE-9F9A-5767D80D2376}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {0898E907-DAB0-49FE-9F9A-5767D80D2376}.Release|x86.ActiveCfg = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {E7297A96-1B40-4790-9D27-DEAEE95E7633} = {A3F6BF8D-E804-4804-B39D-CC1704B98A2F} + {E3F21F5E-94A5-485D-9FC0-571D27E87EE8} = {E7297A96-1B40-4790-9D27-DEAEE95E7633} + {0898E907-DAB0-49FE-9F9A-5767D80D2376} = {E7297A96-1B40-4790-9D27-DEAEE95E7633} + EndGlobalSection +EndGlobal diff --git a/src/absil/bytes.fs b/src/absil/bytes.fs new file mode 100644 index 0000000..2447a0d --- /dev/null +++ b/src/absil/bytes.fs @@ -0,0 +1,146 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +/// Byte arrays +namespace Microsoft.FSharp.Compiler.AbstractIL.Internal + +open System.IO +open Internal.Utilities + +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal + +module internal Bytes = + let b0 n = (n &&& 0xFF) + let b1 n = ((n >>> 8) &&& 0xFF) + let b2 n = ((n >>> 16) &&& 0xFF) + let b3 n = ((n >>> 24) &&& 0xFF) + + let dWw1 n = int32 ((n >>> 32) &&& 0xFFFFFFFFL) + let dWw0 n = int32 (n &&& 0xFFFFFFFFL) + + let get (b:byte[]) n = int32 (Array.get b n) + let zeroCreate n : byte[] = Array.zeroCreate n + + let sub ( b:byte[]) s l = Array.sub b s l + let blit (a:byte[]) b c d e = Array.blit a b c d e + + let ofInt32Array (arr:int[]) = Array.init arr.Length (fun i -> byte arr.[i]) + + let stringAsUtf8NullTerminated (s:string) = + Array.append (System.Text.Encoding.UTF8.GetBytes s) (ofInt32Array [| 0x0 |]) + + let stringAsUnicodeNullTerminated (s:string) = + Array.append (System.Text.Encoding.Unicode.GetBytes s) (ofInt32Array [| 0x0;0x0 |]) + +type internal ByteStream = + { bytes: byte[]; + mutable pos: int; + max: int } + member b.ReadByte() = + if b.pos >= b.max then failwith "end of stream"; + let res = b.bytes.[b.pos] + b.pos <- b.pos + 1; + res + member b.ReadUtf8String n = + let res = System.Text.Encoding.UTF8.GetString(b.bytes,b.pos,n) + b.pos <- b.pos + n; res + + static member FromBytes (b:byte[],n,len) = + if n < 0 || (n+len) > b.Length then failwith "FromBytes"; + { bytes = b; pos = n; max = n+len } + + member b.ReadBytes n = + if b.pos + n > b.max then failwith "ReadBytes: end of stream"; + let res = Bytes.sub b.bytes b.pos n + b.pos <- b.pos + n; + res + + member b.Position = b.pos +#if LAZY_UNPICKLE + member b.CloneAndSeek = { bytes=b.bytes; pos=pos; max=b.max } + member b.Skip = b.pos <- b.pos + n +#endif + + +type internal ByteBuffer = + { mutable bbArray: byte[]; + mutable bbCurrent: int } + + member buf.Ensure newSize = + let oldBufSize = buf.bbArray.Length + if newSize > oldBufSize then + let old = buf.bbArray + buf.bbArray <- Bytes.zeroCreate (max newSize (oldBufSize * 2)); + Bytes.blit old 0 buf.bbArray 0 buf.bbCurrent; + + member buf.Close () = Bytes.sub buf.bbArray 0 buf.bbCurrent + + member buf.EmitIntAsByte (i:int) = + let newSize = buf.bbCurrent + 1 + buf.Ensure newSize; + buf.bbArray.[buf.bbCurrent] <- byte i + buf.bbCurrent <- newSize + + member buf.EmitByte (b:byte) = buf.EmitIntAsByte (int b) + + member buf.EmitIntsAsBytes (arr:int[]) = + let n = arr.Length + let newSize = buf.bbCurrent + n + buf.Ensure newSize; + let bbarr = buf.bbArray + let bbbase = buf.bbCurrent + for i = 0 to n - 1 do + bbarr.[bbbase + i] <- byte arr.[i] + buf.bbCurrent <- newSize + + member bb.FixupInt32 pos n = + bb.bbArray.[pos] <- (Bytes.b0 n |> byte); + bb.bbArray.[pos + 1] <- (Bytes.b1 n |> byte); + bb.bbArray.[pos + 2] <- (Bytes.b2 n |> byte); + bb.bbArray.[pos + 3] <- (Bytes.b3 n |> byte); + + member buf.EmitInt32 n = + let newSize = buf.bbCurrent + 4 + buf.Ensure newSize; + buf.FixupInt32 buf.bbCurrent n; + buf.bbCurrent <- newSize + + member buf.EmitBytes (i:byte[]) = + let n = i.Length + let newSize = buf.bbCurrent + n + buf.Ensure newSize; + Bytes.blit i 0 buf.bbArray buf.bbCurrent n; + buf.bbCurrent <- newSize + + member buf.EmitInt32AsUInt16 n = + let newSize = buf.bbCurrent + 2 + buf.Ensure newSize; + buf.bbArray.[buf.bbCurrent] <- (Bytes.b0 n |> byte); + buf.bbArray.[buf.bbCurrent + 1] <- (Bytes.b1 n |> byte); + buf.bbCurrent <- newSize + + member buf.EmitBoolAsByte (b:bool) = buf.EmitIntAsByte (if b then 1 else 0) + + member buf.EmitUInt16 (x:uint16) = buf.EmitInt32AsUInt16 (int32 x) + + member buf.EmitInt64 x = + buf.EmitInt32 (Bytes.dWw0 x); + buf.EmitInt32 (Bytes.dWw1 x) + + member buf.Position = buf.bbCurrent + + static member Create sz = + { bbArray=Bytes.zeroCreate sz; + bbCurrent = 0; } + + diff --git a/src/absil/bytes.fsi b/src/absil/bytes.fsi new file mode 100644 index 0000000..113e124 --- /dev/null +++ b/src/absil/bytes.fsi @@ -0,0 +1,66 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + + +/// Blobs of bytes, cross-compiling +namespace Microsoft.FSharp.Compiler.AbstractIL.Internal + +open Internal.Utilities + +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal + + +module internal Bytes = + /// returned int will be 0 <= x <= 255 + val get: byte[] -> int -> int + val zeroCreate: int -> byte[] + /// each int must be 0 <= x <= 255 + val ofInt32Array: int[] -> byte[] + /// each int will be 0 <= x <= 255 + + val blit: byte[] -> int -> byte[] -> int -> int -> unit + + val stringAsUnicodeNullTerminated: string -> byte[] + val stringAsUtf8NullTerminated: string -> byte[] + + +/// Imperative buffers and streams of byte[] +[] +type internal ByteBuffer = + member Close : unit -> byte[] + member EmitIntAsByte : int -> unit + member EmitIntsAsBytes : int[] -> unit + member EmitByte : byte -> unit + member EmitBytes : byte[] -> unit + member EmitInt32 : int32 -> unit + member EmitInt64 : int64 -> unit + member FixupInt32 : pos: int -> value: int32 -> unit + member EmitInt32AsUInt16 : int32 -> unit + member EmitBoolAsByte : bool -> unit + member EmitUInt16 : uint16 -> unit + member Position : int + static member Create : int -> ByteBuffer + + +[] +type internal ByteStream = + member ReadByte : unit -> byte + member ReadBytes : int -> byte[] + member ReadUtf8String : int -> string + member Position : int + static member FromBytes : byte[] * start:int * length:int -> ByteStream + +#if LAZY_UNPICKLE + member CloneAndSeek : int -> ByteStream + member Skip : int -> unit +#endif diff --git a/src/absil/il.fs b/src/absil/il.fs new file mode 100644 index 0000000..6da501d --- /dev/null +++ b/src/absil/il.fs @@ -0,0 +1,5026 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +module Microsoft.FSharp.Compiler.AbstractIL.IL + +#nowarn "49" +#nowarn "343" // The type 'ILAssemblyRef' implements 'System.IComparable' explicitly but provides no corresponding override for 'Object.Equals'. +#nowarn "346" // The struct, record or union type 'IlxExtensionType' has an explicit implementation of 'Object.Equals'. ... + + +open Internal.Utilities +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library +open Microsoft.FSharp.Compiler.AbstractIL.Diagnostics +open System.Collections.Generic +open System.Collections + +let logging = false + +// Officially supported way to detect if we are running on Mono. +// See http://www.mono-project.com/FAQ:_Technical +// "How can I detect if am running in Mono?" section +let runningOnMono = + try + System.Type.GetType("Mono.Runtime") <> null + with e-> + // Must be robust in the case that someone else has installed a handler into System.AppDomain.OnTypeResolveEvent + // that is not reliable. + // This is related to bug 5506--the issue is actually a bug in VSTypeResolutionService.EnsurePopulated which is + // called by OnTypeResolveEvent. The function throws a NullReferenceException. I'm working with that team to get + // their issue fixed but we need to be robust here anyway. + false + +let _ = if logging then dprintn "* warning: Il.logging is on" + +let isNil x = match x with [] -> true | _ -> false +let nonNil x = match x with [] -> false | _ -> true +let int_order = LanguagePrimitives.FastGenericComparer + +let notlazy v = Lazy.CreateFromValue v + +/// A little ugly, but the idea is that if a data structure does not +/// contain lazy values then we don't add laziness. So if the thing to map +/// is already evaluated then immediately apply the function. +let lazyMap f (x:Lazy<_>) = + if x.IsValueCreated then notlazy (f (x.Force())) else lazy (f (x.Force())) + +// -------------------------------------------------------------------- +// Utilities: type names +// -------------------------------------------------------------------- + +let splitNameAt (nm:string) idx = + if idx < 0 then failwith "splitNameAt: idx < 0"; + let last = nm.Length - 1 + if idx > last then failwith "splitNameAt: idx > last"; + (nm.Substring(0,idx)), + (if idx < last then nm.Substring (idx+1,last - idx) else "") + +let rec splitNamespaceAux (nm:string) = + match nm.IndexOf '.' with + | -1 -> [nm] + | idx -> + let s1,s2 = splitNameAt nm idx + s1::splitNamespaceAux s2 + +/// Global State. All namespace splits ever seen +// ++GLOBAL MUTABLE STATE +let memoizeNamespaceTable = new Dictionary(10) + +// ++GLOBAL MUTABLE STATE +let memoizeNamespaceRightTable = new Dictionary(100) + + +let splitNamespace nm = + let mutable res = Unchecked.defaultof<_> + let ok = memoizeNamespaceTable.TryGetValue(nm,&res) + if ok then res else + let x = splitNamespaceAux nm + (memoizeNamespaceTable.[nm] <- x; x) + +let splitNamespaceMemoized nm = splitNamespace nm + +// ++GLOBAL MUTABLE STATE +let memoizeNamespaceArrayTable = + Dictionary(10) + +let splitNamespaceToArray nm = + let mutable res = Unchecked.defaultof<_> + let ok = memoizeNamespaceArrayTable.TryGetValue(nm,&res) + if ok then res else + let x = Array.ofList (splitNamespace nm) + (memoizeNamespaceArrayTable.[nm] <- x; x) + + +let splitILTypeName (nm:string) = + match nm.LastIndexOf '.' with + | -1 -> [],nm + | idx -> + let s1,s2 = splitNameAt nm idx + splitNamespace s1,s2 + +let emptyStringArray = ([| |] : string[]) + +// Duplciate of comment in import.fs: +// The type names that flow to the point include the "mangled" type names used for static parameters for provided types. +// For example, +// Foo.Bar,"1.0" +// This is because the ImportSystemType code goes via Abstract IL type references. Ultimately this probably isn't +// the best way to do things. +let splitILTypeNameWithPossibleStaticArguments (nm:string) = + let nm,suffix = + match nm.IndexOf ',' with + | -1 -> nm, None + | idx -> let s1, s2 = splitNameAt nm idx in s1, Some s2 + + let nsp,nm = + match nm.LastIndexOf '.' with + | -1 -> emptyStringArray,nm + | idx -> + let s1,s2 = splitNameAt nm idx + splitNamespaceToArray s1,s2 + nsp, (match suffix with None -> nm | Some s -> nm + "," + s) + +(* +splitILTypeNameWithPossibleStaticArguments "Foo" = ([| |], "Foo") +splitILTypeNameWithPossibleStaticArguments "Foo.Bar" = ([| "Foo" |], "Bar") +splitILTypeNameWithPossibleStaticArguments "Foo.Bar,3" = ([| "Foo" |], "Bar,3") +splitILTypeNameWithPossibleStaticArguments "Foo.Bar," = ([| "Foo" |], "Bar,") +splitILTypeNameWithPossibleStaticArguments "Foo.Bar,\"1.0\"" = ([| "Foo" |], "Bar,\"1.0\"") +splitILTypeNameWithPossibleStaticArguments "Foo.Bar.Bar,\"1.0\"" = ([| "Foo"; "Bar" |], "Bar,\"1.0\"") +*) + +let unsplitTypeName (ns,n) = + match ns with + | [] -> String.concat "." ns + "." + n + | _ -> n + +let splitTypeNameRightAux nm = + if String.contains nm '.' then + let idx = String.rindex nm '.' + let s1,s2 = splitNameAt nm idx + Some s1,s2 + else None, nm + +let splitTypeNameRight nm = + let mutable res = Unchecked.defaultof<_> + let ok = memoizeNamespaceRightTable.TryGetValue(nm,&res) + if ok then res else + let x = splitTypeNameRightAux nm + (memoizeNamespaceRightTable.[nm] <- x; x) + +// -------------------------------------------------------------------- +// Ordered lists with a lookup table +// -------------------------------------------------------------------- + +/// This is used to store event, property and field maps. +/// +/// Review: this is not such a great data structure. +type LazyOrderedMultiMap<'Key,'Data when 'Key : equality>(keyf : 'Data -> 'Key, lazyItems : Lazy<'Data list>) = + + let quickMap= + lazyItems |> lazyMap (fun entries -> + let t = new Dictionary<_,_>(entries.Length, HashIdentity.Structural) + do entries |> List.iter (fun y -> let key = keyf y in t.[key] <- y :: (if t.ContainsKey(key) then t.[key] else [])) + t) + + member self.Entries() = lazyItems.Force() + + member self.Add(y) = new LazyOrderedMultiMap<'Key,'Data>(keyf, lazyItems |> lazyMap (fun x -> y :: x)) + + member self.Filter(f) = new LazyOrderedMultiMap<'Key,'Data>(keyf, lazyItems |> lazyMap (List.filter f)) + + member self.Item with get(x) = let t = quickMap.Force() in if t.ContainsKey x then t.[x] else [] + + +//--------------------------------------------------------------------- +// SHA1 hash-signing algorithm. Used to get the public key token from +// the public key. +//--------------------------------------------------------------------- + + +let b0 n = (n &&& 0xFF) +let b1 n = ((n >>> 8) &&& 0xFF) +let b2 n = ((n >>> 16) &&& 0xFF) +let b3 n = ((n >>> 24) &&& 0xFF) + + +module SHA1 = + let inline (>>>&) (x:int) (y:int) = int32 (uint32 x >>> y) + let f(t,b,c,d) = + if t < 20 then (b &&& c) ||| ((~~~b) &&& d) else + if t < 40 then b ^^^ c ^^^ d else + if t < 60 then (b &&& c) ||| (b &&& d) ||| (c &&& d) else + b ^^^ c ^^^ d + + let k0to19 = 0x5A827999 + let k20to39 = 0x6ED9EBA1 + let k40to59 = 0x8F1BBCDC + let k60to79 = 0xCA62C1D6 + + let k t = + if t < 20 then k0to19 + elif t < 40 then k20to39 + elif t < 60 then k40to59 + else k60to79 + + + type chan = SHABytes of byte[] + type sha_instream = + { stream: chan; + mutable pos: int; + mutable eof: bool; } + + let rot_left32 x n = (x <<< n) ||| (x >>>& (32-n)) + + let sha_eof sha = sha.eof + + (* padding and length (in bits!) recorded at end *) + let sha_after_eof sha = + let n = sha.pos + let len = + (match sha.stream with + | SHABytes s -> s.Length) + if n = len then 0x80 + else + let padded_len = (((len + 9 + 63) / 64) * 64) - 8 + if n < padded_len - 8 then 0x0 + elif (n &&& 63) = 56 then int32 ((int64 len * int64 8) >>> 56) &&& 0xff + elif (n &&& 63) = 57 then int32 ((int64 len * int64 8) >>> 48) &&& 0xff + elif (n &&& 63) = 58 then int32 ((int64 len * int64 8) >>> 40) &&& 0xff + elif (n &&& 63) = 59 then int32 ((int64 len * int64 8) >>> 32) &&& 0xff + elif (n &&& 63) = 60 then int32 ((int64 len * int64 8) >>> 24) &&& 0xff + elif (n &&& 63) = 61 then int32 ((int64 len * int64 8) >>> 16) &&& 0xff + elif (n &&& 63) = 62 then int32 ((int64 len * int64 8) >>> 8) &&& 0xff + elif (n &&& 63) = 63 then (sha.eof <- true; int32 (int64 len * int64 8) &&& 0xff) + else 0x0 + + let sha_read8 sha = + let b = + match sha.stream with + | SHABytes s -> if sha.pos >= s.Length then sha_after_eof sha else int32 s.[sha.pos] + sha.pos <- sha.pos + 1; + b + + let sha_read32 sha = + let b0 = sha_read8 sha + let b1 = sha_read8 sha + let b2 = sha_read8 sha + let b3 = sha_read8 sha + let res = (b0 <<< 24) ||| (b1 <<< 16) ||| (b2 <<< 8) ||| b3 + res + + + let sha1_hash sha = + let h0 = ref 0x67452301 + let h1 = ref 0xEFCDAB89 + let h2 = ref 0x98BADCFE + let h3 = ref 0x10325476 + let h4 = ref 0xC3D2E1F0 + let a = ref 0 + let b = ref 0 + let c = ref 0 + let d = ref 0 + let e = ref 0 + let w = Array.create 80 0x00 + while (not (sha_eof sha)) do + for i = 0 to 15 do + w.[i] <- sha_read32 sha + for t = 16 to 79 do + w.[t] <- rot_left32 (w.[t-3] ^^^ w.[t-8] ^^^ w.[t-14] ^^^ w.[t-16]) 1; + a := !h0; + b := !h1; + c := !h2; + d := !h3; + e := !h4; + for t = 0 to 79 do + let temp = (rot_left32 !a 5) + f(t,!b,!c,!d) + !e + w.[t] + k(t) + e := !d; + d := !c; + c := rot_left32 !b 30; + b := !a; + a := temp; + h0 := !h0 + !a; + h1 := !h1 + !b; + h2 := !h2 + !c; + h3 := !h3 + !d; + h4 := !h4 + !e + done; + (!h0,!h1,!h2,!h3,!h4) + + let sha1HashBytes s = + let (_h0,_h1,_h2,h3,h4) = sha1_hash { stream = SHABytes s; pos = 0; eof = false } // the result of the SHA algorithm is stored in registers 3 and 4 + Array.map byte [| b0 h4; b1 h4; b2 h4; b3 h4; b0 h3; b1 h3; b2 h3; b3 h3; |] + + +let sha1HashBytes s = SHA1.sha1HashBytes s + +// -------------------------------------------------------------------- +// ILList +// -------------------------------------------------------------------- + +/// ILList is the type used to store relatively small lists in the Abstract IL data structures, +/// i.e. for ILTypes, ILGenericArgs, ILParameters and ILLocals. + +// This #if starts isolating the representation for "ILTypes", "ILGenericArgs", "ILParameters" and "ILLocals" +// with the aim of making it possible to easily switch between using arrays and lists as representations for these. +// THis is because many allocations of these small lists appear in memory logs. +// +// The "obviouos" step is to use arrays instead of lists. However, this is routinely and surprisingly disappointing. +// As a result, we haven’t enabled the use of arrays: we had expected this change to give a perf gain, +// but it does not! It even gives a small perf loss. We've tried this approach on several other occasions +// for other data structures and each time been surprised that there’s no perf gain. It's possible that +// arrays-of-references are just not as fast as we expect here: either the runtime check on assignment +// into the array, or some kind of write barrier may be degrading performance. +// +// However, There must surely be some better data structure here than allocating endless linked-list containing one item +// each. One option is to use a linked-list structure that stores multiple elements in each allocation, e.g. +// +// type ThreeList<'T> = T of 'T * 'T * 'T * ThreeList<'T> +// +// and a similar hack is used as the underlying representation fot List<'T>, where we store a "constant" value to indicate the end +// of the sequence. Some of the 'T values would be empty to indicate a partially-filled node. Storing an integer would of course +// make things clearer, and allow values-with-null to be stored in the data structure: +// +// type ThreeList<'T> = T of int * 'T * 'T * 'T * ThreeList<'T> +// +// Since we haven't quite given up on moving away from lists as yet, the #if below still feels useful +// as it isolates the representation of these data structures from the rest of the compiler. +// +// Note this is similar to the use of "Flat Lists" in the tast.fs data structures where we tried to eliminate +// the use of lists in the tast.fs nodes of the compiler, but that also didn't give perf gains. +// +// If it turns out that we just eventually completely abandon these exercises then we can eliminate this code and +// universally replace "ILList" and "FlatList" by "List". + +#if ABSIL_USES_ARRAY_FOR_ILLIST +type ILList<'T> = 'T[] +[] +module ILList = + let inline map f x = Array.map f x + let inline mapi f x = Array.mapi f x + let inline isEmpty (x:ILList<_>) = x.Length <> 0 + let inline toArray (x:ILList<_>) = x + let inline ofArray (x:'T[]) = x + let inline nth n (x:'T[]) = x.[n] + let inline toList (x:ILList<_>) = Array.toList x + let inline ofList (x:'T list) = Array.ofList x + let inline lengthsEqAndForall2 f x1 x2 = Array.lengthsEqAndForall2 f x1 x2 + let inline init n f = Array.init n f + let inline empty<'T> = ([| |] :'T[]) + let inline iter f (x:'T[]) = Array.iter f x + let inline iteri f (x:'T[]) = Array.iteri f x + let inline foldBack f (x:'T[]) z = Array.foldBack f x z + let inline exists f x = Array.exists f x +#endif + +//#if ABSIL_USES_LIST_FOR_ILLIST +type ILList<'T> = 'T list + +[] +module ILList = + let inline map f x = List.map f x + let inline mapi f x = List.mapi f x + let inline isEmpty x = match x with [] -> true | _ -> false + let inline toArray (x:ILList<_>) = List.toArray x + let inline ofArray (x:'T[]) = List.ofArray x + let inline iter f (x:'T list) = List.iter f x + let inline iteri f (x:'T list) = List.iteri f x + let inline nth (x:'T list) n = List.nth x n + let inline toList (x:ILList<_>) = x + let inline ofList (x:'T list) = x + let inline lengthsEqAndForall2 f x1 x2 = List.lengthsEqAndForall2 f x1 x2 + let inline init n f = List.init n f + let inline empty<'T> = ([ ] :'T list) + let inline foldBack f x z = List.foldBack f x z + let inline exists f x = List.exists f x +//#endif // ABSIL_USES_LIST_FOR_ILLIST + +#if ABSIL_USES_THREELIST_FOR_ILLIST +type ILList<'T> = ThreeList<'T> + +[] +module ILList = + let inline map f x = ThreeList.map f x + let inline mapi f x = ThreeList.mapi f x + let inline isEmpty x = ThreeList.isEmpty x + let inline toArray (x:ILList<_>) = ThreeList.toArray x + let inline ofArray (x:'T[]) = ThreeList.ofArray x + let inline iter f (x:ILList<'T>) = ThreeList.iter f x + let inline iteri f (x:ILList<'T>) = ThreeList.iteri f x + let inline toList (x:ILList<_>) = ThreeList.toList x + let inline nth (x:ILList<'T>) n = ThreeList.nth x n + let inline ofList (x:'T list) = ThreeList.ofList x + let inline lengthsEqAndForall2 f x1 x2 = ThreeList.lengthsEqAndForall2 f x1 x2 + let inline init n f = ThreeList.init n f + let inline empty<'T> = ThreeList.empty<'T> + let inline foldBack f x z = ThreeList.foldBack f x z + let inline exists f x = ThreeList.exists f x +#endif + +// -------------------------------------------------------------------- +// +// -------------------------------------------------------------------- + +type ILVersionInfo = uint16 * uint16 * uint16 * uint16 + +type Locale = string + +[] +type PublicKey = + | PublicKey of byte[] + | PublicKeyToken of byte[] + member x.IsKey=match x with PublicKey _ -> true | _ -> false + member x.IsKeyToken=match x with PublicKeyToken _ -> true | _ -> false + member x.Key=match x with PublicKey b -> b | _ -> invalidOp "not a key" + member x.KeyToken=match x with PublicKeyToken b -> b | _ -> invalidOp"not a key token" + + member x.ToToken() = + match x with + | PublicKey bytes -> SHA1.sha1HashBytes bytes + | PublicKeyToken token -> token + static member KeyAsToken(k) = PublicKeyToken(PublicKey(k).ToToken()) + +[] +type AssemblyRefData = + { assemRefName: string; + assemRefHash: byte[] option; + assemRefPublicKeyInfo: PublicKey option; + assemRefRetargetable: bool; + assemRefVersion: ILVersionInfo option; + assemRefLocale: Locale option; } + +/// Global state: table of all assembly references keyed by AssemblyRefData +let AssemblyRefUniqueStampGenerator = new UniqueStampGenerator() + +[] +type ILAssemblyRef(data) = + let uniqueStamp = AssemblyRefUniqueStampGenerator.Encode(data) + member x.Name=data.assemRefName + member x.Hash=data.assemRefHash + member x.PublicKey=data.assemRefPublicKeyInfo + member x.Retargetable=data.assemRefRetargetable + member x.Version=data.assemRefVersion + member x.Locale=data.assemRefLocale + member x.UniqueStamp=uniqueStamp + override x.GetHashCode() = uniqueStamp + override x.Equals(yobj) = ((yobj :?> ILAssemblyRef).UniqueStamp = uniqueStamp) + interface System.IComparable with + override x.CompareTo(yobj) = compare (yobj :?> ILAssemblyRef).UniqueStamp uniqueStamp + static member Create(name,hash,publicKey,retargetable,version,locale) = + ILAssemblyRef + { assemRefName=name; + assemRefHash=hash; + assemRefPublicKeyInfo=publicKey; + assemRefRetargetable=retargetable; + assemRefVersion=version; + assemRefLocale=locale; } + + static member FromAssemblyName (aname:System.Reflection.AssemblyName) = + let culture = None + let locale = None + let version = + let v = aname.Version + Some(uint16 v.Major,uint16 v.Minor,uint16 v.Build,uint16 v.Revision) + let key = + match aname.GetPublicKeyToken() with + | null | [| |] -> None + | bytes -> Some (PublicKeyToken bytes) + let retargetable = (aname.Flags = System.Reflection.AssemblyNameFlags.Retargetable) + ILAssemblyRef.Create(aname.Name,culture,key,retargetable,version,locale) + + + member aref.QualifiedName = + let b = new System.Text.StringBuilder(100) + let add (s:string) = (b.Append(s) |> ignore) + let addC (s:char) = (b.Append(s) |> ignore) + add(aref.Name); + match aref.Version with + | None -> () + | Some (a,b,c,d) -> + add ", Version="; + add (string (int a)) + add "."; + add (string (int b)) + add "."; + add (string (int c)) + add "."; + add (string (int d)) + add ", Culture=" + match aref.Locale with + | None -> add "neutral" + | Some b -> add b + add ", PublicKeyToken=" + match aref.PublicKey with + | None -> add "null" + | Some pki -> + let pkt = pki.ToToken() + let convDigit(digit) = + let digitc = + if digit < 10 + then System.Convert.ToInt32 '0' + digit + else System.Convert.ToInt32 'a' + (digit - 10) + System.Convert.ToChar(digitc) + for i = 0 to pkt.Length-1 do + let v = pkt.[i] + addC (convDigit(System.Convert.ToInt32(v)/16)) + addC (convDigit(System.Convert.ToInt32(v)%16)) + // retargetable can be true only for system assemblies that definitely have Version + if aref.Retargetable then + add ", Retargetable=Yes" + b.ToString() + + +[] +type ILModuleRef = + { name: string; + hasMetadata: bool; + hash: byte[] option; } + static member Create(name,hasMetadata,hash) = + { name=name; + hasMetadata= hasMetadata; + hash=hash } + + member x.Name=x.name + member x.HasMetadata=x.hasMetadata + member x.Hash=x.hash + +[] +[] +type ILScopeRef = + | Local + | Module of ILModuleRef + | Assembly of ILAssemblyRef + member x.IsLocalRef = match x with ILScopeRef.Local -> true | _ -> false + member x.IsModuleRef = match x with ILScopeRef.Module _ -> true | _ -> false + member x.IsAssemblyRef= match x with ILScopeRef.Assembly _ -> true | _ -> false + member x.ModuleRef = match x with ILScopeRef.Module x -> x | _ -> failwith "not a module reference" + member x.AssemblyRef = match x with ILScopeRef.Assembly x -> x | _ -> failwith "not an assembly reference" + + member scoref.QualifiedName = + match scoref with + | ILScopeRef.Local -> "" + | ILScopeRef.Module mref -> "module "^mref.Name + | ILScopeRef.Assembly aref when aref.Name = "mscorlib" -> "" + | ILScopeRef.Assembly aref -> aref.QualifiedName + + member scoref.QualifiedNameWithNoShortMscorlib = + match scoref with + | ILScopeRef.Local -> "" + | ILScopeRef.Module mref -> "module "+mref.Name + | ILScopeRef.Assembly aref -> aref.QualifiedName + +type ILArrayBound = int32 option +type ILArrayBounds = ILArrayBound * ILArrayBound + +[] +type ILArrayShape = + | ILArrayShape of ILArrayBounds list (* lobound/size pairs *) + member x.Rank = (let (ILArrayShape l) = x in l.Length) + static member SingleDimensional = ILArrayShapeStatics.SingleDimensional + static member FromRank n = if n = 1 then ILArrayShape.SingleDimensional else ILArrayShape(List.replicate n (Some 0,None)) + + +and ILArrayShapeStatics() = + static let singleDimensional = ILArrayShape [(Some 0, None)] + static member SingleDimensional = singleDimensional + +/// Calling conventions. These are used in method pointer types. +[] +type ILArgConvention = + | Default + | CDecl + | StdCall + | ThisCall + | FastCall + | VarArg + +[] +type ILThisConvention = + | Instance + | InstanceExplicit + | Static + +[] +type ILCallingConv = + | Callconv of ILThisConvention * ILArgConvention + member x.ThisConv = let (Callconv(a,_b)) = x in a + member x.BasicConv = let (Callconv(_a,b)) = x in b + member x.IsInstance = match x.ThisConv with ILThisConvention.Instance -> true | _ -> false + member x.IsInstanceExplicit = match x.ThisConv with ILThisConvention.InstanceExplicit -> true | _ -> false + member x.IsStatic = match x.ThisConv with ILThisConvention.Static -> true | _ -> false + + static member Instance = ILCallingConvStatics.Instance + static member Static = ILCallingConvStatics.Static + +/// Static storage to amortize the allocation of ILCallingConv.Instance and ILCallingConv.Static +and ILCallingConvStatics() = + static let instanceCallConv = Callconv(ILThisConvention.Instance,ILArgConvention.Default) + static let staticCallConv = Callconv(ILThisConvention.Static,ILArgConvention.Default) + static member Instance = instanceCallConv + static member Static = staticCallConv + +type ILBoxity = + | AsObject + | AsValue + + +// IL type references have a pre-computed hash code to enable quick lookup tables during binary generation. +[] +type ILTypeRef = + { trefScope: ILScopeRef; + trefEnclosing: string list; + trefName: string; + hashCode : int + mutable asBoxedType: ILType } + + static member Create(scope,enclosing,name) = + let hashCode = hash scope * 17 ^^^ (hash enclosing * 101 <<< 1) ^^^ (hash name * 47 <<< 2) + { trefScope=scope; + trefEnclosing= enclosing; + trefName=name; + hashCode=hashCode; + asBoxedType = Unchecked.defaultof<_> } + + member x.Scope = x.trefScope + member x.Enclosing = x.trefEnclosing + member x.Name = x.trefName + member x.ApproxId = x.hashCode + + member x.AsBoxedType (tspec:ILTypeSpec) = + match tspec.tspecInst.Length with + | 0 -> + let v = x.asBoxedType + match box v with + | null -> + let r = ILType.Boxed tspec + x.asBoxedType <- r + r + | _ -> v + | _ -> ILType.Boxed tspec + + override x.GetHashCode() = x.hashCode + override x.Equals(yobj) = + let y = (yobj :?> ILTypeRef) + (x.ApproxId = y.ApproxId) && + (x.Scope = y.Scope) && + (x.Name = y.Name) && + (x.Enclosing = y.Enclosing) + interface System.IComparable with + override x.CompareTo(yobj) = + let y = (yobj :?> ILTypeRef) + let c = compare x.ApproxId y.ApproxId + if c <> 0 then c else + let c = compare x.Scope y.Scope + if c <> 0 then c else + let c = compare x.Name y.Name + if c <> 0 then c else + compare x.Enclosing y.Enclosing + + member tref.FullName = String.concat "." (tref.Enclosing @ [tref.Name]) + + member tref.BasicQualifiedName = + String.concat "+" (tref.Enclosing @ [ tref.Name ]) + + member tref.AddQualifiedNameExtensionWithNoShortMscorlib(basic) = + let sco = tref.Scope.QualifiedNameWithNoShortMscorlib + if sco = "" then basic else String.concat ", " [basic;sco] + + member tref.QualifiedNameWithNoShortMscorlib = + tref.AddQualifiedNameExtensionWithNoShortMscorlib(tref.BasicQualifiedName) + + member tref.QualifiedName = + let basic = tref.BasicQualifiedName + let sco = tref.Scope.QualifiedName + if sco = "" then basic else String.concat ", " [basic;sco] + + + override x.ToString() = x.FullName + + +and + [] + ILTypeSpec = + { tspecTypeRef: ILTypeRef; + /// The type instantiation if the type is generic + tspecInst: ILGenericArgs } + member x.TypeRef=x.tspecTypeRef + member x.Scope=x.TypeRef.Scope + member x.Enclosing=x.TypeRef.Enclosing + member x.Name=x.TypeRef.Name + member x.GenericArgs=x.tspecInst + static member Create(tref,inst) = { tspecTypeRef =tref; tspecInst=inst } + override x.ToString() = x.TypeRef.ToString() + (if ILList.isEmpty x.GenericArgs then "" else "<...>") + member x.BasicQualifiedName = + let tc = x.TypeRef.BasicQualifiedName + if ILList.isEmpty x.GenericArgs then + tc + else + tc + "[" + String.concat "," (x.GenericArgs |> ILList.map (fun arg -> "[" + arg.QualifiedNameWithNoShortMscorlib + "]")) + "]" + + member x.AddQualifiedNameExtensionWithNoShortMscorlib(basic) = + x.TypeRef.AddQualifiedNameExtensionWithNoShortMscorlib(basic) + + member x.FullName=x.TypeRef.FullName + +and [] + ILType = + | Void + | Array of ILArrayShape * ILType + | Value of ILTypeSpec + | Boxed of ILTypeSpec + | Ptr of ILType + | Byref of ILType + | FunctionPointer of ILCallingSignature + | TypeVar of uint16 + | Modified of bool * ILTypeRef * ILType + + member x.BasicQualifiedName = + match x with + | ILType.TypeVar n -> "!" + string n + | ILType.Modified(_,_ty1,ty2) -> ty2.BasicQualifiedName + | ILType.Array (ILArrayShape(s),ty) -> ty.BasicQualifiedName + "[" + System.String(',',s.Length-1) + "]" + | ILType.Value tr | ILType.Boxed tr -> tr.BasicQualifiedName + | ILType.Void -> "void" + | ILType.Ptr _ty -> failwith "unexpected pointer type" + | ILType.Byref _ty -> failwith "unexpected byref type" + | ILType.FunctionPointer _mref -> failwith "unexpected function pointer type" + + member x.AddQualifiedNameExtensionWithNoShortMscorlib(basic) = + match x with + | ILType.TypeVar _n -> basic + | ILType.Modified(_,_ty1,ty2) -> ty2.AddQualifiedNameExtensionWithNoShortMscorlib(basic) + | ILType.Array (ILArrayShape(_s),ty) -> ty.AddQualifiedNameExtensionWithNoShortMscorlib(basic) + | ILType.Value tr | ILType.Boxed tr -> tr.AddQualifiedNameExtensionWithNoShortMscorlib(basic) + | ILType.Void -> failwith "void" + | ILType.Ptr _ty -> failwith "unexpected pointer type" + | ILType.Byref _ty -> failwith "unexpected byref type" + | ILType.FunctionPointer _mref -> failwith "unexpected function pointer type" + + member x.QualifiedNameWithNoShortMscorlib = + x.AddQualifiedNameExtensionWithNoShortMscorlib(x.BasicQualifiedName) + +and + [] + IlxExtensionType = + | Ext_typ of obj + member x.Value = (let (Ext_typ(v)) = x in v) + override x.Equals(yobj) = match yobj with :? IlxExtensionType as y -> Unchecked.equals x.Value y.Value | _ -> false + interface System.IComparable with + override x.CompareTo(yobj) = match yobj with :? IlxExtensionType as y -> Unchecked.compare x.Value y.Value | _ -> invalidOp "bad comparison" + +and [] + ILCallingSignature = + { CallingConv: ILCallingConv; + ArgTypes: ILTypes; + ReturnType: ILType } + +and ILGenericArgs = ILList +and ILTypes = ILList + + +let emptyILTypes = (ILList.empty : ILTypes) +let emptyILGenericArgs = (ILList.empty: ILGenericArgs) + +let mkILTypes xs = (match xs with [] -> emptyILTypes | _ -> ILList.ofList xs) +let mkILGenericArgs xs = (match xs with [] -> emptyILGenericArgs | _ -> ILList.ofList xs) + +let mkILCallSigRaw (cc,args,ret) = { ArgTypes=args; CallingConv=cc; ReturnType=ret} +let mkILCallSig (cc,args,ret) = mkILCallSigRaw(cc, mkILTypes args, ret) +let mkILBoxedType (tspec:ILTypeSpec) = tspec.TypeRef.AsBoxedType tspec + +type ILMethodRef = + { mrefParent: ILTypeRef; + mrefCallconv: ILCallingConv; + mrefGenericArity: int; + mrefName: string; + mrefArgs: ILTypes; + mrefReturn: ILType } + member x.EnclosingTypeRef = x.mrefParent + member x.CallingConv = x.mrefCallconv + member x.Name = x.mrefName + member x.GenericArity = x.mrefGenericArity + member x.ArgCount = x.mrefArgs.Length + member x.ArgTypes = x.mrefArgs + member x.ReturnType = x.mrefReturn + + member x.CallingSignature = mkILCallSigRaw (x.CallingConv,x.ArgTypes,x.ReturnType) + static member Create(a,b,c,d,e,f) = + { mrefParent= a;mrefCallconv=b;mrefName=c;mrefGenericArity=d; mrefArgs=e;mrefReturn=f } + override x.ToString() = x.EnclosingTypeRef.ToString() + "::" + x.Name + "(...)" + + +[] +type ILFieldRef = + { EnclosingTypeRef: ILTypeRef; + Name: string; + Type: ILType } + override x.ToString() = x.EnclosingTypeRef.ToString() + "::" + x.Name + +[] +type ILMethodSpec = + { mspecMethodRef: ILMethodRef; + mspecEnclosingType: ILType; + mspecMethodInst: ILGenericArgs; } + static member Create(a,b,c) = { mspecEnclosingType=a; mspecMethodRef =b; mspecMethodInst=c } + member x.MethodRef = x.mspecMethodRef + member x.EnclosingType=x.mspecEnclosingType + member x.GenericArgs=x.mspecMethodInst + member x.Name=x.MethodRef.Name + member x.CallingConv=x.MethodRef.CallingConv + member x.GenericArity = x.MethodRef.GenericArity + member x.FormalArgTypes = x.MethodRef.ArgTypes + member x.FormalReturnType = x.MethodRef.ReturnType + override x.ToString() = x.MethodRef.ToString() + "(...)" + + +type ILFieldSpec = + { FieldRef: ILFieldRef; + EnclosingType: ILType } + member x.FormalType = x.FieldRef.Type + member x.Name = x.FieldRef.Name + member x.EnclosingTypeRef = x.FieldRef.EnclosingTypeRef + override x.ToString() = x.FieldRef.ToString() + + +// -------------------------------------------------------------------- +// Debug info. +// -------------------------------------------------------------------- + +type Guid = byte[] + +type ILPlatform = + | X86 + | AMD64 + | IA64 + +type ILSourceDocument = + { sourceLanguage: Guid option; + sourceVendor: Guid option; + sourceDocType: Guid option; + sourceFile: string; } + static member Create(language,vendor,docType,file) = + { sourceLanguage=language; + sourceVendor=vendor; + sourceDocType=docType; + sourceFile=file; } + member x.Language=x.sourceLanguage + member x.Vendor=x.sourceVendor + member x.DocumentType=x.sourceDocType + member x.File=x.sourceFile + +type ILSourceMarker = + { sourceDocument: ILSourceDocument; + sourceLine: int; + sourceColumn: int; + sourceEndLine: int; + sourceEndColumn: int } + static member Create(document, line, column, endLine, endColumn) = + { sourceDocument=document; + sourceLine=line; + sourceColumn=column; + sourceEndLine=endLine; + sourceEndColumn=endColumn } + member x.Document=x.sourceDocument + member x.Line=x.sourceLine + member x.Column=x.sourceColumn + member x.EndLine=x.sourceEndLine + member x.EndColumn=x.sourceEndColumn + override x.ToString() = sprintf "(%d,%d)-(%d,%d)" x.Line x.Column x.EndLine x.EndColumn + +// -------------------------------------------------------------------- +// Custom attributes +// -------------------------------------------------------------------- + +type ILAttribElem = + | String of string option + | Bool of bool + | Char of char + | SByte of int8 + | Int16 of int16 + | Int32 of int32 + | Int64 of int64 + | Byte of uint8 + | UInt16 of uint16 + | UInt32 of uint32 + | UInt64 of uint64 + | Single of single + | Double of double + | Null + | Type of ILType option + | TypeRef of ILTypeRef option + | Array of ILType * ILAttribElem list + +type ILAttributeNamedArg = (string * ILType * bool * ILAttribElem) +type ILAttribute = + { Method: ILMethodSpec; +#if SILVERLIGHT + Arguments: ILAttribElem list * ILAttributeNamedArg list +#endif + Data: byte[] } + +[] +type ILAttributes = + | CustomAttrsLazy of Lazy + | CustomAttrs of ILAttribute list + member x.AsList = match x with | CustomAttrsLazy l -> l.Force() | CustomAttrs l -> l + +type ILCodeLabel = int + +// -------------------------------------------------------------------- +// Instruction set. +// -------------------------------------------------------------------- + +type ILBasicType = + | DT_R + | DT_I1 + | DT_U1 + | DT_I2 + | DT_U2 + | DT_I4 + | DT_U4 + | DT_I8 + | DT_U8 + | DT_R4 + | DT_R8 + | DT_I + | DT_U + | DT_REF + +[] +type ILToken = + | ILType of ILType + | ILMethod of ILMethodSpec + | ILField of ILFieldSpec + +[] +type ILConst = + | I4 of int32 + | I8 of int64 + | R4 of single + | R8 of double + +type ILTailcall = + | Tailcall + | Normalcall + +type ILAlignment = + | Aligned + | Unaligned1 + | Unaligned2 + | Unaligned4 + +type ILVolatility = + | Volatile + | Nonvolatile + +type ILReadonly = + | ReadonlyAddress + | NormalAddress + +type ILVarArgs = ILTypes option + +[] +type ILComparisonInstr = + | BI_beq + | BI_bge + | BI_bge_un + | BI_bgt + | BI_bgt_un + | BI_ble + | BI_ble_un + | BI_blt + | BI_blt_un + | BI_bne_un + | BI_brfalse + | BI_brtrue + + +[] +type ILInstr = + | AI_add + | AI_add_ovf + | AI_add_ovf_un + | AI_and + | AI_div + | AI_div_un + | AI_ceq + | AI_cgt + | AI_cgt_un + | AI_clt + | AI_clt_un + | AI_conv of ILBasicType + | AI_conv_ovf of ILBasicType + | AI_conv_ovf_un of ILBasicType + | AI_mul + | AI_mul_ovf + | AI_mul_ovf_un + | AI_rem + | AI_rem_un + | AI_shl + | AI_shr + | AI_shr_un + | AI_sub + | AI_sub_ovf + | AI_sub_ovf_un + | AI_xor + | AI_or + | AI_neg + | AI_not + | AI_ldnull + | AI_dup + | AI_pop + | AI_ckfinite + | AI_nop + | AI_ldc of ILBasicType * ILConst + | I_ldarg of uint16 + | I_ldarga of uint16 + | I_ldind of ILAlignment * ILVolatility * ILBasicType + | I_ldloc of uint16 + | I_ldloca of uint16 + | I_starg of uint16 + | I_stind of ILAlignment * ILVolatility * ILBasicType + | I_stloc of uint16 + + | I_br of ILCodeLabel + | I_jmp of ILMethodSpec + | I_brcmp of ILComparisonInstr * ILCodeLabel * ILCodeLabel (* second label is fall-through *) + | I_switch of (ILCodeLabel list * ILCodeLabel) (* last label is fallthrough *) + | I_ret + + | I_call of ILTailcall * ILMethodSpec * ILVarArgs + | I_callvirt of ILTailcall * ILMethodSpec * ILVarArgs + | I_callconstraint of ILTailcall * ILType * ILMethodSpec * ILVarArgs + | I_calli of ILTailcall * ILCallingSignature * ILVarArgs + | I_ldftn of ILMethodSpec + | I_newobj of ILMethodSpec * ILVarArgs + + | I_throw + | I_endfinally + | I_endfilter + | I_leave of ILCodeLabel + | I_rethrow + + | I_ldsfld of ILVolatility * ILFieldSpec + | I_ldfld of ILAlignment * ILVolatility * ILFieldSpec + | I_ldsflda of ILFieldSpec + | I_ldflda of ILFieldSpec + | I_stsfld of ILVolatility * ILFieldSpec + | I_stfld of ILAlignment * ILVolatility * ILFieldSpec + | I_ldstr of string + | I_isinst of ILType + | I_castclass of ILType + | I_ldtoken of ILToken + | I_ldvirtftn of ILMethodSpec + + | I_cpobj of ILType + | I_initobj of ILType + | I_ldobj of ILAlignment * ILVolatility * ILType + | I_stobj of ILAlignment * ILVolatility * ILType + | I_box of ILType + | I_unbox of ILType + | I_unbox_any of ILType + | I_sizeof of ILType + + | I_ldelem of ILBasicType + | I_stelem of ILBasicType + | I_ldelema of ILReadonly * bool * ILArrayShape * ILType + | I_ldelem_any of ILArrayShape * ILType + | I_stelem_any of ILArrayShape * ILType + | I_newarr of ILArrayShape * ILType + | I_ldlen + + | I_mkrefany of ILType + | I_refanytype + | I_refanyval of ILType + + | I_break + | I_seqpoint of ILSourceMarker + + | I_arglist + + | I_localloc + | I_cpblk of ILAlignment * ILVolatility + | I_initblk of ILAlignment * ILVolatility + + (* FOR EXTENSIONS, e.g. MS-ILX *) + | EI_ilzero of ILType + | EI_ldlen_multi of int32 * int32 + | I_other of IlxExtensionInstr + +and IlxExtensionInstr = Ext_instr of obj + + +// -------------------------------------------------------------------- +// Helpers for the ILX extensions +// -------------------------------------------------------------------- + +type internal_instr_extension = + { internalInstrExtIs: IlxExtensionInstr -> bool; + internalInstrExtDests: IlxExtensionInstr -> ILCodeLabel list; + internalInstrExtFallthrough: IlxExtensionInstr -> ILCodeLabel option; + internalInstrExtIsTailcall: IlxExtensionInstr -> bool; + internalInstrExtRelabel: (ILCodeLabel -> ILCodeLabel) -> IlxExtensionInstr -> IlxExtensionInstr; } + +type ILInstrSetExtension<'T> = + { instrExtDests: 'T -> ILCodeLabel list; + instrExtFallthrough: 'T -> ILCodeLabel option; + instrExtIsTailcall: 'T -> bool; + instrExtRelabel: (ILCodeLabel -> ILCodeLabel) -> 'T -> 'T; } + +let instrExtensions = ref [] + +let RegisterInstructionSetExtension (ext: ILInstrSetExtension<'T>) = + if nonNil !instrExtensions then failwith "RegisterInstructionSetExtension: only one extension currently allowed"; + let mk (x: 'T) = Ext_instr (box x) + let test (Ext_instr _x) = true + let dest (Ext_instr x) = (unbox x : 'T) + instrExtensions := + { internalInstrExtIs=test; + internalInstrExtDests=(fun x -> ext.instrExtDests (dest x)); + internalInstrExtFallthrough=(fun x -> ext.instrExtFallthrough (dest x)); + internalInstrExtIsTailcall=(fun x -> ext.instrExtIsTailcall (dest x)); + internalInstrExtRelabel=(fun f x -> mk (ext.instrExtRelabel f (dest x))); } + :: !instrExtensions; + mk,test,dest + +let rec find_extension s f l = + let rec look l1 = + match l1 with + | [] -> failwith ("extension for "+s+" not found") + | (h::t) -> match f h with None -> look t | Some res -> res + look l + + +type ILDebugMapping = + { LocalIndex: int; + LocalName: string; } + +type ILBasicBlock = + { Label: ILCodeLabel; + Instructions: ILInstr[] } + member bb.LastInstruction = + let n = bb.Instructions.Length + if n = 0 then failwith "last_of_bblock: empty bblock"; + bb.Instructions.[n - 1] + + member x.Fallthrough = + match x.LastInstruction with + | I_br l | I_brcmp (_,_,l) | I_switch (_,l) -> Some l + | I_other e -> find_extension "instr" (fun ext -> if ext.internalInstrExtIs e then Some (ext.internalInstrExtFallthrough e) else None) !instrExtensions + | _ -> None + + +type ILCode = + | ILBasicBlock of ILBasicBlock + | GroupBlock of ILDebugMapping list * ILCode list + | RestrictBlock of ILCodeLabel list * ILCode + | TryBlock of ILCode * ILExceptionBlock + +and ILExceptionBlock = + | FaultBlock of ILCode + | FinallyBlock of ILCode + | FilterCatchBlock of (ILFilterBlock * ILCode) list + +and ILFilterBlock = + | TypeFilter of ILType + | CodeFilter of ILCode + +[] +type ILLocal = + { Type: ILType; + IsPinned: bool } + +type ILLocals = ILList +let emptyILLocals = (ILList.empty : ILLocals) +let mkILLocals xs = (match xs with [] -> emptyILLocals | _ -> ILList.ofList xs) + +[] +type ILMethodBody = + { IsZeroInit: bool; + MaxStack: int32; + NoInlining: bool; + Locals: ILLocals; + Code: ILCode; + SourceMarker: ILSourceMarker option } + +[] +type ILMemberAccess = + | Assembly + | CompilerControlled + | FamilyAndAssembly + | FamilyOrAssembly + | Family + | Private + | Public + +[] +[] +type ILFieldInit = + | String of string + | Bool of bool + | Char of uint16 + | Int8 of int8 + | Int16 of int16 + | Int32 of int32 + | Int64 of int64 + | UInt8 of uint8 + | UInt16 of uint16 + | UInt32 of uint32 + | UInt64 of uint64 + | Single of single + | Double of double + | Null + +// -------------------------------------------------------------------- +// Native Types, for marshalling to the native C interface. +// These are taken directly from the ILASM syntax, and don't really +// correspond yet to the ECMA Spec (Partition II, 7.4). +// -------------------------------------------------------------------- + +[] +[] +type ILNativeType = + | Empty + | Custom of Guid * string * string * byte[] (* guid,nativeTypeName,custMarshallerName,cookieString *) + | FixedSysString of int32 + | FixedArray of int32 + | Currency + | LPSTR + | LPWSTR + | LPTSTR + | ByValStr + | TBSTR + | LPSTRUCT + | Struct + | Void + | Bool + | Int8 + | Int16 + | Int32 + | Int64 + | Single + | Double + | Byte + | UInt16 + | UInt32 + | UInt64 + | Array of ILNativeType option * (int32 * int32 option) option (* optional idx of parameter giving size plus optional additive i.e. num elems *) + | Int + | UInt + | Method + | AsAny + | BSTR + | IUnknown + | IDispatch + | Interface + | Error + | SafeArray of ILNativeVariant * string option + | ANSIBSTR + | VariantBool + + +and ILNativeVariant = + | Empty + | Null + | Variant + | Currency + | Decimal + | Date + | BSTR + | LPSTR + | LPWSTR + | IUnknown + | IDispatch + | SafeArray + | Error + | HRESULT + | CArray + | UserDefined + | Record + | FileTime + | Blob + | Stream + | Storage + | StreamedObject + | StoredObject + | BlobObject + | CF + | CLSID + | Void + | Bool + | Int8 + | Int16 + | Int32 + | Int64 + | Single + | Double + | UInt8 + | UInt16 + | UInt32 + | UInt64 + | PTR + | Array of ILNativeVariant + | Vector of ILNativeVariant + | Byref of ILNativeVariant + | Int + | UInt + +type ILSecurityAction = + | Request + | Demand + | Assert + | Deny + | PermitOnly + | LinkCheck + | InheritCheck + | ReqMin + | ReqOpt + | ReqRefuse + | PreJitGrant + | PreJitDeny + | NonCasDemand + | NonCasLinkDemand + | NonCasInheritance + | LinkDemandChoice + | InheritanceDemandChoice + | DemandChoice + +type ILPermission = + | PermissionSet of ILSecurityAction * byte[] + +type ILPermissions = + | SecurityDecls of ILPermission list + | SecurityDeclsLazy of Lazy + member x.AsList = match x with SecurityDecls m -> m | SecurityDeclsLazy m -> m.Force() + +[] +type PInvokeCharBestFit = + | UseAssembly + | Enabled + | Disabled + +[] +type PInvokeThrowOnUnmappableChar = + | UseAssembly + | Enabled + | Disabled + +[] +type PInvokeCallingConvention = + | None + | Cdecl + | Stdcall + | Thiscall + | Fastcall + | WinApi + +[] +type PInvokeCharEncoding = + | None + | Ansi + | Unicode + | Auto + +[] +type PInvokeMethod = + { Where: ILModuleRef; + Name: string; + CallingConv: PInvokeCallingConvention; + CharEncoding: PInvokeCharEncoding; + NoMangle: bool; + LastError: bool; + ThrowOnUnmappableChar: PInvokeThrowOnUnmappableChar; + CharBestFit: PInvokeCharBestFit } + +type ILParameter = + { Name: string option; + Type: ILType; + Default: ILFieldInit option; + Marshal: ILNativeType option; + IsIn: bool; + IsOut: bool; + IsOptional: bool; + CustomAttrs: ILAttributes } + +type ILParameters = ILList +let emptyILParameters = (ILList.empty : ILParameters) + +let mkILParametersRaw x = (match x with [] -> emptyILParameters | _ -> ILList.ofList x) + +type ILReturn = + { Marshal: ILNativeType option; + Type: ILType; + CustomAttrs: ILAttributes } + +type ILOverridesSpec = + | OverridesSpec of ILMethodRef * ILType + member x.MethodRef = let (OverridesSpec(mr,_ty)) = x in mr + member x.EnclosingType = let (OverridesSpec(_mr,ty)) = x in ty + +type ILMethodVirtualInfo = + { IsFinal: bool + IsNewSlot: bool + IsCheckAccessOnOverride: bool + IsAbstract: bool } + +type MethodKind = + | Static + | Cctor + | Ctor + | NonVirtual + | Virtual of ILMethodVirtualInfo + +[] +type MethodBody = + | IL of ILMethodBody + | PInvoke of PInvokeMethod (* platform invoke to native *) + | Abstract + | Native + +type ILLazyMethodBody = + | ILLazyMethodBody of Lazy + member x.Contents = let (ILLazyMethodBody mb) = x in mb.Force() + +[] +type MethodCodeKind = + | IL + | Native + | Runtime + +let mkMethBodyAux mb = ILLazyMethodBody (Lazy.CreateFromValue mb) +let mkMethBodyLazyAux mb = ILLazyMethodBody mb + +let typesOfILParamsRaw (ps:ILParameters) : ILTypes = ps |> ILList.map (fun p -> p.Type) +let typesOfILParamsList (ps:ILParameter list) = ps |> List.map (fun p -> p.Type) + +[] +type ILGenericVariance = + | NonVariant + | CoVariant + | ContraVariant + +type ILGenericParameterDef = + { Name: string; + Constraints: ILTypes; + Variance: ILGenericVariance; + HasReferenceTypeConstraint: bool; + CustomAttrs : ILAttributes; + HasNotNullableValueTypeConstraint: bool; + HasDefaultConstructorConstraint: bool; } + + override x.ToString() = x.Name + +type ILGenericParameterDefs = ILGenericParameterDef list + +[] +type ILMethodDef = + { Name: string; + mdKind: MethodKind; + CallingConv: ILCallingConv; + Parameters: ILParameters; + Return: ILReturn; + Access: ILMemberAccess; + mdBody: ILLazyMethodBody; + mdCodeKind: MethodCodeKind; + IsInternalCall: bool; + IsManaged: bool; + IsForwardRef: bool; + SecurityDecls: ILPermissions; + HasSecurity: bool; + IsEntryPoint:bool; + IsReqSecObj: bool; + IsHideBySig: bool; + IsSpecialName: bool; + IsUnmanagedExport: bool; + IsSynchronized: bool; + IsPreserveSig: bool; + IsMustRun: bool; + IsNoInline: bool; + GenericParams: ILGenericParameterDefs; + CustomAttrs: ILAttributes; } + member x.ParameterTypes = typesOfILParamsRaw x.Parameters + // Whidbey feature: SafeHandle finalizer must be run + member md.Code = + match md.mdBody.Contents with + | MethodBody.IL il-> Some il.Code + | _ -> None + member x.IsIL = match x.mdBody.Contents with | MethodBody.IL _ -> true | _ -> false + member x.Locals = match x.mdBody.Contents with | MethodBody.IL il -> il.Locals | _ -> emptyILLocals + + member x.MethodBody = match x.mdBody.Contents with MethodBody.IL il -> il | _ -> failwith "not IL" + + member x.SourceMarker = x.MethodBody.SourceMarker + member x.MaxStack = x.MethodBody.MaxStack + member x.IsZeroInit = x.MethodBody.IsZeroInit + + member x.IsClassInitializer = match x.mdKind with | MethodKind.Cctor -> true | _ -> false + member x.IsConstructor = match x.mdKind with | MethodKind.Ctor -> true | _ -> false + member x.IsStatic = match x.mdKind with | MethodKind.Static -> true | _ -> false + member x.IsNonVirtualInstance = match x.mdKind with | MethodKind.NonVirtual -> true | _ -> false + member x.IsVirtual = match x.mdKind with | MethodKind.Virtual _ -> true | _ -> false + + member x.IsFinal = match x.mdKind with | MethodKind.Virtual v -> v.IsFinal | _ -> invalidOp "not virtual" + member x.IsNewSlot = match x.mdKind with | MethodKind.Virtual v -> v.IsNewSlot | _ -> invalidOp "not virtual" + member x.IsCheckAccessOnOverride= match x.mdKind with | MethodKind.Virtual v -> v.IsCheckAccessOnOverride | _ -> invalidOp "not virtual" + member x.IsAbstract = match x.mdKind with | MethodKind.Virtual v -> v.IsAbstract | _ -> invalidOp "not virtual" + + member md.CallingSignature = mkILCallSigRaw (md.CallingConv,md.ParameterTypes,md.Return.Type) + + +/// Index table by name and arity. +type MethodDefMap = Map + +[] +type ILMethodDefs = + | Methods of Lazy + interface IEnumerable with + member x.GetEnumerator() = ((x :> IEnumerable).GetEnumerator() :> IEnumerator) + interface IEnumerable with + member x.GetEnumerator() = + let (Methods(lms)) = x + let ms,_ = lms.Force() + (ms :> IEnumerable).GetEnumerator() + member x.AsList = Seq.toList x + + member x.FindByName nm = + let (Methods lpmap) = x + let t = snd (Lazy.force lpmap) + Map.tryFindMulti nm t + + member x.FindByNameAndArity (nm,arity) = + x.FindByName nm |> List.filter (fun x -> x.Parameters.Length = arity) + + +[] +type ILEventDef = + { Type: ILType option; + Name: string; + IsRTSpecialName: bool; + IsSpecialName: bool; + AddMethod: ILMethodRef; + RemoveMethod: ILMethodRef; + FireMethod: ILMethodRef option; + OtherMethods: ILMethodRef list; + CustomAttrs: ILAttributes; } + +(* Index table by name. *) +[] +type ILEventDefs = + | Events of LazyOrderedMultiMap + member x.AsList = let (Events t) = x in t.Entries() + member x.LookupByName s = let (Events t) = x in t.[s] + +[] +type ILPropertyDef = + { Name: string; + IsRTSpecialName: bool; + IsSpecialName: bool; + SetMethod: ILMethodRef option; + GetMethod: ILMethodRef option; + CallingConv: ILThisConvention; + Type: ILType; + Init: ILFieldInit option; + Args: ILTypes; + CustomAttrs: ILAttributes; } + +// Index table by name. +[] +type ILPropertyDefs = + | Properties of LazyOrderedMultiMap + member x.AsList = let (Properties t) = x in t.Entries() + member x.LookupByName s = let (Properties t) = x in t.[s] + +[] +type ILFieldDef = + { Name: string; + Type: ILType; + IsStatic: bool; + Access: ILMemberAccess; + Data: byte[] option; + LiteralValue: ILFieldInit option; + Offset: int32 option; + IsSpecialName: bool; + Marshal: ILNativeType option; + NotSerialized: bool; + IsLiteral: bool ; + IsInitOnly: bool; + CustomAttrs: ILAttributes; } + + +// Index table by name. Keep a canonical list to make sure field order is not disturbed for binary manipulation. +type ILFieldDefs = + | Fields of LazyOrderedMultiMap + member x.AsList = let (Fields t) = x in t.Entries() + member x.LookupByName s = let (Fields t) = x in t.[s] + +type ILMethodImplDef = + { Overrides: ILOverridesSpec; + OverrideBy: ILMethodSpec } + +// Index table by name and arity. +type ILMethodImplDefs = + | MethodImpls of Lazy + member x.AsList = let (MethodImpls ltab) = x in Map.foldBack (fun _x y r -> y@r) (ltab.Force()) [] + +and MethodImplsMap = Map + +[] +type ILTypeDefLayout = + | Auto + | Sequential of ILTypeDefLayoutInfo + | Explicit of ILTypeDefLayoutInfo (* REVIEW: add field info here *) + +and ILTypeDefLayoutInfo = + { Size: int32 option; + Pack: uint16 option } + +[] +type ILTypeInit = + | BeforeField + | OnAny + +[] +type ILDefaultPInvokeEncoding = + | Ansi + | Auto + | Unicode + +type ILTypeDefAccess = + | Public + | Private + | Nested of ILMemberAccess + +[] +type ILTypeDefKind = + | Class + | ValueType + | Interface + | Enum + | Delegate + | Other of IlxExtensionTypeKind + +and IlxExtensionTypeKind = Ext_type_def_kind of obj + +type internal_type_def_kind_extension = + { internalTypeDefKindExtIs: IlxExtensionTypeKind -> bool; } + + +[] +type ILTypeDef = + { tdKind: ILTypeDefKind; + Name: string; + GenericParams: ILGenericParameterDefs; (* class is generic *) + Access: ILTypeDefAccess; + IsAbstract: bool; + IsSealed: bool; + IsSerializable: bool; + IsComInterop: bool; (* Class or interface generated for COM interop *) + Layout: ILTypeDefLayout; + IsSpecialName: bool; + Encoding: ILDefaultPInvokeEncoding; + NestedTypes: ILTypeDefs; + Implements: ILTypes; + Extends: ILType option; + Methods: ILMethodDefs; + SecurityDecls: ILPermissions; + HasSecurity: bool; + Fields: ILFieldDefs; + MethodImpls: ILMethodImplDefs; + InitSemantics: ILTypeInit; + Events: ILEventDefs; + Properties: ILPropertyDefs; + CustomAttrs: ILAttributes; } + member x.IsClass = (match x.tdKind with ILTypeDefKind.Class -> true | _ -> false) + member x.IsInterface = (match x.tdKind with ILTypeDefKind.Interface -> true | _ -> false) + member x.IsEnum = (match x.tdKind with ILTypeDefKind.Enum -> true | _ -> false) + member x.IsDelegate = (match x.tdKind with ILTypeDefKind.Delegate -> true | _ -> false) + + member tdef.IsStructOrEnum = + match tdef.tdKind with + | ILTypeDefKind.ValueType | ILTypeDefKind.Enum -> true + | _ -> false + + +and ILTypeDefs = + | TypeDefTable of Lazy<(string list * string * ILAttributes * Lazy) array> * Lazy + interface IEnumerable with + member x.GetEnumerator() = ((x :> IEnumerable).GetEnumerator() :> IEnumerator) + interface IEnumerable with + member x.GetEnumerator() = + let (TypeDefTable (larr,_tab)) = x + let tds = seq { for (_,_,_,td) in larr.Force() -> td.Force() } + tds.GetEnumerator() + member x.AsList = Seq.toList x + + member x.AsListOfLazyTypeDefs = let (TypeDefTable (larr,_tab)) = x in larr.Force() |> Array.toList + + member x.FindByName nm = + let (TypeDefTable (_,m)) = x + let ns,n = splitILTypeName nm + m.Force().[ns].[n].Force() + + +/// keyed first on namespace then on type name. The namespace is often a unique key for a given type map. +and ILTypeDefsMap = + Map>> + +type ILNestedExportedType = + { Name: string; + Access: ILMemberAccess; + Nested: ILNestedExportedTypes; + CustomAttrs: ILAttributes } + +and ILNestedExportedTypes = + | ILNestedExportedTypes of Lazy> + member x.AsList = let (ILNestedExportedTypes ltab) = x in Map.foldBack (fun _x y r -> y::r) (ltab.Force()) [] + +and [] + ILExportedTypeOrForwarder = + { ScopeRef: ILScopeRef; + Name: string; + IsForwarder: bool; + Access: ILTypeDefAccess; + Nested: ILNestedExportedTypes; + CustomAttrs: ILAttributes } + +and ILExportedTypesAndForwarders = + | ILExportedTypesAndForwarders of Lazy> + member x.AsList = let (ILExportedTypesAndForwarders ltab) = x in Map.foldBack (fun _x y r -> y::r) (ltab.Force()) [] + +[] +type ILResourceAccess = + | Public + | Private + +[] +type ILResourceLocation = + | Local of (unit -> byte[]) + | File of ILModuleRef * int32 + | Assembly of ILAssemblyRef + +type ILResource = + { Name: string; + Location: ILResourceLocation; + Access: ILResourceAccess; + CustomAttrs: ILAttributes } + +type ILResources = + | ILResources of Lazy + member x.AsList = let (ILResources ltab) = x in (ltab.Force()) + +// -------------------------------------------------------------------- +// One module in the "current" assembly +// -------------------------------------------------------------------- + +[] +type ILAssemblyLongevity = + | Unspecified + | Library + | PlatformAppDomain + | PlatformProcess + | PlatformSystem + + +type ILAssemblyManifest = + { Name: string; + AuxModuleHashAlgorithm: int32; + SecurityDecls: ILPermissions; + PublicKey: byte[] option; + Version: ILVersionInfo option; + Locale: Locale option; + CustomAttrs: ILAttributes; + + AssemblyLongevity: ILAssemblyLongevity; + DisableJitOptimizations: bool; + JitTracking: bool; + Retargetable: bool; + + /// Records the types impemented by other modules. + ExportedTypes: ILExportedTypesAndForwarders; + /// Records whether the entrypoint resides in another module. + EntrypointElsewhere: ILModuleRef option; + + } + +type ILModuleDef = + { Manifest: ILAssemblyManifest option; + CustomAttrs: ILAttributes; + Name: string; + TypeDefs: ILTypeDefs; + SubsystemVersion : int * int + UseHighEntropyVA : bool + (* Random bits of relatively uninteresting data *) + SubSystemFlags: int32; + IsDLL: bool; + IsILOnly: bool; + Platform: ILPlatform option; + StackReserveSize: int32 option; + Is32Bit: bool; + Is32BitPreferred: bool; + Is64Bit: bool; + VirtualAlignment: int32; + PhysicalAlignment: int32; + ImageBase: int32; + MetadataVersion: string; + Resources: ILResources; + NativeResources: list>; (* e.g. win32 resources *) + } + member x.ManifestOfAssembly = + match x.Manifest with + | Some m -> m + | None -> failwith "no manifest. It is possible you are using an auxiliary module of an assembly in a context where the main module of an assembly is expected. Typically the main module of an assembly must be specified first within a list of the modules in an assembly." + + member m.HasManifest = + match m.Manifest with None -> false | _ -> true + + +// -------------------------------------------------------------------- +// Add fields and types to tables, with decent error messages +// when clashes occur... +// -------------------------------------------------------------------- + + + +let mkILEmptyGenericParams = ([]: ILGenericParameterDefs) +let emptyILGenericArgsList = ([ ]: ILType list) + + +type ILType with + member x.TypeSpec = + match x with + | ILType.Boxed tr | ILType.Value tr -> tr + | _ -> invalidOp "not a nominal type" + member x.Boxity = + match x with + | ILType.Boxed _ -> AsObject + | ILType.Value _ -> AsValue + | _ -> invalidOp "not a nominal type" + member x.TypeRef = + match x with + | ILType.Boxed tspec | ILType.Value tspec -> tspec.TypeRef + | _ -> invalidOp "not a nominal type" + member x.IsNominal = + match x with + | ILType.Boxed _ | ILType.Value _ -> true + | _ -> false + member x.GenericArgs = + match x with + | ILType.Boxed tspec | ILType.Value tspec -> tspec.GenericArgs + | _ -> emptyILGenericArgs + member x.IsTyvar = + match x with + | ILType.TypeVar _ -> true | _ -> false + + + +// -------------------------------------------------------------------- +// Make ILTypeRefs etc. +// -------------------------------------------------------------------- + +let mkILNestedTyRef (scope,l,nm) = ILTypeRef.Create(scope,l,nm) +let mkILTyRef (scope,nm) = mkILNestedTyRef (scope,[],nm) + +type ILGenericArgsList = ILType list + +let mkILTySpecRaw (tref,inst) = ILTypeSpec.Create(tref, inst) +let mkILTySpec (tref,inst) = mkILTySpecRaw (tref, mkILGenericArgs inst) + +let mkILNonGenericTySpec tref = mkILTySpec (tref,[]) + +let mkILTyRefInTyRef (tref:ILTypeRef,nm) = + mkILNestedTyRef (tref.Scope,tref.Enclosing@[tref.Name],nm) + +let mkILTy boxed tspec = + match boxed with AsObject -> mkILBoxedType tspec | _ -> ILType.Value tspec + +let mkILNamedTy vc tref tinst = mkILTy vc (ILTypeSpec.Create(tref, mkILGenericArgs tinst)) +let mkILNamedTyRaw vc tref tinst = mkILTy vc (ILTypeSpec.Create(tref, tinst)) + +let mkILValueTy tref tinst = mkILNamedTy AsValue tref tinst +let mkILBoxedTy tref tinst = mkILNamedTy AsObject tref tinst +let mkILBoxedTyRaw tref tinst = mkILNamedTyRaw AsObject tref tinst + +let mkILNonGenericValueTy tref = mkILNamedTy AsValue tref [] +let mkILNonGenericBoxedTy tref = mkILNamedTy AsObject tref [] + + +type ILTypeDefKindExtension<'T> = + | TypeDefKindExtension + +let type_def_kind_extensions = ref [] + +let RegisterTypeDefKindExtension (TypeDefKindExtension : ILTypeDefKindExtension<'T>) = + if nonNil !type_def_kind_extensions then failwith "define_type_extension: only one extension currently allowed"; + let mk (x:'T) = Ext_type_def_kind (box x) + let test (Ext_type_def_kind _x) = true + let dest (Ext_type_def_kind x) = (unbox x: 'T) + type_def_kind_extensions := + { internalTypeDefKindExtIs=test;} + :: !type_def_kind_extensions; + mk,test,dest + +// -------------------------------------------------------------------- +// Making assembly, module and file references +// -------------------------------------------------------------------- + +let mkSimpleAssRef n = + ILAssemblyRef.Create(n, None, None, false, None, None) + +let mkSimpleModRef n = + ILModuleRef.Create(n, true, None) + +let module_name_of_scoref = function + | ILScopeRef.Module(mref) -> mref.Name + | _ -> failwith "module_name_of_scoref" + +// -------------------------------------------------------------------- +// The toplevel class of a module is called "" +// +// REVIEW: the following comments from the ECMA Spec (Parition II, Section 9.8) +// +// "For an ordinary type, if the metadata merges two definitions +// of the same type, it simply discards one definition on the +// assumption they are equivalent and that any anomaly will be +// discovered when the type is used. For the special class that +// holds global members, however, members are unioned across all +// modules at merge time. If the same name appears to be defined +// for cross-module use in multiple modules then there is an +// error. In detail: +// - If no member of the same kind (field or method), name, and +// signature exists, then add this member to the output class. +// - If there are duplicates and no more than one has an +// accessibility other than compilercontrolled, then add them +// all in the output class. +// - If there are duplicates and two or more have an accessibility +// other than compilercontrolled an error has occurred." +// -------------------------------------------------------------------- + +let typeNameForGlobalFunctions = "" + +let mkILTypeForGlobalFunctions scoref = mkILBoxedType (mkILNonGenericTySpec (ILTypeRef.Create(scoref,[],typeNameForGlobalFunctions))) + +let isTypeNameForGlobalFunctions d = (d = typeNameForGlobalFunctions) + + +let mkILMethRefRaw (tref,callconv,nm,gparams,args,rty) = + { mrefParent=tref; + mrefCallconv=callconv; + mrefGenericArity=gparams; + mrefName=nm; + mrefArgs=args; + mrefReturn=rty} + +let mkILMethRef (tref,callconv,nm,gparams,args,rty) = mkILMethRefRaw (tref,callconv,nm,gparams,mkILTypes args,rty) + +let mkILMethSpecForMethRefInTyRaw (mref,typ,minst) = + { mspecMethodRef=mref; + mspecEnclosingType=typ; + mspecMethodInst=minst } + +let mkILMethSpecForMethRefInTy (mref,typ,minst) = mkILMethSpecForMethRefInTyRaw (mref,typ,mkILGenericArgs minst) + +let mkILMethSpec (mref, vc, tinst, minst) = mkILMethSpecForMethRefInTy (mref,mkILNamedTy vc mref.EnclosingTypeRef tinst, minst) + +let mk_mspec_in_tref (tref,vc,cc,nm,args,rty,tinst,minst) = + mkILMethSpec (mkILMethRef ( tref,cc,nm,List.length minst,args,rty),vc,tinst,minst) + +let mkILMethSpecInTyRaw (typ:ILType, cc, nm, args, rty, minst:ILGenericArgs) = + mkILMethSpecForMethRefInTyRaw (mkILMethRefRaw (typ.TypeRef,cc,nm,minst.Length,args,rty),typ,minst) + +let mkILMethSpecInTy (typ:ILType, cc, nm, args, rty, minst) = + mkILMethSpecForMethRefInTy (mkILMethRef (typ.TypeRef,cc,nm,List.length minst,args,rty),typ,minst) + +let mkILNonGenericMethSpecInTy (typ,cc,nm,args,rty) = + mkILMethSpecInTy (typ,cc,nm,args,rty,[]) + +let mkILInstanceMethSpecInTy (typ:ILType,nm,args,rty,minst) = + mkILMethSpecInTy (typ, ILCallingConv.Instance, nm, args, rty, minst) + +let mkILNonGenericInstanceMethSpecInTy (typ:ILType,nm,args,rty) = + mkILInstanceMethSpecInTy (typ,nm,args,rty,[]) + +let mkILStaticMethSpecInTy (typ,nm,args,rty,minst) = + mkILMethSpecInTy (typ,ILCallingConv.Static,nm,args,rty,minst) + +let mkILNonGenericStaticMethSpecInTy (typ,nm,args,rty) = + mkILStaticMethSpecInTy (typ,nm,args,rty,[]) + +let mkILCtorMethSpec (tref,args,cinst) = + mk_mspec_in_tref(tref,AsObject,ILCallingConv.Instance,".ctor",args,ILType.Void,cinst, []) + +let mkILCtorMethSpecForTy (ty,args) = + mkILMethSpecInTy(ty,ILCallingConv.Instance,".ctor",args,ILType.Void, []) + +let mkILNonGenericCtorMethSpec (tref,args) = + mkILCtorMethSpec (tref,args,[]) + +// -------------------------------------------------------------------- +// Make references to fields +// -------------------------------------------------------------------- + +let mkILFieldRef(tref,nm,ty) = { EnclosingTypeRef=tref; Name=nm; Type=ty} + +let mkILFieldSpec (tref,ty) = { FieldRef= tref; EnclosingType=ty } + +let mkILFieldSpecInTy (typ:ILType,nm,fty) = + mkILFieldSpec (mkILFieldRef (typ.TypeRef,nm,fty), typ) + +let emptyILCustomAttrs = CustomAttrs [] + +let mkILCustomAttrs l = match l with [] -> emptyILCustomAttrs | _ -> CustomAttrs l +let mkILComputedCustomAttrs l = CustomAttrsLazy (Lazy.Create l) + +let andTailness x y = + match x with Tailcall when y -> Tailcall | _ -> Normalcall + +// -------------------------------------------------------------------- +// ILAttributes on code blocks (esp. debug info) +// -------------------------------------------------------------------- + +let formatCodeLabel (x:int) = "L"+string x + +module CodeLabels = + let insert (e:ILCodeLabel) l = Zset.add e l + let remove e l = Zset.remove e l + let fold f s acc = Zset.fold f s acc + let add s x = Zset.add s x + let addList s xs = Zset.addList s xs + let diff l1 l2 = Zset.diff l1 l2 + let union l1 l2 = Zset.union l1 l2 + let inter (l1:Zset) l2 = Zset.inter l1 l2 + let subset (l1:Zset) l2 = Zset.subset l1 l2 + let empty = Zset.empty int_order + let isNonEmpty s = not (Zset.isEmpty s) + let ofList l = Zset.addList l empty + let toList l = Zset.elements l + +// -------------------------------------------------------------------- +// Basic operations on code. +// -------------------------------------------------------------------- + +let destinationsOfInstr i = + match i with + | I_leave l | I_br l -> [l] + | I_brcmp (_,l1,l2) -> [l1; l2] + | I_switch (ls,l) -> CodeLabels.toList (CodeLabels.ofList (l::ls)) + | I_endfinally | I_endfilter | I_ret | I_throw | I_rethrow + | I_call (Tailcall,_,_)| I_callvirt (Tailcall,_,_)| I_callconstraint (Tailcall,_,_,_) + | I_calli (Tailcall,_,_) -> [] + | I_other e -> find_extension "instr" (fun ext -> if ext.internalInstrExtIs e then Some (ext.internalInstrExtDests e) else None) !instrExtensions + | _ -> [] + +let destinationsOfBasicBlock (bblock:ILBasicBlock) = destinationsOfInstr bblock.LastInstruction + +let instrIsTailcall i = + match i with + | I_call (Tailcall,_,_)| I_callvirt (Tailcall,_,_) | I_callconstraint (Tailcall,_,_,_) | I_calli (Tailcall,_,_) -> true + | I_other e -> find_extension "instr" (fun ext -> if ext.internalInstrExtIs e then Some (ext.internalInstrExtIsTailcall e) else None) !instrExtensions + | _ -> false + +let instrIsBasicBlockEnd i = + instrIsTailcall i || + match i with + | I_leave _ | I_br _ | I_brcmp _ | I_switch _ | I_endfinally + | I_endfilter | I_ret | I_throw | I_rethrow -> true + | I_other e -> find_extension "instr" (fun ext -> if ext.internalInstrExtIs e then Some (nonNil (ext.internalInstrExtDests e)) else None) !instrExtensions + | _ -> false + +let checks = false +let _ = if checks then dprintn "Warning - Il.checks is on" + +let rec accEntriesOfCode c acc = + match c with + | ILBasicBlock bb -> CodeLabels.add bb.Label acc + | GroupBlock (_,l) -> List.foldBack accEntriesOfCode l acc + | RestrictBlock (ls,c) -> CodeLabels.union acc (CodeLabels.diff (entriesOfCodeAsSet c) (CodeLabels.ofList ls)) + | TryBlock (l,_r) -> accEntriesOfCode l acc + +and entriesOfCodeAsSet c = + accEntriesOfCode c CodeLabels.empty + +let rec accExitsOfCode c acc = + let basicOutsideLabels = + match c with + | ILBasicBlock bblock -> CodeLabels.addList (destinationsOfBasicBlock bblock) acc + | GroupBlock (_,l) -> List.foldBack accExitsOfCode l acc + | RestrictBlock (ls,c) -> CodeLabels.union acc (CodeLabels.diff (exitsOfCodeAsSet c) (CodeLabels.ofList ls)) + | TryBlock (l,_r) -> accExitsOfCode l acc + CodeLabels.diff basicOutsideLabels (entriesOfCodeAsSet c) + +and exitsOfCodeAsSet c = accExitsOfCode c CodeLabels.empty + +let entriesOfCode c = CodeLabels.toList (entriesOfCodeAsSet c) +let exitsOfCode c = CodeLabels.toList (exitsOfCodeAsSet c) + +/// Finds all labels defined within this code block, seeing through restrictions. +/// This assumes that labels are unique within the code blocks, even if hidden behind restrictions. +/// +// Note: Repeats in the list indicate this invariant is broken. +let rec accLabelsOfCode acc c = + match c with + | ILBasicBlock bb -> bb.Label::acc + | GroupBlock (_,l) -> List.fold accLabelsOfCode acc l + | RestrictBlock (_ls,c) -> accLabelsOfCode acc c + | TryBlock (l,r) -> let acc = accLabelsOfCode acc l + let acc = accLabelsOfSEH acc r + acc +and accLabelsOfSEH acc = function + | FaultBlock code -> accLabelsOfCode acc code + | FinallyBlock code -> accLabelsOfCode acc code + | FilterCatchBlock fcodes -> List.fold accLabelsOfFilterCode acc fcodes + +and accLabelsOfFilterCode acc = function + | TypeFilter _,code -> accLabelsOfCode acc code + | CodeFilter test,code -> let accA = accLabelsOfCode acc code + let accB = accLabelsOfCode accA test + accB + +let labelsOfCode code = accLabelsOfCode [] code + +(* + +From the ECMA spec: + +There are only two ways to enter a try block from outside its lexical body: + - Branching to or falling into the try block’s first instruction. The branch may be made using a 37 +conditional branch, an unconditional branch, or a leave instruction. 38 + - Using a leave instruction from that try’s catch block. In this case, correct CIL code may 39 +branch to any instruction within the try block, not just its first instruction, so long as that 40 +branch target is not protected by yet another try, nested withing the first +*) + + +let checkILCode code = + if checks then + match code with + | RestrictBlock (ls,c') -> + (* + if not (CodeLabels.subset ls (entriesOfCode c')) then begin + dprintn ("* warning: Restricting labels that are not declared in block, e.g. "+ (List.head (CodeLabels.diff ls (entriesOfCode c')))); + dprintn ("* warning: Labels in block are: "+ (String.concat "," (entriesOfCode c'))); + dprintn ("* warning: Labels being restricted are: "+ (String.concat "," ls)); + end; + *) + let cls = (CodeLabels.inter (CodeLabels.ofList ls) (exitsOfCodeAsSet c')) + if (CodeLabels.isNonEmpty cls) then + dprintn ("* warning: restricting unsatisfied exits from a block, e.g. "+ formatCodeLabel (List.head (CodeLabels.toList cls))); + | TryBlock (_l,r) -> + begin match r with + | FaultBlock b | FinallyBlock b -> + if (CodeLabels.isNonEmpty (CodeLabels.inter (exitsOfCodeAsSet b) (entriesOfCodeAsSet b))) then + dprintn "* warning: exits from fault or finally blocks must leave the block"; + let n = List.length (entriesOfCode b) + if not (n = 1) then dprintn "* warning: zero or more than one entry to a fault or finally block"; + | FilterCatchBlock r -> + List.iter + (fun (flt,z) -> + let m = List.length (entriesOfCode z) + if not (m = 1) then dprintn "* warning: zero or more than one entry to a catch block"; + match flt with + | CodeFilter y -> + if (CodeLabels.isNonEmpty (exitsOfCodeAsSet y)) then dprintn "* warning: exits exist from filter block - you must always exit using endfinally"; + let n = List.length (entriesOfCode y) + if not (n = 1) then dprintn "* warning: zero or more than one entry to a filter block"; + | TypeFilter _ty -> ()) + r; + end; + | ILBasicBlock bb -> + if (Array.length bb.Instructions) = 0 then dprintn ("* warning: basic block " + formatCodeLabel bb.Label + " is empty") + elif not (instrIsBasicBlockEnd (bb.Instructions.[Array.length bb.Instructions - 1])) then failwith "* warning: bblock does not end in an appropriate instruction"; + + | _ -> () + match code with + | RestrictBlock (labs,c) when (isNil labs) -> c + | GroupBlock ([],[c]) -> c + | _ -> code + + +let mkBasicBlock bb = ILBasicBlock bb +let mkScopeBlock (a,b) = GroupBlock (a,[checkILCode b]) +let mkGroupBlockFromCode (internals,codes) = RestrictBlock (internals,checkILCode (GroupBlock ([],codes))) +let mkGroupBlock (internals,blocks) = mkGroupBlockFromCode (internals,List.map checkILCode blocks) + +let mkRestrictBlock lab c = RestrictBlock (CodeLabels.toList (CodeLabels.remove lab (entriesOfCodeAsSet c)),c) +let mkTryFinallyBlock (tryblock, enterFinallyLab, finallyBlock) = + TryBlock(checkILCode tryblock, FinallyBlock (checkILCode (mkRestrictBlock enterFinallyLab (checkILCode finallyBlock)))) + +let mkTryFaultBlock (tryblock, entarFaultLab, faultBlock) = + TryBlock(checkILCode tryblock, FaultBlock (checkILCode (mkRestrictBlock entarFaultLab (checkILCode faultBlock)))) + +let mkTryMultiFilterCatchBlock (tryblock, clauses) = + TryBlock + (checkILCode tryblock, + FilterCatchBlock + (clauses |> List.map (fun (flt, (enter_catch_lab, catchblock)) -> + let fltcode = + match flt with + | Choice1Of2 (enter_filter_lab, filterblock) -> + CodeFilter (checkILCode (mkRestrictBlock enter_filter_lab (checkILCode filterblock))) + | Choice2Of2 ty -> + TypeFilter ty + fltcode, + checkILCode (mkRestrictBlock enter_catch_lab (checkILCode catchblock))))) + + +let new_generator () = + let i = ref 0 + fun _n -> + incr i; !i + +// ++GLOBAL MUTABLE STATE +let codeLabelGenerator = (new_generator () : unit -> ILCodeLabel) +let generateCodeLabel x = codeLabelGenerator x + +let uniqueEntryOfCode c = + match entriesOfCode c with + | [] -> failwith ("uniqueEntryOfCode: no entries to code") + | [inlab] -> inlab + | labs -> failwith ("uniqueEntryOfCode: need one entry to code, found: "+String.concat "," (List.map formatCodeLabel labs)) + +let uniqueExitOfCode c = + match exitsOfCode c with + | [] -> failwith ("uniqueExitOfCode: no exits from code") + | [outlab] -> outlab + | labs -> failwith ("uniqueExitOfCode: need one exit from code, found: "+String.concat "," (List.map formatCodeLabel labs)) + +let mkNonBranchingInstrs inplab instrs = + checkILCode (mkBasicBlock {Label=inplab; Instructions= Array.ofList instrs}) + +let mkNonBranchingInstrsThen inplab instrs instr = + if nonNil instrs && instrIsBasicBlockEnd (List.last instrs) then failwith "mkNonBranchingInstrsThen: bblock already terminates with a control flow instruction"; + mkNonBranchingInstrs inplab (instrs @ [ instr ]) + +let mkNonBranchingInstrsThenRet inplab instrs = + mkNonBranchingInstrsThen inplab instrs I_ret + +let mkNonBranchingInstrsThenBr inplab instrs lab = + mkNonBranchingInstrsThen inplab instrs (I_br lab) + +let nonBranchingInstrsToCode instrs = + let inplab = generateCodeLabel () + if nonNil instrs && instrIsBasicBlockEnd (List.last instrs) then + mkNonBranchingInstrs inplab instrs + else + mkNonBranchingInstrsThenRet inplab instrs + +let joinCode code1 code2 = + if not (uniqueExitOfCode code1 = uniqueEntryOfCode code2) then + dprintn "* warning: joinCode: exit of code1 is not entry of code 2"; + checkILCode + (RestrictBlock ([uniqueExitOfCode code1], + (checkILCode (mkGroupBlock ([],[ code1; code2 ]))))) + +// -------------------------------------------------------------------- +// Security declarations (2) +// -------------------------------------------------------------------- + +let emptyILSecurityDecls = SecurityDecls [] +let mkILSecurityDecls l = match l with [] -> emptyILSecurityDecls | _ -> SecurityDecls l +let mkILLazySecurityDecls l = SecurityDeclsLazy l + + +// -------------------------------------------------------------------- +// ILX stuff +// -------------------------------------------------------------------- + +let mkILTyvarTy tv = ILType.TypeVar tv + + +let mkILSimpleTypar nm = + { Name=nm; + Constraints=emptyILTypes; + Variance=NonVariant; + HasReferenceTypeConstraint=false; + HasNotNullableValueTypeConstraint=false; + HasDefaultConstructorConstraint=false; + CustomAttrs = emptyILCustomAttrs } + +let gparam_of_gactual (_ga:ILType) = mkILSimpleTypar "T" + +let mkILFormalTypars (x: ILGenericArgsList) = List.map gparam_of_gactual x +let mkILFormalTyparsRaw (x: ILGenericArgs) = ILList.toList (ILList.map gparam_of_gactual x) + +let mkILFormalGenericArgsRaw (gparams:ILGenericParameterDefs) = + ILList.ofList (List.mapi (fun n _gf -> mkILTyvarTy (uint16 n)) gparams) + +let mkILFormalGenericArgs (gparams:ILGenericParameterDefs) = + List.mapi (fun n _gf -> mkILTyvarTy (uint16 n)) gparams + +let mkILFormalBoxedTy tref gparams = mkILBoxedTy tref (mkILFormalGenericArgs gparams) + +// -------------------------------------------------------------------- +// Operations on class etc. defs. +// -------------------------------------------------------------------- + +let mkRefForNestedILTypeDef scope (enc:ILTypeDef list,td:ILTypeDef) = + mkILNestedTyRef(scope, (enc |> List.map (fun etd -> etd.Name)), td.Name) + +// -------------------------------------------------------------------- +// Operations on type tables. +// -------------------------------------------------------------------- + +let getName (ltd: Lazy) = + let td = Lazy.force ltd + let ns,n = splitILTypeName td.Name + (ns,n,td.CustomAttrs,ltd) + +let addILTypeDefToTable (ns,n,_cas,ltd) tab = + let prev = + (match Map.tryFind ns tab with + | None -> Dictionary<_,_>(1, HashIdentity.Structural) + | Some prev -> prev) + if prev.ContainsKey n then + let msg = sprintf "not unique type %s" (unsplitTypeName (ns,n)); + System.Diagnostics.Debug.Assert(false,msg) + failwith msg + prev.[n] <- ltd; + Map.add ns prev tab + +let addLazyTypeDefToTable ltd larr = lazyMap (fun arr -> Array.ofList (getName ltd :: Array.toList arr)) larr + +let buildTable larr = lazyMap (fun arr -> Array.foldBack addILTypeDefToTable arr Map.empty) larr +let buildTypes larr = TypeDefTable (larr, buildTable larr) + +(* this is not performance critical *) +let addILTypeDef td (TypeDefTable (larr,_ltab)) = buildTypes (addLazyTypeDefToTable (notlazy td) larr) +let mkILTypeDefs l = buildTypes (List.map (notlazy >> getName) l |> Array.ofList |> notlazy ) +let mkILTypeDefsLazy llist = buildTypes (lazyMap Array.ofList llist) +let emptyILTypeDefs = mkILTypeDefs [] + +// -------------------------------------------------------------------- +// Operations on method tables. +// +// REVIEW: this data structure looks substandard +// -------------------------------------------------------------------- + +let addILMethodToTable (y: ILMethodDef) tab = + let key = y.Name + let prev = Map.tryFindMulti key tab + Map.add key (y::prev) tab + +let addILMethod_to_pmap y (mds,tab) = y::mds,addILMethodToTable y tab +let addILMethod y (Methods lpmap) = Methods (lazyMap (addILMethod_to_pmap y) lpmap) + +let mkILMethods l = Methods (notlazy (List.foldBack addILMethod_to_pmap l ([],Map.empty))) +let mkILMethodsLazy l = Methods (lazy (List.foldBack addILMethod_to_pmap (Lazy.force l) ([],Map.empty))) +let emptyILMethods = mkILMethods [] + +let filterILMethodDefs f (Methods lpmap) = + Methods (lazyMap (fun (fs,_) -> + let l = List.filter f fs + (l, List.foldBack addILMethodToTable l Map.empty)) lpmap) + + +// -------------------------------------------------------------------- +// Operations and defaults for modules, assemblies etc. +// -------------------------------------------------------------------- + +let defaultSubSystem = 3 (* this is what comes out of ILDASM on 30/04/2001 *) +let defaultPhysAlignment = 512 (* this is what comes out of ILDASM on 30/04/2001 *) +let defaultVirtAlignment = 0x2000 (* this is what comes out of ILDASM on 30/04/2001 *) +let defaultImageBase = 0x034f0000 (* this is what comes out of ILDASM on 30/04/2001 *) + +// -------------------------------------------------------------------- +// Array types +// -------------------------------------------------------------------- + +let mkILArrTy (ty, shape) = ILType.Array(shape,ty) +let mkILArr1DTy ty = mkILArrTy (ty,ILArrayShape.SingleDimensional) +let isILArrTy ty = match ty with ILType.Array _ -> true| _ -> false +let destILArrTy ty = match ty with ILType.Array(shape,ty) -> (shape,ty) | _ -> failwith "destILArrTy" + +// -------------------------------------------------------------------- +// Sigs of special types built-in +// -------------------------------------------------------------------- + +let tname_Object = "System.Object" +let tname_String = "System.String" +let tname_StringBuilder = "System.Text.StringBuilder" +let tname_AsyncCallback = "System.AsyncCallback" +let tname_IAsyncResult = "System.IAsyncResult" +let tname_IComparable = "System.IComparable" +let tname_Exception = "System.Exception" +let tname_Type = "System.Type" +let tname_Missing = "System.Reflection.Missing" +let tname_Activator = "System.Activator" +let tname_SerializationInfo = "System.Runtime.Serialization.SerializationInfo" +let tname_StreamingContext = "System.Runtime.Serialization.StreamingContext" +let tname_SecurityPermissionAttribute = "System.Security.Permissions.SecurityPermissionAttribute" +let tname_Delegate = "System.Delegate" +let tname_ValueType = "System.ValueType" +let tname_TypedReference = "System.TypedReference" +let tname_Enum = "System.Enum" +let tname_MulticastDelegate = "System.MulticastDelegate" +let tname_Array = "System.Array" + +let tname_Int64 = "System.Int64" +let tname_UInt64 = "System.UInt64" +let tname_Int32 = "System.Int32" +let tname_UInt32 = "System.UInt32" +let tname_Int16 = "System.Int16" +let tname_UInt16 = "System.UInt16" +let tname_SByte = "System.SByte" +let tname_Byte = "System.Byte" +let tname_Single = "System.Single" +let tname_Double = "System.Double" +let tname_Bool = "System.Boolean" +let tname_Char = "System.Char" +let tname_IntPtr = "System.IntPtr" +let tname_UIntPtr = "System.UIntPtr" +let tname_RuntimeArgumentHandle = "System.RuntimeArgumentHandle" +let tname_RuntimeTypeHandle = "System.RuntimeTypeHandle" +let tname_RuntimeMethodHandle = "System.RuntimeMethodHandle" +let tname_RuntimeFieldHandle = "System.RuntimeFieldHandle" + +[] +type ILGlobals = + { mscorlibScopeRef: ILScopeRef; + mscorlibAssemblyName: string; + noDebugData: bool; + generateDebugBrowsableData: bool; + tref_Object: ILTypeRef + ; tspec_Object: ILTypeSpec + ; typ_Object: ILType + ; tref_String: ILTypeRef + ; typ_String: ILType + ; typ_StringBuilder: ILType + ; typ_AsyncCallback: ILType + ; typ_IAsyncResult: ILType + ; typ_IComparable: ILType + ; tref_Type: ILTypeRef + ; typ_Type: ILType + ; typ_Missing: ILType + ; typ_Activator: ILType + ; typ_Delegate: ILType + ; typ_ValueType: ILType + ; typ_Enum: ILType + ; tspec_TypedReference: ILTypeSpec + ; typ_TypedReference: ILType + ; typ_MulticastDelegate: ILType + ; typ_Array: ILType + ; tspec_Int64: ILTypeSpec + ; tspec_UInt64: ILTypeSpec + ; tspec_Int32: ILTypeSpec + ; tspec_UInt32: ILTypeSpec + ; tspec_Int16: ILTypeSpec + ; tspec_UInt16: ILTypeSpec + ; tspec_SByte: ILTypeSpec + ; tspec_Byte: ILTypeSpec + ; tspec_Single: ILTypeSpec + ; tspec_Double: ILTypeSpec + ; tspec_IntPtr: ILTypeSpec + ; tspec_UIntPtr: ILTypeSpec + ; tspec_Char: ILTypeSpec + ; tspec_Bool: ILTypeSpec + ; typ_int8: ILType + ; typ_int16: ILType + ; typ_int32: ILType + ; typ_int64: ILType + ; typ_uint8: ILType + ; typ_uint16: ILType + ; typ_uint32: ILType + ; typ_uint64: ILType + ; typ_float32: ILType + ; typ_float64: ILType + ; typ_bool: ILType + ; typ_char: ILType + ; typ_IntPtr: ILType + ; typ_UIntPtr: ILType + ; typ_RuntimeArgumentHandle: ILType + ; typ_RuntimeTypeHandle: ILType + ; typ_RuntimeMethodHandle: ILType + ; typ_RuntimeFieldHandle: ILType + ; typ_Byte: ILType + ; typ_Int16: ILType + ; typ_Int32: ILType + ; typ_Int64: ILType + ; typ_SByte: ILType + ; typ_UInt16: ILType + ; typ_UInt32: ILType + ; typ_UInt64: ILType + ; typ_Single: ILType + ; typ_Double: ILType + ; typ_Bool: ILType + ; typ_Char: ILType + ; typ_SerializationInfo: ILType + ; typ_StreamingContext: ILType + ; tref_SecurityPermissionAttribute: ILTypeRef + ; tspec_Exception: ILTypeSpec + ; typ_Exception: ILType + ; mutable generatedAttribsCache: ILAttribute list + ; mutable debuggerBrowsableNeverAttributeCache : ILAttribute option + ; mutable debuggerTypeProxyAttributeCache : ILAttribute option } + override x.ToString() = "" + +let mkNormalCall mspec = I_call (Normalcall, mspec, None) +let mkNormalCallvirt mspec = I_callvirt (Normalcall, mspec, None) +let mkNormalCallconstraint (ty,mspec) = I_callconstraint (Normalcall, ty, mspec, None) +let mkNormalNewobj mspec = I_newobj (mspec, None) + +/// Comment on common object cache sizes: +/// mkLdArg - I can’t imagine any IL method we generate needing more than this +/// mkLdLoc - I tried 256, and there were LdLoc allocations left, so I upped it o 512. I didn’t check again. +/// mkStLoc - it should be the same as LdLoc (where there’s a LdLoc there must be a StLoc) +/// mkLdcInt32 - just a guess + +let ldargs = [| for i in 0 .. 128 -> I_ldarg (uint16 i) |] +let mkLdarg i = if 0us < i && i < uint16 ldargs.Length then ldargs.[int i] else I_ldarg i +let mkLdarg0 = mkLdarg 0us + +let ldlocs = [| for i in 0 .. 512 -> I_ldloc (uint16 i) |] +let mkLdloc i = if 0us < i && i < uint16 ldlocs.Length then ldlocs.[int i] else I_ldloc i + +let stlocs = [| for i in 0 .. 512 -> I_stloc (uint16 i) |] +let mkStloc i = if 0us < i && i < uint16 stlocs.Length then stlocs.[int i] else I_stloc i + +let ldi32s = [| for i in 0 .. 256 -> AI_ldc (DT_I4,ILConst.I4 i) |] +let mkLdcInt32 i = if 0 < i && i < ldi32s.Length then ldi32s.[i] else AI_ldc (DT_I4,ILConst.I4 i) + +let tname_CompilerGeneratedAttribute = "System.Runtime.CompilerServices.CompilerGeneratedAttribute" +let tname_DebuggableAttribute = "System.Diagnostics.DebuggableAttribute" + + +let mkILGlobals mscorlibScopeRef mscorlibAssemblyNameOpt (noDebugData,generateDebugBrowsableData) = + let mscorlibAssemblyName = + match mscorlibAssemblyNameOpt with + | Some name -> name + | None -> (match mscorlibScopeRef with + | ILScopeRef.Assembly assref -> assref.Name + | _ -> failwith "mkILGlobals: mscorlib ILScopeRef is not an assembly ref") + let tref_Object = mkILTyRef (mscorlibScopeRef,tname_Object) + let tspec_Object = mkILNonGenericTySpec tref_Object + let typ_Object = mkILBoxedType tspec_Object + + let tref_String = mkILTyRef (mscorlibScopeRef,tname_String) + let tspec_String = mkILNonGenericTySpec tref_String + let typ_String = mkILBoxedType tspec_String + + let tref_StringBuilder = mkILTyRef (mscorlibScopeRef,tname_StringBuilder) + let tspec_StringBuilder = mkILNonGenericTySpec tref_StringBuilder + let typ_StringBuilder = mkILBoxedType tspec_StringBuilder + + let tref_AsyncCallback = mkILTyRef (mscorlibScopeRef,tname_AsyncCallback) + let tspec_AsyncCallback = mkILNonGenericTySpec tref_AsyncCallback + let typ_AsyncCallback = mkILBoxedType tspec_AsyncCallback + + let tref_IAsyncResult = mkILTyRef (mscorlibScopeRef,tname_IAsyncResult) + let tspec_IAsyncResult = mkILNonGenericTySpec tref_IAsyncResult + let typ_IAsyncResult = mkILBoxedType tspec_IAsyncResult + + let tref_IComparable = mkILTyRef (mscorlibScopeRef,tname_IComparable) + let tspec_IComparable = mkILNonGenericTySpec tref_IComparable + let typ_IComparable = mkILBoxedType tspec_IComparable + + let tref_Exception = mkILTyRef (mscorlibScopeRef,tname_Exception) + let tspec_Exception = mkILNonGenericTySpec tref_Exception + let typ_Exception = mkILBoxedType tspec_Exception + + let tref_Type = mkILTyRef(mscorlibScopeRef,tname_Type) + let tspec_Type = mkILNonGenericTySpec tref_Type + let typ_Type = mkILBoxedType tspec_Type + + let tref_Missing = mkILTyRef(mscorlibScopeRef,tname_Missing) + let tspec_Missing = mkILNonGenericTySpec tref_Missing + let typ_Missing = mkILBoxedType tspec_Missing + + + let tref_Activator = mkILTyRef(mscorlibScopeRef,tname_Activator) + let tspec_Activator = mkILNonGenericTySpec tref_Activator + let typ_Activator = mkILBoxedType tspec_Activator + + let tref_SerializationInfo = mkILTyRef(mscorlibScopeRef,tname_SerializationInfo) + let tspec_SerializationInfo = mkILNonGenericTySpec tref_SerializationInfo + let typ_SerializationInfo = mkILBoxedType tspec_SerializationInfo + + let tref_StreamingContext = mkILTyRef(mscorlibScopeRef,tname_StreamingContext) + let tspec_StreamingContext = mkILNonGenericTySpec tref_StreamingContext + let typ_StreamingContext = ILType.Value tspec_StreamingContext + + let tref_SecurityPermissionAttribute = mkILTyRef(mscorlibScopeRef,tname_SecurityPermissionAttribute) + + let tref_Delegate = mkILTyRef(mscorlibScopeRef,tname_Delegate) + let tspec_Delegate = mkILNonGenericTySpec tref_Delegate + let typ_Delegate = mkILBoxedType tspec_Delegate + + let tref_ValueType = mkILTyRef (mscorlibScopeRef,tname_ValueType) + let tspec_ValueType = mkILNonGenericTySpec tref_ValueType + let typ_ValueType = mkILBoxedType tspec_ValueType + + let tref_TypedReference = mkILTyRef (mscorlibScopeRef,tname_TypedReference) + let tspec_TypedReference = mkILNonGenericTySpec tref_TypedReference + let typ_TypedReference = ILType.Value tspec_TypedReference + + let tref_Enum = mkILTyRef (mscorlibScopeRef,tname_Enum) + let tspec_Enum = mkILNonGenericTySpec tref_Enum + let typ_Enum = mkILBoxedType tspec_Enum + + let tref_MulticastDelegate = mkILTyRef (mscorlibScopeRef,tname_MulticastDelegate) + let tspec_MulticastDelegate = mkILNonGenericTySpec tref_MulticastDelegate + let typ_MulticastDelegate = mkILBoxedType tspec_MulticastDelegate + + let typ_Array = mkILBoxedType (mkILNonGenericTySpec (mkILTyRef (mscorlibScopeRef,tname_Array))) + + let tref_Int64 = mkILTyRef (mscorlibScopeRef,tname_Int64) + let tref_UInt64 = mkILTyRef (mscorlibScopeRef,tname_UInt64) + let tref_Int32 = mkILTyRef (mscorlibScopeRef,tname_Int32) + let tref_UInt32 = mkILTyRef (mscorlibScopeRef,tname_UInt32) + let tref_Int16 = mkILTyRef (mscorlibScopeRef,tname_Int16) + let tref_UInt16 = mkILTyRef (mscorlibScopeRef,tname_UInt16) + let tref_SByte = mkILTyRef (mscorlibScopeRef,tname_SByte) + let tref_Byte = mkILTyRef (mscorlibScopeRef,tname_Byte) + let tref_Single = mkILTyRef (mscorlibScopeRef,tname_Single) + let tref_Double = mkILTyRef (mscorlibScopeRef,tname_Double) + let tref_Bool = mkILTyRef (mscorlibScopeRef,tname_Bool) + let tref_Char = mkILTyRef (mscorlibScopeRef,tname_Char) + let tref_IntPtr = mkILTyRef (mscorlibScopeRef,tname_IntPtr) + let tref_UIntPtr = mkILTyRef (mscorlibScopeRef,tname_UIntPtr) + + let tspec_Int64 = mkILNonGenericTySpec tref_Int64 + let tspec_UInt64 = mkILNonGenericTySpec tref_UInt64 + let tspec_Int32 = mkILNonGenericTySpec tref_Int32 + let tspec_UInt32 = mkILNonGenericTySpec tref_UInt32 + let tspec_Int16 = mkILNonGenericTySpec tref_Int16 + let tspec_UInt16 = mkILNonGenericTySpec tref_UInt16 + let tspec_SByte = mkILNonGenericTySpec tref_SByte + let tspec_Byte = mkILNonGenericTySpec tref_Byte + let tspec_Single = mkILNonGenericTySpec tref_Single + let tspec_Double = mkILNonGenericTySpec tref_Double + let tspec_IntPtr = mkILNonGenericTySpec tref_IntPtr + let tspec_UIntPtr = mkILNonGenericTySpec tref_UIntPtr + let tspec_Char = mkILNonGenericTySpec tref_Char + let tspec_Bool = mkILNonGenericTySpec tref_Bool + + let typ_int8 = ILType.Value tspec_SByte + let typ_int16 = ILType.Value tspec_Int16 + let typ_int32 = ILType.Value tspec_Int32 + let typ_int64 = ILType.Value tspec_Int64 + let typ_uint8 = ILType.Value tspec_Byte + let typ_uint16 = ILType.Value tspec_UInt16 + let typ_uint32 = ILType.Value tspec_UInt32 + let typ_uint64 = ILType.Value tspec_UInt64 + let typ_float32 = ILType.Value tspec_Single + let typ_float64 = ILType.Value tspec_Double + let typ_bool = ILType.Value tspec_Bool + let typ_char = ILType.Value tspec_Char + let typ_IntPtr = ILType.Value tspec_IntPtr + let typ_UIntPtr = ILType.Value tspec_UIntPtr + + let typ_SByte = ILType.Value tspec_SByte + let typ_Int16 = ILType.Value tspec_Int16 + let typ_Int32 = ILType.Value tspec_Int32 + let typ_Int64 = ILType.Value tspec_Int64 + let typ_Byte = ILType.Value tspec_Byte + let typ_UInt16 = ILType.Value tspec_UInt16 + let typ_UInt32 = ILType.Value tspec_UInt32 + let typ_UInt64 = ILType.Value tspec_UInt64 + let typ_Single = ILType.Value tspec_Single + let typ_Double = ILType.Value tspec_Double + let typ_Bool = ILType.Value tspec_Bool + let typ_Char = ILType.Value tspec_Char + + let tref_RuntimeArgumentHandle = mkILTyRef (mscorlibScopeRef,tname_RuntimeArgumentHandle) + let tspec_RuntimeArgumentHandle = mkILNonGenericTySpec tref_RuntimeArgumentHandle + let typ_RuntimeArgumentHandle = ILType.Value tspec_RuntimeArgumentHandle + let tref_RuntimeTypeHandle = mkILTyRef (mscorlibScopeRef,tname_RuntimeTypeHandle) + let tspec_RuntimeTypeHandle = mkILNonGenericTySpec tref_RuntimeTypeHandle + let typ_RuntimeTypeHandle = ILType.Value tspec_RuntimeTypeHandle + let tref_RuntimeMethodHandle = mkILTyRef (mscorlibScopeRef,tname_RuntimeMethodHandle) + let tspec_RuntimeMethodHandle = mkILNonGenericTySpec tref_RuntimeMethodHandle + let typ_RuntimeMethodHandle = ILType.Value tspec_RuntimeMethodHandle + let tref_RuntimeFieldHandle = mkILTyRef (mscorlibScopeRef,tname_RuntimeFieldHandle) + let tspec_RuntimeFieldHandle = mkILNonGenericTySpec tref_RuntimeFieldHandle + let typ_RuntimeFieldHandle = ILType.Value tspec_RuntimeFieldHandle + { mscorlibScopeRef =mscorlibScopeRef + ; mscorlibAssemblyName =mscorlibAssemblyName + ; noDebugData =noDebugData + ; generateDebugBrowsableData =generateDebugBrowsableData + ; tref_Object =tref_Object + ; tspec_Object =tspec_Object + ; typ_Object =typ_Object + ; tref_String =tref_String + ; typ_String =typ_String + ; typ_StringBuilder =typ_StringBuilder + ; typ_AsyncCallback =typ_AsyncCallback + ; typ_IAsyncResult =typ_IAsyncResult + ; typ_IComparable =typ_IComparable + ; typ_Activator =typ_Activator + ; tref_Type =tref_Type + ; typ_Type =typ_Type + ; typ_Missing =typ_Missing + ; typ_Delegate =typ_Delegate + ; typ_ValueType =typ_ValueType + ; typ_Enum =typ_Enum + ; tspec_TypedReference =tspec_TypedReference + ; typ_TypedReference =typ_TypedReference + ; typ_MulticastDelegate =typ_MulticastDelegate + ; typ_Array =typ_Array + ; tspec_Int64 =tspec_Int64 + ; tspec_UInt64 =tspec_UInt64 + ; tspec_Int32 =tspec_Int32 + ; tspec_UInt32 =tspec_UInt32 + ; tspec_Int16 =tspec_Int16 + ; tspec_UInt16 =tspec_UInt16 + ; tspec_SByte =tspec_SByte + ; tspec_Byte =tspec_Byte + ; tspec_Single =tspec_Single + ; tspec_Double =tspec_Double + ; tspec_IntPtr =tspec_IntPtr + ; tspec_UIntPtr =tspec_UIntPtr + ; tspec_Char =tspec_Char + ; tspec_Bool =tspec_Bool + ; typ_int8 =typ_int8 + ; typ_int16 =typ_int16 + ; typ_int32 =typ_int32 + ; typ_int64 =typ_int64 + ; typ_uint8 =typ_uint8 + ; typ_uint16 =typ_uint16 + ; typ_uint32 =typ_uint32 + ; typ_uint64 =typ_uint64 + ; typ_float32 =typ_float32 + ; typ_float64 =typ_float64 + ; typ_bool =typ_bool + ; typ_char =typ_char + ; typ_IntPtr =typ_IntPtr + ; typ_UIntPtr =typ_UIntPtr + ; typ_RuntimeArgumentHandle =typ_RuntimeArgumentHandle + ; typ_RuntimeTypeHandle =typ_RuntimeTypeHandle + ; typ_RuntimeMethodHandle =typ_RuntimeMethodHandle + ; typ_RuntimeFieldHandle =typ_RuntimeFieldHandle + + ; typ_Byte =typ_Byte + ; typ_Int16 =typ_Int16 + ; typ_Int32 =typ_Int32 + ; typ_Int64 =typ_Int64 + ; typ_SByte =typ_SByte + ; typ_UInt16 =typ_UInt16 + ; typ_UInt32 =typ_UInt32 + ; typ_UInt64 =typ_UInt64 + ; typ_Single =typ_Single + ; typ_Double =typ_Double + ; typ_Bool =typ_Bool + ; typ_Char =typ_Char + ; typ_SerializationInfo=typ_SerializationInfo + ; typ_StreamingContext=typ_StreamingContext + ; tref_SecurityPermissionAttribute=tref_SecurityPermissionAttribute + ; tspec_Exception =tspec_Exception + ; typ_Exception =typ_Exception + ; generatedAttribsCache = [] + ; debuggerBrowsableNeverAttributeCache = None + ; debuggerTypeProxyAttributeCache = None } + + +(* NOTE: ecma_ prefix refers to the standard "mscorlib" *) +let ecmaPublicKey = PublicKeyToken (Bytes.ofInt32Array [|0xde; 0xad; 0xbe; 0xef; 0xca; 0xfe; 0xfa; 0xce |]) + +let ecmaMscorlibScopeRef = ILScopeRef.Assembly (ILAssemblyRef.Create("mscorlib", None, Some ecmaPublicKey, true, None, None)) + +let ecmaILGlobals = mkILGlobals ecmaMscorlibScopeRef None (false, true) + +let mkInitializeArrayMethSpec ilg = + mkILNonGenericStaticMethSpecInTy(mkILNonGenericBoxedTy(mkILTyRef(ilg.mscorlibScopeRef,"System.Runtime.CompilerServices.RuntimeHelpers")),"InitializeArray", [ilg.typ_Array;ilg.typ_RuntimeFieldHandle], ILType.Void) +(* e.ilg. [mkMscorlibExnNewobj "System.InvalidCastException"] *) +let mkMscorlibExnNewobj ilg eclass = + mkNormalNewobj (mkILNonGenericCtorMethSpec (mkILTyRef(ilg.mscorlibScopeRef,eclass),[])) + +let typ_is_boxed = function ILType.Boxed _ -> true | _ -> false +let typ_is_value = function ILType.Value _ -> true | _ -> false + + +let tspec_is_mscorlib ilg (tspec:ILTypeSpec) n = + let tref = tspec.TypeRef + let scoref = tref.Scope + (tref.Name = n) && + match scoref with + | ILScopeRef.Assembly n -> n.Name = ilg.mscorlibAssemblyName + | ILScopeRef.Module _ -> false + | ILScopeRef.Local -> true + +let typ_is_boxed_mscorlib_typ ilg (ty:ILType) n = + typ_is_boxed ty && tspec_is_mscorlib ilg ty.TypeSpec n + +let typ_is_value_mscorlib_typ ilg (ty:ILType) n = + typ_is_value ty && tspec_is_mscorlib ilg ty.TypeSpec n + +let isILObjectTy ilg ty = typ_is_boxed_mscorlib_typ ilg ty tname_Object +let isILStringTy ilg ty = typ_is_boxed_mscorlib_typ ilg ty tname_String +let typ_is_AsyncCallback ilg ty = typ_is_boxed_mscorlib_typ ilg ty tname_AsyncCallback +let isILTypedReferenceTy ilg ty = typ_is_value_mscorlib_typ ilg ty tname_TypedReference +let typ_is_IAsyncResult ilg ty = typ_is_boxed_mscorlib_typ ilg ty tname_IAsyncResult +let typ_is_IComparable ilg ty = typ_is_boxed_mscorlib_typ ilg ty tname_IComparable +let isILSByteTy ilg ty = typ_is_value_mscorlib_typ ilg ty tname_SByte +let isILByteTy ilg ty = typ_is_value_mscorlib_typ ilg ty tname_Byte +let isILInt16Ty ilg ty = typ_is_value_mscorlib_typ ilg ty tname_Int16 +let isILUInt16Ty ilg ty = typ_is_value_mscorlib_typ ilg ty tname_UInt16 +let isILInt32Ty ilg ty = typ_is_value_mscorlib_typ ilg ty tname_Int32 +let isILUInt32Ty ilg ty = typ_is_value_mscorlib_typ ilg ty tname_UInt32 +let isILInt64Ty ilg ty = typ_is_value_mscorlib_typ ilg ty tname_Int64 +let isILUInt64Ty ilg ty = typ_is_value_mscorlib_typ ilg ty tname_UInt64 +let isILIntPtrTy ilg ty = typ_is_value_mscorlib_typ ilg ty tname_IntPtr +let isILUIntPtrTy ilg ty = typ_is_value_mscorlib_typ ilg ty tname_UIntPtr +let isILBoolTy ilg ty = typ_is_value_mscorlib_typ ilg ty tname_Bool +let isILCharTy ilg ty = typ_is_value_mscorlib_typ ilg ty tname_Char +let isILSingleTy ilg ty = typ_is_value_mscorlib_typ ilg ty tname_Single +let isILDoubleTy ilg ty = typ_is_value_mscorlib_typ ilg ty tname_Double + +// -------------------------------------------------------------------- +// Rescoping +// -------------------------------------------------------------------- + + +let qrescope_scoref scoref scoref_old = + match scoref,scoref_old with + | _,ILScopeRef.Local -> Some scoref + | ILScopeRef.Local,_ -> None + | _,ILScopeRef.Module _ -> Some scoref + | ILScopeRef.Module _,_ -> None + | _ -> None +let qrescope_tref scoref (x:ILTypeRef) = + match qrescope_scoref scoref x.Scope with + | None -> None + | Some s -> Some (ILTypeRef.Create(s,x.Enclosing,x.Name)) + +let rescopeILScopeRef x y = match qrescope_scoref x y with Some x -> x | None -> y +let rescopeILTypeRef x y = match qrescope_tref x y with Some x -> x | None -> y + +// ORIGINAL IMPLEMENTATION (too many allocations +// { tspecTypeRef=rescopeILTypeRef scoref tref; +// tspecInst=rescopeILTypes scoref tinst } +let rec rescopeILTypeSpecQuick scoref (tspec:ILTypeSpec) = + let tref = tspec.TypeRef + let tinst = tspec.GenericArgs + let qtref = qrescope_tref scoref tref + if ILList.isEmpty tinst && isNone qtref then + None (* avoid reallocation in the common case *) + else + match qtref with + | None -> Some (ILTypeSpec.Create (tref, rescopeILTypes scoref tinst)) + | Some tref -> Some (ILTypeSpec.Create (tref, rescopeILTypes scoref tinst)) + +and rescopeILTypeSpec x y = + match rescopeILTypeSpecQuick x y with + | Some x -> x + | None -> y + +and rescopeILType scoref typ = + match typ with + | ILType.Ptr t -> ILType.Ptr (rescopeILType scoref t) + | ILType.FunctionPointer t -> ILType.FunctionPointer (rescopeILCallSig scoref t) + | ILType.Byref t -> ILType.Byref (rescopeILType scoref t) + | ILType.Boxed cr -> + match rescopeILTypeSpecQuick scoref cr with + | Some res -> mkILBoxedType res + | None -> typ // avoid reallocation in the common case + | ILType.Array (s,ty) -> ILType.Array (s,rescopeILType scoref ty) + | ILType.Value cr -> + match rescopeILTypeSpecQuick scoref cr with + | Some res -> ILType.Value res + | None -> typ // avoid reallocation in the common case + | ILType.Modified(b,tref,ty) -> ILType.Modified(b,rescopeILTypeRef scoref tref, rescopeILType scoref ty) + | x -> x + +and rescopeILTypes scoref i = + if ILList.isEmpty i then i + else ILList.map (rescopeILType scoref) i + +and rescopeILCallSig scoref csig = + mkILCallSigRaw (csig.CallingConv,rescopeILTypes scoref csig.ArgTypes,rescopeILType scoref csig.ReturnType) + +let rescopeILMethodRef scoref (x:ILMethodRef) = + { mrefParent = rescopeILTypeRef scoref x.EnclosingTypeRef; + mrefCallconv = x.mrefCallconv; + mrefGenericArity=x.mrefGenericArity; + mrefName=x.mrefName; + mrefArgs = rescopeILTypes scoref x.mrefArgs; + mrefReturn= rescopeILType scoref x.mrefReturn } + +let rescopeILFieldRef scoref x = + { EnclosingTypeRef = rescopeILTypeRef scoref x.EnclosingTypeRef; + Name= x.Name; + Type= rescopeILType scoref x.Type } + +// -------------------------------------------------------------------- +// Instantiate polymorphism in types +// -------------------------------------------------------------------- + +let rec instILTypeSpecAux numFree inst (tspec:ILTypeSpec) = + ILTypeSpec.Create(tspec.TypeRef,instILGenericArgsAux numFree inst tspec.GenericArgs) + +and instILTypeAux numFree (inst:ILGenericArgs) typ = + match typ with + | ILType.Ptr t -> ILType.Ptr (instILTypeAux numFree inst t) + | ILType.FunctionPointer t -> ILType.FunctionPointer (instILCallSigAux numFree inst t) + | ILType.Array (a,t) -> ILType.Array (a,instILTypeAux numFree inst t) + | ILType.Byref t -> ILType.Byref (instILTypeAux numFree inst t) + | ILType.Boxed cr -> mkILBoxedType (instILTypeSpecAux numFree inst cr) + | ILType.Value cr -> ILType.Value (instILTypeSpecAux numFree inst cr) + | ILType.TypeVar v -> + let v = int v + let top = inst.Length + if v < numFree then typ else + if v - numFree >= top then + ILType.TypeVar (uint16 (v - top)) + else + ILList.nth inst (v - numFree) + | x -> x + +and instILGenericArgsAux numFree inst i = ILList.map (instILTypeAux numFree inst) i + +and instILCallSigAux numFree inst csig = + mkILCallSigRaw (csig.CallingConv,ILList.map (instILTypeAux numFree inst) csig.ArgTypes,instILTypeAux numFree inst csig.ReturnType) + +let instILType i t = instILTypeAux 0 i t + +// -------------------------------------------------------------------- +// MS-IL: Parameters, Return types and Locals +// -------------------------------------------------------------------- + +let mkILParam (name,ty) = + { Name=name; + Default=None; + Marshal=None; + IsIn=false; + IsOut=false; + IsOptional=false; + Type=ty; + CustomAttrs=emptyILCustomAttrs } +let mkILParamNamed (s,ty) = mkILParam (Some s,ty) +let mkILParamAnon ty = mkILParam (None,ty) + +let mkILReturn ty : ILReturn = + { Marshal=None; + Type=ty; + CustomAttrs=emptyILCustomAttrs } + +let mkILLocal ty = + { IsPinned=false; + Type=ty; } + +type ILFieldSpec with + member fr.ActualType = + let env = fr.EnclosingType.GenericArgs + instILType env fr.FormalType + +// -------------------------------------------------------------------- +// Make a method mbody +// -------------------------------------------------------------------- + + +let mkILMethodBody (zeroinit,locals,maxstack,code,tag) = + { IsZeroInit=zeroinit; + MaxStack=maxstack; + NoInlining=false; + Locals= locals ; + Code= code; + SourceMarker=tag } + +let mkMethodBody (zeroinit,locals,maxstack,code,tag) = MethodBody.IL (mkILMethodBody (zeroinit,locals,maxstack,code,tag)) + +// -------------------------------------------------------------------- +// Make a constructor +// -------------------------------------------------------------------- + +let mkILVoidReturn = mkILReturn ILType.Void + + +let mkILCtor (access,args,impl) = + { Name=".ctor"; + mdKind=MethodKind.Ctor; + CallingConv=ILCallingConv.Instance; + Parameters=mkILParametersRaw args; + Return= mkILVoidReturn; + Access=access; + mdBody= mkMethBodyAux impl; + mdCodeKind=MethodCodeKind.IL; + IsInternalCall=false; + IsManaged=true; + IsForwardRef=false; + SecurityDecls=emptyILSecurityDecls; + HasSecurity=false; + IsEntryPoint=false; + GenericParams=mkILEmptyGenericParams; + IsReqSecObj=false; + IsHideBySig=false; + IsSpecialName=true; + IsUnmanagedExport=false; + IsSynchronized=false; + IsNoInline=false; + IsMustRun=false; + IsPreserveSig=false; + CustomAttrs = emptyILCustomAttrs; } + +// -------------------------------------------------------------------- +// Do-nothing ctor, just pass on to monomorphic superclass +// -------------------------------------------------------------------- + +let mkCallBaseConstructor (typ,args: ILType list) = + [ mkLdarg0; ] @ + List.mapi (fun i _ -> mkLdarg (uint16 (i+1))) args @ + [ mkNormalCall (mkILCtorMethSpecForTy (typ,[])) ] + +let mkNormalStfld fspec = I_stfld (Aligned,Nonvolatile,fspec) +let mkNormalStsfld fspec = I_stsfld (Nonvolatile,fspec) +let mkNormalLdsfld fspec = I_ldsfld (Nonvolatile,fspec) +let mkNormalLdfld fspec = I_ldfld (Aligned,Nonvolatile,fspec) +let mkNormalLdflda fspec = I_ldflda fspec +let mkNormalLdobj dt = I_ldobj(Aligned,Nonvolatile,dt) +let mkNormalStobj dt = I_stobj(Aligned,Nonvolatile,dt) + +let mkILNonGenericEmptyCtor tag superTy = + let ctor = mkCallBaseConstructor (superTy,[]) + mkILCtor(ILMemberAccess.Public,[],mkMethodBody(false,[],8, nonBranchingInstrsToCode ctor,tag)) + +// -------------------------------------------------------------------- +// Make a static, top level monomophic method - very useful for +// creating helper ILMethodDefs for internal use. +// -------------------------------------------------------------------- +let mkILStaticMethod (genparams,nm,access,args,ret,impl) = + { GenericParams=genparams; + Name=nm; + CallingConv = ILCallingConv.Static; + mdKind=MethodKind.Static; + Parameters= mkILParametersRaw args; + Return= ret; + Access=access; + HasSecurity=false; + SecurityDecls=emptyILSecurityDecls; + IsEntryPoint=false; + CustomAttrs = emptyILCustomAttrs; + mdBody= mkMethBodyAux impl; + mdCodeKind=MethodCodeKind.IL; + IsInternalCall=false; + IsManaged=true; + IsForwardRef=false; + IsReqSecObj=false; + IsHideBySig=false; + IsSpecialName=false; + IsUnmanagedExport=false; + IsSynchronized=false; + IsNoInline=false; + IsMustRun=false; + IsPreserveSig=false; } + +let mkILNonGenericStaticMethod (nm,access,args,ret,impl) = + mkILStaticMethod (mkILEmptyGenericParams,nm,access,args,ret,impl) + +let mkILClassCtor impl = + { Name=".cctor"; + CallingConv=ILCallingConv.Static; + GenericParams=mkILEmptyGenericParams; + mdKind=MethodKind.Cctor; + Parameters=emptyILParameters; + Return=mkILVoidReturn; + Access=ILMemberAccess.Private; + IsEntryPoint=false; + HasSecurity=false; + SecurityDecls=emptyILSecurityDecls; + CustomAttrs = emptyILCustomAttrs; + mdBody= mkMethBodyAux impl; + mdCodeKind=MethodCodeKind.IL; + IsInternalCall=false; + IsManaged=true; + IsForwardRef=false; + IsReqSecObj=false; + IsHideBySig=false; + IsSpecialName=true; + IsUnmanagedExport=false; + IsSynchronized=false; + IsNoInline=false; + IsMustRun=false; + IsPreserveSig=false; } + +// -------------------------------------------------------------------- +// Make a virtual method, where the overriding is simply the default +// (i.e. overrides by name/signature) +// -------------------------------------------------------------------- + +let mk_ospec (typ:ILType,callconv,nm,genparams,formal_args,formal_ret) = + OverridesSpec (mkILMethRef (typ.TypeRef, callconv, nm, genparams, formal_args,formal_ret), typ) + +let mkILGenericVirtualMethod (nm,access,genparams,actual_args,actual_ret,impl) = + { Name=nm; + GenericParams=genparams; + CallingConv=ILCallingConv.Instance; + mdKind= + MethodKind.Virtual + { IsFinal=false; + // REVIEW: We'll need to start setting this eventually + IsNewSlot = false; + IsCheckAccessOnOverride=true; + IsAbstract=(match impl with MethodBody.Abstract -> true | _ -> false) ; }; + Parameters= mkILParametersRaw actual_args; + Return=actual_ret; + Access=access; + IsEntryPoint=false; + HasSecurity=false; + SecurityDecls=emptyILSecurityDecls; + CustomAttrs = emptyILCustomAttrs; + mdBody= mkMethBodyAux impl; + mdCodeKind=MethodCodeKind.IL; + IsInternalCall=false; + IsManaged=true; + IsForwardRef=false; + IsReqSecObj=false; + IsHideBySig=false; + IsSpecialName=false; + IsUnmanagedExport=false; + IsSynchronized=false; + IsNoInline=false; + IsMustRun=false; + IsPreserveSig=false; } + +let mkILNonGenericVirtualMethod (nm,access,args,ret,impl) = + mkILGenericVirtualMethod (nm,access,mkILEmptyGenericParams,args,ret,impl) + +let mkILGenericNonVirtualMethod (nm,access,genparams, actual_args,actual_ret, impl) = + { Name=nm; + GenericParams=genparams; + CallingConv=ILCallingConv.Instance; + mdKind=MethodKind.NonVirtual; + Parameters= mkILParametersRaw actual_args; + Return=actual_ret; + Access=access; + IsEntryPoint=false; + HasSecurity=false; + SecurityDecls=emptyILSecurityDecls; + CustomAttrs = emptyILCustomAttrs; + mdBody= mkMethBodyAux impl; + mdCodeKind=MethodCodeKind.IL; + IsInternalCall=false; + IsManaged=true; + IsForwardRef=false; + IsReqSecObj=false; + IsHideBySig=true; // see Bug343136: missing HideBySig attribute makes it problematic for C# to consume F# method overloads. + IsSpecialName=false; + IsUnmanagedExport=false; + IsSynchronized=false; + IsNoInline=false; + IsMustRun=false; + IsPreserveSig=false; } + +let mkILNonGenericInstanceMethod (nm,access,args,ret,impl) = + mkILGenericNonVirtualMethod (nm,access,mkILEmptyGenericParams,args,ret,impl) + + +// -------------------------------------------------------------------- +// Add some code to the end of the .cctor for a type. Create a .cctor +// if one doesn't exist already. +// -------------------------------------------------------------------- + +let ilmbody_code2code f il = + {il with Code = f il.Code} + +let mdef_code2code f md = + let il = + match md.mdBody.Contents with + | MethodBody.IL il-> il + | _ -> failwith "mdef_code2code - method not IL" + let b = MethodBody.IL (ilmbody_code2code f il) + {md with mdBody= mkMethBodyAux b } + +let prependInstrsToCode c1 c2 = + let internalLab = generateCodeLabel () + joinCode (checkILCode (mkBasicBlock {Label=internalLab; + Instructions=Array.ofList (c1 @ [ I_br (uniqueEntryOfCode c2)])})) c2 + +let prependInstrsToMethod new_code md = + mdef_code2code (prependInstrsToCode new_code) md + +(* Creates cctor if needed *) +let cdef_cctorCode2CodeOrCreate tag f cd = + let mdefs = cd.Methods + let md,mdefs = + match mdefs.FindByName ".cctor" with + | [mdef] -> mdef,filterILMethodDefs (fun md -> md.Name <> ".cctor") mdefs + | [] -> mkILClassCtor (mkMethodBody (false,emptyILLocals,1,nonBranchingInstrsToCode [ ],tag)), mdefs + | _ -> failwith "bad method table: more than one .cctor found" + let md' = f md + {cd with Methods = addILMethod md' mdefs} + + +let code_of_mdef (md:ILMethodDef) = + match md.Code with + | Some x -> x + | None -> failwith "code_of_mdef: not IL" + +let mkRefToILMethod (tref, md: ILMethodDef) = + mkILMethRefRaw (tref, md.CallingConv, md.Name, md.GenericParams.Length, md.ParameterTypes, md.Return.Type) + +let mkRefToILField (tref,fdef:ILFieldDef) = mkILFieldRef (tref, fdef.Name, fdef.Type) + +let mkRefForILMethod scope (tdefs,tdef) mdef = mkRefToILMethod (mkRefForNestedILTypeDef scope (tdefs,tdef), mdef) +let mkRefForILField scope (tdefs,tdef) (fdef:ILFieldDef) = mkILFieldRef (mkRefForNestedILTypeDef scope (tdefs,tdef), fdef.Name, fdef.Type) + + +(* Creates cctor if needed *) +let prependInstrsToClassCtor instrs tag cd = + cdef_cctorCode2CodeOrCreate tag (prependInstrsToMethod instrs) cd + + +let mkILField (isStatic,nm,ty,init,at,access,isLiteral) = + { Name=nm; + Type=ty; + IsStatic = isStatic; + LiteralValue = init; + Data=at; + Offset=None; + IsSpecialName = false; + Marshal=None; + NotSerialized=false; + IsInitOnly = false; + IsLiteral = isLiteral; + Access = access; + CustomAttrs=emptyILCustomAttrs } + +let mkILInstanceField (nm,ty,init,access) = mkILField (false,nm,ty,init,None,access,false) +let mkILStaticField (nm,ty,init,at,access) = mkILField (true,nm,ty,init,at,access,false) +let mkILLiteralField (nm,ty,init,at,access) = mkILField (true, nm, ty, Some init, at, access, true) + +// -------------------------------------------------------------------- +// Scopes for allocating new temporary variables. +// -------------------------------------------------------------------- + +type ILLocalsAllocator(numPrealloc:int) = + let newLocals = ResizeArray() + member tmps.AllocLocal loc = + let locn = uint16(numPrealloc + newLocals.Count) + newLocals.Add loc; + locn + + member tmps.Close() = ResizeArray.toList newLocals + + +let mkILFieldsLazy l = Fields (LazyOrderedMultiMap((fun (f:ILFieldDef) -> f.Name),l)) +let mkILFields l = mkILFieldsLazy (notlazy l) +let emptyILFields = mkILFields [] + +let mkILEventsLazy l = Events (LazyOrderedMultiMap((fun (e: ILEventDef) -> e.Name),l)) +let mkILEvents l = mkILEventsLazy (notlazy l) +let emptyILEvents = mkILEvents [] + +let mkILPropertiesLazy l = Properties (LazyOrderedMultiMap((fun (p: ILPropertyDef) -> p.Name),l) ) +let mkILProperties l = mkILPropertiesLazy (notlazy l) +let emptyILProperties = mkILProperties [] + +let addExportedTypeToTable (y: ILExportedTypeOrForwarder) tab = Map.add y.Name y tab +let mkILExportedTypes l = ILExportedTypesAndForwarders (notlazy (List.foldBack addExportedTypeToTable l Map.empty)) +let mkILExportedTypesLazy (l:Lazy<_>) = ILExportedTypesAndForwarders (lazy (List.foldBack addExportedTypeToTable (l.Force()) Map.empty)) + +let addNestedExportedTypeToTable (y: ILNestedExportedType) tab = + Map.add y.Name y tab + +let mkILNestedExportedTypes l = + ILNestedExportedTypes (notlazy (List.foldBack addNestedExportedTypeToTable l Map.empty)) + +let mkILNestedExportedTypesLazy (l:Lazy<_>) = + ILNestedExportedTypes (lazy (List.foldBack addNestedExportedTypeToTable (l.Force()) Map.empty)) + +let mkILResources l = ILResources (notlazy l) +let mkILResourcesLazy l = ILResources l + +let addMethodImplToTable y tab = + let key = (y.Overrides.MethodRef.Name,y.Overrides.MethodRef.ArgTypes.Length) + let prev = Map.tryFindMulti key tab + Map.add key (y::prev) tab + +let mkILMethodImpls l = MethodImpls (notlazy (List.foldBack addMethodImplToTable l Map.empty)) +let mkILMethodImplsLazy l = MethodImpls (lazy (List.foldBack addMethodImplToTable (Lazy.force l) Map.empty)) +let emptyILMethodImpls = mkILMethodImpls [] + + +// -------------------------------------------------------------------- +// Make a constructor that simply takes its arguments and stuffs +// them in fields. preblock is how to call the superclass constructor.... +// -------------------------------------------------------------------- + +let mkILStorageCtorWithParamNames(tag,preblock,typ,flds,access) = + mkILCtor(access, + flds |> List.map (fun (pnm,_,ty) -> mkILParamNamed (pnm,ty)), + mkMethodBody + (false,emptyILLocals,2, + nonBranchingInstrsToCode + begin + (match tag with Some x -> [I_seqpoint x] | None -> []) @ + preblock @ + List.concat (List.mapi (fun n (_pnm,nm,ty) -> + [ mkLdarg0; + mkLdarg (uint16 (n+1)); + mkNormalStfld (mkILFieldSpecInTy (typ,nm,ty)); + ]) flds) + end,tag)) + +let mkILSimpleStorageCtorWithParamNames(tag,base_tspec,typ,flds,access) = + let preblock = + match base_tspec with + None -> [] + | Some tspec -> + ([ mkLdarg0; + mkNormalCall (mkILCtorMethSpecForTy (mkILBoxedType tspec,[])) ]) + mkILStorageCtorWithParamNames(tag,preblock,typ,flds,access) + +let addParamNames flds = + flds |> List.map (fun (nm,ty) -> (nm,nm,ty)) + +let mkILSimpleStorageCtor(tag,base_tspec,typ,flds,access) = + mkILSimpleStorageCtorWithParamNames(tag,base_tspec,typ, addParamNames flds, access) + +let mkILStorageCtor(tag,preblock,typ,flds,access) = mkILStorageCtorWithParamNames(tag,preblock,typ, addParamNames flds, access) + + +let mkILGenericClass (nm, access, genparams, extends, impl, methods, fields, nestedTypes, props, events, attrs, init) = + { tdKind=ILTypeDefKind.Class; + Name=nm; + GenericParams= genparams; + Access = access; + Implements = mkILTypes impl; + IsAbstract = false; + IsSealed = false; + IsSerializable = false; + IsComInterop=false; + IsSpecialName=false; + Layout=ILTypeDefLayout.Auto; + Encoding=ILDefaultPInvokeEncoding.Ansi; + InitSemantics=init; + Extends = Some extends; + Methods= methods; + Fields= fields; + NestedTypes=nestedTypes; + CustomAttrs=attrs; + MethodImpls=emptyILMethodImpls; + Properties=props; + Events=events; + SecurityDecls=emptyILSecurityDecls; + HasSecurity=false; +} + +let mkRawDataValueTypeDef ilg (nm,size,pack) = + { tdKind=ILTypeDefKind.ValueType; + Name = nm; + GenericParams= []; + Access = ILTypeDefAccess.Private; + Implements = emptyILTypes; + IsAbstract = false; + IsSealed = true; + Extends = Some ilg.typ_ValueType; + IsComInterop=false; + IsSerializable = false; + IsSpecialName=false; + Layout=ILTypeDefLayout.Explicit { Size=Some size; Pack=Some pack }; + Encoding=ILDefaultPInvokeEncoding.Ansi; + InitSemantics=ILTypeInit.BeforeField; + Methods= emptyILMethods; + Fields= emptyILFields; + NestedTypes=emptyILTypeDefs; + CustomAttrs=emptyILCustomAttrs; + MethodImpls=emptyILMethodImpls; + Properties=emptyILProperties; + Events=emptyILEvents; + SecurityDecls=emptyILSecurityDecls; + HasSecurity=false; } + + +let mkILSimpleClass ilg (nm, access, methods, fields, nestedTypes, props, events, attrs, init) = + mkILGenericClass (nm,access, mkILEmptyGenericParams, ilg.typ_Object, [], methods, fields, nestedTypes, props, events, attrs, init) + +let mkILTypeDefForGlobalFunctions ilg (methods,fields) = mkILSimpleClass ilg (typeNameForGlobalFunctions, ILTypeDefAccess.Public, methods, fields, emptyILTypeDefs, emptyILProperties, emptyILEvents, emptyILCustomAttrs,ILTypeInit.BeforeField) + +let destTypeDefsWithGlobalFunctionsFirst ilg (tdefs: ILTypeDefs) = + let l = tdefs.AsList + let top,nontop = l |> List.partition (fun td -> td.Name = typeNameForGlobalFunctions) + let top2 = if isNil top then [mkILTypeDefForGlobalFunctions ilg (emptyILMethods, emptyILFields)] else top + top2@nontop + +let mkILSimpleModule assname modname dll subsystemVersion useHighEntropyVA tdefs hashalg locale flags exportedTypes metadataVersion = + { Manifest= + Some { Name=assname; + AuxModuleHashAlgorithm= match hashalg with | Some(alg) -> alg | _ -> 0x8004; // SHA1 + SecurityDecls=emptyILSecurityDecls; + PublicKey= None; + Version= None; + Locale=locale + CustomAttrs=emptyILCustomAttrs; + AssemblyLongevity=ILAssemblyLongevity.Unspecified; + DisableJitOptimizations= 0 <> (flags &&& 0x4000); + JitTracking=0 <> (flags &&& 0x8000); // always turn these on + Retargetable= 0 <> (flags &&& 0x100); + ExportedTypes=exportedTypes; + EntrypointElsewhere=None + }; + CustomAttrs=emptyILCustomAttrs; + Name=modname; + NativeResources=[]; + TypeDefs=tdefs; + SubsystemVersion = subsystemVersion + UseHighEntropyVA = useHighEntropyVA + SubSystemFlags=defaultSubSystem; + IsDLL=dll; + IsILOnly=true; + Platform=None; + StackReserveSize=None; + Is32Bit=false; + Is32BitPreferred=false; + Is64Bit=false; + PhysicalAlignment=defaultPhysAlignment; + VirtualAlignment=defaultVirtAlignment; + ImageBase=defaultImageBase; + MetadataVersion=metadataVersion; + Resources=mkILResources []; + } + + +//----------------------------------------------------------------------- +// Intermediate parsing structure for exception tables.... +//----------------------------------------------------------------------- + +type ILExceptionClause = + | Finally of (ILCodeLabel * ILCodeLabel) + | Fault of (ILCodeLabel * ILCodeLabel) + | FilterCatch of (ILCodeLabel * ILCodeLabel) * (ILCodeLabel * ILCodeLabel) + | TypeCatch of ILType * (ILCodeLabel * ILCodeLabel) + +type ILExceptionSpec = + { exnRange: (ILCodeLabel * ILCodeLabel); + exnClauses: ILExceptionClause list } + +type exceptions = ILExceptionSpec list + +//----------------------------------------------------------------------- +// [instructions_to_code] makes the basic block structure of code from +// a primitive array of instructions. We +// do this be iterating over the instructions, pushing new basic blocks +// everytime we encounter an address that has been recorded +// [bbstartToCodeLabelMap]. +//----------------------------------------------------------------------- + +type ILLocalSpec = + { locRange: (ILCodeLabel * ILCodeLabel); + locInfos: ILDebugMapping list } + +type structspec = SEH of ILExceptionSpec | LOCAL of ILLocalSpec + +let delayInsertedToWorkaroundKnownNgenBug _s f = + (* Some random code to prevent inlining of this function *) + let mutable res = 10 + for i = 0 to 2 do + res <- res + 1; + //printf "------------------------executing NGEN bug delay '%s', calling 'f' --------------\n" s; + let res = f() + //printf "------------------------exiting NGEN bug delay '%s' --------------\n" s; + res + + +let popRangeM lo hi (m:Zmap<'Key,'U>) = + let collect k v (rvs,m) = (v :: rvs) , Zmap.remove k m + let rvs,m = Zmap.foldSection lo hi collect m ([],m) + List.rev rvs,m + +type BasicBlockStartsToCodeLabelsMap(instrs,tryspecs,localspecs,lab2pc) = + + // Find all the interesting looking labels that form the boundaries of basic blocks. + // These are the destinations of branches and the boundaries of both exceptions and + // those blocks where locals are live. + let bbstartToCodeLabelMap = + let res = ref CodeLabels.empty + let add_range (a,b) = res := CodeLabels.insert a (CodeLabels.insert b !res) + instrs |> Array.iter (fun i -> res := CodeLabels.addList (destinationsOfInstr i) !res); + + tryspecs |> List.iter (fun espec -> + add_range espec.exnRange; + List.iter (function + | Finally r1 | Fault r1 | TypeCatch (_,r1)-> add_range r1 + | FilterCatch (r1,r2) -> add_range r1; add_range r2) espec.exnClauses); + + localspecs |> List.iter (fun l -> add_range l.locRange) ; + + !res + + // Construct a map that gives a unique ILCodeLabel for each label that + // might be a boundary of a basic block. These will be the labels + // for the basic blocks we end up creating. + let lab2clMap = Dictionary<_,_>(10, HashIdentity.Structural) + let pc2clMap = Dictionary<_,_>(10, HashIdentity.Structural) + let addBBstartPc pc pcs cls = + if pc2clMap.ContainsKey pc then + pc2clMap.[pc], pcs, cls + else + let cl = generateCodeLabel () + pc2clMap.[pc] <- cl; + cl, pc::pcs, CodeLabels.insert cl cls + + let bbstartPcs, bbstart_code_labs = + CodeLabels.fold + (fun bbstart_lab (pcs, cls) -> + let pc = lab2pc bbstart_lab + if logging then dprintf "bblock starts with label %s at pc %d\n" (formatCodeLabel bbstart_lab) pc; + let cl,pcs',cls' = addBBstartPc pc pcs cls + lab2clMap.[bbstart_lab] <- cl; + pcs', + cls') + bbstartToCodeLabelMap + ([], CodeLabels.empty) + let cl0,bbstartPcs, bbstart_code_labs = addBBstartPc 0 bbstartPcs bbstart_code_labs + + + member c.InitialCodeLabel = cl0 + member c.BasicBlockStartPositions = bbstartPcs + member c.BasicBlockStartCodeLabels = bbstart_code_labs + + member c.lab2cl bbLab = + try + lab2clMap.[bbLab] + with :? KeyNotFoundException -> failwith ("basic block label "+formatCodeLabel bbLab+" not declared") + + member c.pc2cl pc = + try + pc2clMap.[pc] + with :? KeyNotFoundException -> + failwith ("internal error while mapping pc "+string pc+" to code label") + + member c.remapLabels i = + match i with + | I_leave l -> I_leave(c.lab2cl l) + | I_br l -> I_br (c.lab2cl l) + | I_other e -> I_other (find_extension "instr" (fun ext -> if ext.internalInstrExtIs e then Some (ext.internalInstrExtRelabel c.lab2cl e) else None) !instrExtensions) + | I_brcmp (x,l1,l2) -> I_brcmp(x,c.lab2cl l1, c.lab2cl l2) + | I_switch (ls,l) -> I_switch(List.map c.lab2cl ls, c.lab2cl l) + | _ -> i + +let disjoint_range (start_pc1,end_pc1) (start_pc2,end_pc2) = + ((start_pc1 : int) < start_pc2 && end_pc1 <= start_pc2) || + (start_pc1 >= end_pc2 && end_pc1 > end_pc2) + +let merge_ranges (start_pc1,end_pc1) (start_pc2,end_pc2) = + (min (start_pc1:int) start_pc2, max (end_pc1:int) end_pc2) + +let rangeInsideRange (start_pc1,end_pc1) (start_pc2,end_pc2) = + (start_pc1:int) >= start_pc2 && start_pc1 < end_pc2 && + (end_pc1:int) > start_pc2 && end_pc1 <= end_pc2 + +let lranges_of_clause cl = + match cl with + | Finally r1 -> [r1] + | Fault r1 -> [r1] + | FilterCatch (r1,r2) -> [r1;r2] + | TypeCatch (_ty,r1) -> [r1] + + +type CodeOffsetViewOfLabelledItems(lab2pc) = + member x.labelsToRange p = let (l1,l2) = p in lab2pc l1, lab2pc l2 + + member x.lrange_inside_lrange ls1 ls2 = + rangeInsideRange (x.labelsToRange ls1) (x.labelsToRange ls2) + + member x.disjoint_lranges ls1 ls2 = + disjoint_range (x.labelsToRange ls1) (x.labelsToRange ls2) + + member x.clause_inside_lrange cl lr = + List.forall (fun lr1 -> x.lrange_inside_lrange lr1 lr) (lranges_of_clause cl) + + member x.clauses_inside_lrange cls lr = + List.forall + (fun cl -> x.clause_inside_lrange cl lr) + cls + + member x.tryspec_inside_lrange tryspec1 lr = + (x.lrange_inside_lrange tryspec1.exnRange lr && + x.clauses_inside_lrange tryspec1.exnClauses lr) + + member x.tryspec_inside_clause tryspec1 cl = + List.exists (fun lr -> x.tryspec_inside_lrange tryspec1 lr) (lranges_of_clause cl) + + member x.locspec_inside_clause locspec1 cl = + List.exists (fun lr -> x.lrange_inside_lrange locspec1.locRange lr) (lranges_of_clause cl) + + member x.tryspec_inside_tryspec tryspec1 tryspec2 = + x.tryspec_inside_lrange tryspec1 tryspec2.exnRange || + List.exists (fun c2 -> x.tryspec_inside_clause tryspec1 c2) tryspec2.exnClauses + + member x.locspec_inside_tryspec locspec1 tryspec2 = + x.lrange_inside_lrange locspec1.locRange tryspec2.exnRange || + List.exists (fun c2 -> x.locspec_inside_clause locspec1 c2) tryspec2.exnClauses + + member x.tryspec_inside_locspec tryspec1 locspec2 = + x.tryspec_inside_lrange tryspec1 locspec2.locRange + + member x.disjoint_clause_and_lrange cl lr = + List.forall (fun lr1 -> x.disjoint_lranges lr1 lr) (lranges_of_clause cl) + + member x.disjoint_clauses_and_lrange cls lr = + List.forall (fun cl -> x.disjoint_clause_and_lrange cl lr) cls + + member x.disjoint_tryspec_and_lrange tryspec1 lr = + (x.disjoint_lranges tryspec1.exnRange lr && + x.disjoint_clauses_and_lrange tryspec1.exnClauses lr) + + member x.disjoint_tryspec_and_clause tryspec1 cl = + List.forall (fun lr -> x.disjoint_tryspec_and_lrange tryspec1 lr) (lranges_of_clause cl) + + member x.tryspec_disjoint_from_tryspec tryspec1 tryspec2 = + x.disjoint_tryspec_and_lrange tryspec1 tryspec2.exnRange && + List.forall (fun c2 -> x.disjoint_tryspec_and_clause tryspec1 c2) tryspec2.exnClauses + + member x.tryspec_disjoint_from_locspec tryspec1 locspec2 = + x.disjoint_tryspec_and_lrange tryspec1 locspec2.locRange + + member x.locspec_disjoint_from_locspec locspec1 locspec2 = + x.disjoint_lranges locspec1.locRange locspec2.locRange + + member x.locspec_inside_locspec locspec1 locspec2 = + x.lrange_inside_lrange locspec1.locRange locspec2.locRange + + member x.structspec_inside_structspec specA specB = (* only for sanity checks, then can be removed *) + match specA,specB with + | SEH tryspecA,SEH tryspecB -> x.tryspec_inside_tryspec tryspecA tryspecB + | SEH tryspecA,LOCAL locspecB -> x.tryspec_inside_locspec tryspecA locspecB + | LOCAL locspecA,SEH tryspecB -> x.locspec_inside_tryspec locspecA tryspecB + | LOCAL locspecA,LOCAL locspecB -> x.locspec_inside_locspec locspecA locspecB + + // extent (or size) is the sum of range extents + // We want to build in increasing containment-order, that's a partial order. + // Size-order implies containment-order, and size-order is a total order. + member x.extent_structspec ss = + let extent_range (start_pc,end_pc) = end_pc - start_pc + let extent_lrange lrange = extent_range (x.labelsToRange lrange) + let extent_locspec locspec = extent_lrange locspec.locRange + let extent_list extent_item items = List.fold (fun acc item -> acc + extent_item item) 0 items + let extent_list2 extent_item items = List.fold (fun acc item -> acc + extent_item item) 0 items + let extent_clause cl = extent_list extent_lrange (lranges_of_clause cl) + let extent_tryspec tryspec = extent_lrange tryspec.exnRange + (extent_list2 extent_clause tryspec.exnClauses) + + match ss with + | LOCAL locspec -> extent_locspec locspec + | SEH tryspec -> extent_tryspec tryspec + + (* DIAGNOSTICS: START ------------------------------ *) + member x.string_of_structspec ss = + let stringOfRange (l1,l2) = + let pc1,pc2 = x.labelsToRange ((l1,l2)) + formatCodeLabel l1+"("+string pc1+")-"+ formatCodeLabel l2+"("+string pc2+")" + let string_of_clause cl = String.concat "+" (List.map stringOfRange (lranges_of_clause cl)) + let string_of_tryspec tryspec = "tryspec"+ stringOfRange tryspec.exnRange + "--" + String.concat " / " (List.map string_of_clause tryspec.exnClauses) + let string_of_locspec locspec = "local "+(String.concat ";" (locspec.locInfos |> List.map (fun l -> l.LocalName)))+": "+ stringOfRange locspec.locRange + match ss with + | SEH tryspec -> string_of_tryspec tryspec + | LOCAL locspec -> string_of_locspec locspec + + + +// Stage 2b - Given an innermost tryspec, collect together the +// blocks covered by it. Preserve the essential ordering of blocks. +let blockForInnerTrySpec (codeOffsetView:CodeOffsetViewOfLabelledItems, + coverageOfCodes, + addBlocks, + computeCoveredBlocks, + bbstartToCodeLabelMap:BasicBlockStartsToCodeLabelsMap) tryspec state0 = + + let (blocks, remainingBasicBlockStarts) = state0 + let tryBlocks, otherBlocks = computeCoveredBlocks (codeOffsetView.labelsToRange tryspec.exnRange) blocks + if isNil tryBlocks then (dprintn "try block specification covers no real code"; state0) else + let getClause r otherBlocks = + let clauseBlocks, otherBlocks = computeCoveredBlocks (codeOffsetView.labelsToRange r) otherBlocks + if isNil clauseBlocks then + failwith "clause block specification covers no real code"; + (* The next line computes the code label for the entry to the clause *) + let clauseEntryLabel = bbstartToCodeLabelMap.lab2cl (fst r) + // Now compute the overall clause, with labels still visible. + let clauseBlock = mkGroupBlock ([],List.map snd clauseBlocks) + (* if logging then dprintf "-- clause entry label is %s" clauseEntryLabel; *) + (clauseEntryLabel, clauseBlocks, clauseBlock), otherBlocks + let tryCodeBlocks = List.map snd tryBlocks + let tryEntryLabel = bbstartToCodeLabelMap.lab2cl (fst tryspec.exnRange) + let tryHiddn = CodeLabels.remove tryEntryLabel (List.foldBack (entriesOfCodeAsSet >> CodeLabels.union) tryCodeBlocks CodeLabels.empty) + let tryBlock = mkGroupBlock (CodeLabels.toList tryHiddn,tryCodeBlocks) + + match tryspec.exnClauses with + | Finally _ :: _ :: _ -> failwith "finally clause combined with others" + | [ Finally r ] | [ Fault r ] -> + + let maker = + match tryspec.exnClauses with + [ Finally _ ] -> mkTryFinallyBlock + | [ Fault _ ] -> mkTryFaultBlock + | _ -> failwith "" + + let (clauseEntryLabel, clauseBlocks, clauseBlock), otherBlocks = getClause r otherBlocks + let newBlockRange = coverageOfCodes (tryBlocks@clauseBlocks) + // The next construction joins the blocks together. + // It automatically hides any internal labels used in the + // clause blocks. Only the entry to the clause is kept visible. + // We hide the entries to the try block up above. + let newBlock = maker (tryBlock,clauseEntryLabel,clauseBlock) + // None of the entries to the clause block are visible outside the + // entire try-clause construct, nor the other entries to the try block + // apart from the one at the. top + let newStarts = CodeLabels.diff remainingBasicBlockStarts (CodeLabels.union tryHiddn (entriesOfCodeAsSet clauseBlock)) + // Now return the new block, the remaining blocks and the new set + // of entries. + addBlocks otherBlocks [(newBlockRange, newBlock)], newStarts + + | clauses when clauses |> List.forall (function | FilterCatch _ -> true | TypeCatch _ -> true | _ -> false) -> + + let clause_infos, otherBlocks (*(prior,posterior)*) = + List.fold + (fun (sofar,otherBlocks) cl -> + match cl with + | FilterCatch(r1,r2) -> + let ((lab1,_,bl1) as _info1),otherBlocks = getClause r1 otherBlocks + let info2,otherBlocks = getClause r2 otherBlocks + (sofar@[(Choice1Of2 (lab1,bl1),info2)]), otherBlocks + | TypeCatch(typ,r2) -> + let info2,otherBlocks = getClause r2 otherBlocks + (sofar@[(Choice2Of2 typ,info2)]), otherBlocks + | _ -> failwith "internal error") + ([],otherBlocks) + clauses + let newBlockRange = + // Ignore filter blocks when computing this range + // REVIEW: They must always come before the catch blocks. + coverageOfCodes + (tryBlocks@ + ((List.collect (fun (_,(_,blocks2,_)) -> blocks2) clause_infos))) + + // The next construction joins the blocks together. + // It automatically hides any internal labels used in the + // clause blocks. Only the entry to the clause is kept visible. + let newBlock = + mkTryMultiFilterCatchBlock + (tryBlock, + List.map + (fun (choice,(lab2,_,bl2)) -> choice, (lab2,bl2)) + clause_infos) + // None of the entries to the filter or catch blocks are + // visible outside the entire exception construct. + let newStarts = + CodeLabels.diff remainingBasicBlockStarts + (CodeLabels.union tryHiddn + (List.foldBack + (fun (flt,(_,_,ctch_blck)) acc -> + CodeLabels.union + (match flt with + | Choice1Of2 (_,flt_block) -> entriesOfCodeAsSet flt_block + | Choice2Of2 _ -> CodeLabels.empty) + (CodeLabels.union (entriesOfCodeAsSet ctch_blck) acc)) + clause_infos + CodeLabels.empty)) + // Now return the new block, the remaining blocks and the new set + // of entries. + addBlocks otherBlocks [ (newBlockRange, newBlock)], newStarts + | _ -> failwith "invalid pattern of exception constructs" + + + +let doStructure' (codeOffsetView:CodeOffsetViewOfLabelledItems, + computeCoveredBlocks, + coverageOfCodes, + addBlocks, + bbstartToCodeLabelMap:BasicBlockStartsToCodeLabelsMap) + structspecs + blockState = + + (* Stage 2b - Given an innermost tryspec, collect together the *) + (* blocks covered by it. Preserve the essential ordering of blocks. *) + let blockForInnerLocSpec locspec ((blocks, remainingBasicBlockStarts) as state0) = + let scopeBlocks, otherBlocks (*(prior,posterior)*) = computeCoveredBlocks (codeOffsetView.labelsToRange locspec.locRange) blocks + if isNil scopeBlocks then (dprintn "scope block specification covers no real code"; state0) else + let newBlock = mkScopeBlock (locspec.locInfos,mkGroupBlock ([],List.map snd scopeBlocks)) + let newBlockRange = coverageOfCodes scopeBlocks + addBlocks otherBlocks [ (newBlockRange, newBlock)], remainingBasicBlockStarts + + // Require items by increasing inclusion-order. + // Order by size/extent. + // a) size-ordering implies containment-ordering. + // b) size-ordering is total, so works with List.sort + let buildOrder = Order.orderOn codeOffsetView.extent_structspec int_order + + (* checkOrder: checking is O(n^2) *) +(* + let rec checkOrder = function + | [] -> () + | sA::sBs -> List.iter (fun sB -> + if codeOffsetView.structspec_inside_structspec sB sA && not (codeOffsetView.structspec_inside_structspec sA sB) then ( + dprintf "sA = %s\n" (codeOffsetView.string_of_structspec sA); + dprintf "sB = %s\n" (codeOffsetView.string_of_structspec sB); + assert false + )) sBs; + checkOrder sBs +*) + + let structspecs = List.sortWithOrder buildOrder structspecs + + (* if sanity_check_order then checkOrder structspecs; *) (* note: this check is n^2 *) + let buildBlock blockState = function + | SEH tryspec -> blockForInnerTrySpec (codeOffsetView,coverageOfCodes,addBlocks,computeCoveredBlocks,bbstartToCodeLabelMap) tryspec blockState + | LOCAL locspec -> blockForInnerLocSpec locspec blockState + List.fold buildBlock blockState structspecs + + +// REVIEW: this function shows up on performance traces. If we eliminated the last ILX->IL rewrites from the +// F# compiler we could get rid of this structured code representation from Abstract IL altogether, and +// never convert F# code into this form. +let buildILCode methName lab2pc instrs tryspecs localspecs = + + let bbstartToCodeLabelMap = BasicBlockStartsToCodeLabelsMap(instrs,tryspecs,localspecs,lab2pc) + let codeOffsetView = CodeOffsetViewOfLabelledItems(lab2pc) + + let basicInstructions = Array.map bbstartToCodeLabelMap.remapLabels instrs + + (* DIAGNOSTICS: END -------------------------------- *) + + let buildCodeFromInstructionArray instrs = + + // Consume instructions until we hit the end of the basic block, either + // by hitting a control-flow instruction or by hitting the start of the + // next basic block by fall-through. + let rec consumeBBlockInstrs instrs rinstrs (pc:int) nextBBstartPc = + (* rinstrs = accumulates instructions in reverse order *) + if pc = (Array.length instrs) then + dprintn "* WARNING: basic block at end of method ends without a leave, branch, return or throw. Adding throw\n"; + pc,List.rev (I_throw :: rinstrs) + // The next test is for drop-through at end of bblock, when we just insert + // a branch to the next bblock. + elif (match nextBBstartPc with Some pc' -> pc = pc' | _ -> false) then + if logging then dprintf "-- pushing br, pc = nextBBstartPc = %d\n" pc; + pc,List.rev (I_br (bbstartToCodeLabelMap.pc2cl pc) :: rinstrs) + else + // Otherwise bblocks end with control-flow. + let i = instrs.[pc] + let pc' = pc + 1 + if instrIsBasicBlockEnd i then + if instrIsTailcall i then + if pc' = instrs.Length || (match instrs.[pc'] with I_ret -> false | _ -> true) then + failwithf "a tailcall must be followed by a return, instrs = %A" instrs + elif (match nextBBstartPc with Some pc'' -> pc' = pc'' | _ -> false) then + // In this obscure case, someone branches to the return instruction + // following the tailcall, so we'd better build a basic block + // containing just that return instruction. + pc', List.rev (i :: rinstrs) + else + // Otherwise skip the return instruction, but keep the tailcall. + pc'+1, List.rev (i :: rinstrs) + else + pc', List.rev (i :: rinstrs) + else + // recursive case + consumeBBlockInstrs instrs (i::rinstrs) pc' nextBBstartPc + + (* type block = (int * int) * Code // a local type (alias) would be good, good for intelisense too *) + let rec consumeOneBlock bbstartPc nextBBstartPc currentPc = + if currentPc = (Array.length instrs) then None + elif bbstartPc < currentPc then failwith "internal error: bad basic block structure (missing bblock start marker?)" + elif bbstartPc > currentPc then + (* dprintn ("* ignoring unreachable instruction in method: "^ methName); *) + consumeOneBlock bbstartPc nextBBstartPc (currentPc + 1) + else + let pc', bblockInstrs = consumeBBlockInstrs instrs [] bbstartPc nextBBstartPc + if logging then dprintf "-- making bblock, entry label is %s, length = %d, bbstartPc = %d\n" (formatCodeLabel (bbstartToCodeLabelMap.pc2cl bbstartPc)) (List.length bblockInstrs) bbstartPc; + let bblock = mkBasicBlock {Label= bbstartToCodeLabelMap.pc2cl bbstartPc; Instructions=Array.ofList bblockInstrs} + + let bblockRange = (bbstartPc, pc') + // Return the bblock and the range of instructions that the bblock covered. + // Also return any remaining instructions and the pc' for the first + // such instruction. + Some ((bblockRange, bblock), pc') + + let fetchBasicBlocks bbstartToCodeLabelMap currentPc = + let rec loop bbstartToCodeLabelMap currentPc acc = + match bbstartToCodeLabelMap with + | [] -> + (* if currentPc <> Array.length instrs then + dprintn ("* ignoring instructions at end of method: "+ methName); *) + List.rev acc + | h::t -> + let h2 = match t with [] -> None | h2:: _ -> assert (not (h = h2)); Some h2 + match consumeOneBlock h h2 currentPc with + | None -> List.rev acc + | Some (bblock, currentPc') -> loop t currentPc' (bblock :: acc) + loop bbstartToCodeLabelMap currentPc [] + + let inside range (brange,_) = + if rangeInsideRange brange range then true else + if disjoint_range brange range then false else + failwith "exception block specification overlaps the range of a basic block" + + (* A "blocks" contain blocks, ordered on startPC. + * Recall, a block is (range,code) where range=(pcStart,pcLast+1). *) + let addBlock m (((startPC,_endPC),_code) as block) = + match Zmap.tryFind startPC m with + | None -> Zmap.add startPC [block] m + | Some blocks -> Zmap.add startPC (block :: blocks) m in (* NOTE: may reverse block *) + + let addBlocks m blocks = List.fold addBlock m blocks + + let mkBlocks blocks = + let emptyBlocks = (Zmap.empty int_order : Zmap) + List.fold addBlock emptyBlocks blocks + + let sanityCheck = false (* linear check - REVIEW: set false and elim checks *) + + let computeCoveredBlocks ((start_pc,end_pc) as range) (blocks: Zmap ) = + // It is assumed that scopes never overlap. + // locinfo scopes could overlap if there is a bug elsewhere. + // If overlaps are discovered, an exception is raised. see NOTE#overlap. + let pcCovered,blocks = popRangeM start_pc (end_pc - 1) blocks + let coveredBlocks = pcCovered |> List.concat + // Look for bad input, e.g. overlapping locinfo scopes. + let overlapBlocks = List.filter (inside range >> not) coveredBlocks + if not (isNil overlapBlocks) then notFound(); (* see NOTE#overlap *) + if sanityCheck then ( + let assertIn block = assert (inside range block) + let assertOut block = assert (not (inside range block)) + List.iter assertIn coveredBlocks; + Zmap.iter (fun _ bs -> List.iter assertOut bs) blocks + ); + coveredBlocks,blocks + + let coverageOfCodes blocks = + match blocks with + | [] -> failwith "start_of_codes" + | [(r,_)] -> r + | ((r,_)::t) -> List.foldBack (fun (x,_) acc -> merge_ranges x acc) t r + + delayInsertedToWorkaroundKnownNgenBug "Delay4i3" <| fun () -> + + let doStructure = doStructure' (codeOffsetView, computeCoveredBlocks,coverageOfCodes,addBlocks,bbstartToCodeLabelMap) + + (* Apply stage 1. Compute the blocks not taking exceptions into account. *) + let bblocks = + fetchBasicBlocks (List.sort bbstartToCodeLabelMap.BasicBlockStartPositions) 0 + + let bblocks = mkBlocks bblocks + (* Apply stage 2. Compute the overall morphed blocks. *) + let morphedBlocks,remaining_entries = + let specs1 = List.map (fun x -> SEH x) tryspecs + let specs2 = List.map (fun x -> LOCAL x) localspecs + + try + doStructure (specs1 @ specs2) (bblocks,bbstartToCodeLabelMap.BasicBlockStartCodeLabels) + with :? KeyNotFoundException-> + // NOTE#overlap. + // Here, "Not_found" indicates overlapping scopes were found. + // Maybe the calling code got the locspecs scopes wrong. + // Try recovery by discarding locspec info... + let string_of_tryspec _tryspec = "tryspec" + let stringOfRange (l1,l2) = + let pc1,pc2 = codeOffsetView.labelsToRange ((l1,l2)) + formatCodeLabel l1+"("+string pc1+")-"+ formatCodeLabel l2+"("+string pc2+")" + let string_of_locspec locspec = "local "+(String.concat ";" (locspec.locInfos |> List.map (fun l -> l.LocalName)))+": "+ stringOfRange locspec.locRange + + dprintf "\nERROR: could not find an innermost exception block or local scope, specs = \n%s\nTrying again without locals." + (String.concat "\n" (List.map string_of_tryspec tryspecs @ List.map string_of_locspec localspecs)); + doStructure specs1 (bblocks,bbstartToCodeLabelMap.BasicBlockStartCodeLabels) + + delayInsertedToWorkaroundKnownNgenBug "Delay4k" <| fun () -> + + let morphedBlocks = Zmap.values morphedBlocks |> List.concat in (* NOTE: may mixup order *) + (* Now join up all the remaining blocks into one block with one entry. *) + if logging then dprintn "-- computing entry label"; + if logging then dprintn ("-- entry label is "+formatCodeLabel bbstartToCodeLabelMap.InitialCodeLabel); + mkGroupBlock + (CodeLabels.toList (CodeLabels.remove bbstartToCodeLabelMap.InitialCodeLabel remaining_entries),List.map snd morphedBlocks) + + + try buildCodeFromInstructionArray basicInstructions + with e -> + dprintn ("* error while converting instructions to code for method: " + methName); + reraise() + +// -------------------------------------------------------------------- +// Detecting Delegates +// -------------------------------------------------------------------- + +let mkILDelegateMethods ilg (parms,rtv:ILReturn) = + let rty = rtv.Type + let one nm args ret = + let mdef = mkILNonGenericVirtualMethod (nm,ILMemberAccess.Public,args,mkILReturn ret,MethodBody.Abstract) + {mdef with + mdKind= + match mdef.mdKind with + | MethodKind.Virtual vinfo -> MethodKind.Virtual {vinfo with IsAbstract=false; } + | k -> k + mdCodeKind=MethodCodeKind.Runtime; + IsHideBySig=true; } + let ctor = mkILCtor(ILMemberAccess.Public, [ mkILParamNamed("object",ilg.typ_Object); mkILParamNamed("method",ilg.typ_IntPtr) ], MethodBody.Abstract) + let ctor = { ctor with mdCodeKind=MethodCodeKind.Runtime; IsHideBySig=true } + [ ctor; + one "Invoke" parms rty; + one "BeginInvoke" (parms @ [mkILParamNamed("callback",ilg.typ_AsyncCallback); mkILParamNamed("objects",ilg.typ_Object) ] ) ilg.typ_IAsyncResult; + one "EndInvoke" [mkILParamNamed("result",ilg.typ_IAsyncResult)] rty; ] + + +let mkCtorMethSpecForDelegate ilg (typ:ILType,useUIntPtr) = + let scoref = typ.TypeRef.Scope + mkILInstanceMethSpecInTy (typ,".ctor",[rescopeILType scoref ilg.typ_Object; rescopeILType scoref (if useUIntPtr then ilg.typ_UIntPtr else ilg.typ_IntPtr)],ILType.Void,emptyILGenericArgsList) + +type ILEnumInfo = + { enumValues: (string * ILFieldInit) list; + enumType: ILType } + +let getTyOfILEnumInfo info = info.enumType + +let computeILEnumInfo (mdName,mdFields: ILFieldDefs) = + match (List.partition (fun fd -> fd.IsStatic) mdFields.AsList) with + | staticFields,[vfd] -> + { enumType = vfd.Type; + enumValues = staticFields |> List.map (fun fd -> (fd.Name, match fd.LiteralValue with Some i -> i | None -> failwith ("info_of_enum_tdef: badly formed enum "+mdName+": static field does not have an default value"))) } + | _,[] -> failwith ("info_of_enum_tdef: badly formed enum "+mdName+": no non-static field found") + | _,_ -> failwith ("info_of_enum_tdef: badly formed enum "+mdName+": more than one non-static field found") + + + +//--------------------------------------------------------------------- +// Primitives to help read signatures. These do not use the file cursor, but +// pass around an int index +//--------------------------------------------------------------------- + +let sigptr_get_byte bytes sigptr = + Bytes.get bytes sigptr, sigptr + 1 + +let sigptr_get_bool bytes sigptr = + let b0,sigptr = sigptr_get_byte bytes sigptr + (b0 = 0x01) ,sigptr + +let sigptr_get_u8 bytes sigptr = + let b0,sigptr = sigptr_get_byte bytes sigptr + byte b0,sigptr + +let sigptr_get_i8 bytes sigptr = + let i,sigptr = sigptr_get_u8 bytes sigptr + sbyte i,sigptr + +let sigptr_get_u16 bytes sigptr = + let b0,sigptr = sigptr_get_byte bytes sigptr + let b1,sigptr = sigptr_get_byte bytes sigptr + uint16 (b0 ||| (b1 <<< 8)),sigptr + +let sigptr_get_i16 bytes sigptr = + let u,sigptr = sigptr_get_u16 bytes sigptr + int16 u,sigptr + +let sigptr_get_i32 bytes sigptr = + let b0,sigptr = sigptr_get_byte bytes sigptr + let b1,sigptr = sigptr_get_byte bytes sigptr + let b2,sigptr = sigptr_get_byte bytes sigptr + let b3,sigptr = sigptr_get_byte bytes sigptr + b0 ||| (b1 <<< 8) ||| (b2 <<< 16) ||| (b3 <<< 24),sigptr + +let sigptr_get_u32 bytes sigptr = + let u,sigptr = sigptr_get_i32 bytes sigptr + uint32 u,sigptr + +let sigptr_get_i64 bytes sigptr = + let b0,sigptr = sigptr_get_byte bytes sigptr + let b1,sigptr = sigptr_get_byte bytes sigptr + let b2,sigptr = sigptr_get_byte bytes sigptr + let b3,sigptr = sigptr_get_byte bytes sigptr + let b4,sigptr = sigptr_get_byte bytes sigptr + let b5,sigptr = sigptr_get_byte bytes sigptr + let b6,sigptr = sigptr_get_byte bytes sigptr + let b7,sigptr = sigptr_get_byte bytes sigptr + int64 b0 ||| (int64 b1 <<< 8) ||| (int64 b2 <<< 16) ||| (int64 b3 <<< 24) ||| + (int64 b4 <<< 32) ||| (int64 b5 <<< 40) ||| (int64 b6 <<< 48) ||| (int64 b7 <<< 56), + sigptr + +let sigptr_get_u64 bytes sigptr = + let u,sigptr = sigptr_get_i64 bytes sigptr + uint64 u,sigptr + +let float32_of_bits (x:int32) = System.BitConverter.ToSingle(System.BitConverter.GetBytes(x),0) +let float_of_bits (x:int64) = System.BitConverter.Int64BitsToDouble(x) + +let sigptr_get_ieee32 bytes sigptr = + let u,sigptr = sigptr_get_i32 bytes sigptr + float32_of_bits u,sigptr + +let sigptr_get_ieee64 bytes sigptr = + let u,sigptr = sigptr_get_i64 bytes sigptr + float_of_bits u,sigptr + +let sigptr_get_intarray n (bytes:byte[]) sigptr = + let res = Bytes.zeroCreate n + for i = 0 to n - 1 do + res.[i] <- bytes.[sigptr + i] + res, sigptr + n + +let sigptr_get_string n bytes sigptr = + let intarray,sigptr = sigptr_get_intarray n bytes sigptr + System.Text.Encoding.UTF8.GetString(intarray , 0, intarray.Length), sigptr + +let sigptr_get_z_i32 bytes sigptr = + let b0,sigptr = sigptr_get_byte bytes sigptr + if b0 <= 0x7F then b0, sigptr + elif b0 <= 0xbf then + let b0 = b0 &&& 0x7f + let b1,sigptr = sigptr_get_byte bytes sigptr + (b0 <<< 8) ||| b1, sigptr + else + let b0 = b0 &&& 0x3f + let b1,sigptr = sigptr_get_byte bytes sigptr + let b2,sigptr = sigptr_get_byte bytes sigptr + let b3,sigptr = sigptr_get_byte bytes sigptr + (b0 <<< 24) ||| (b1 <<< 16) ||| (b2 <<< 8) ||| b3, sigptr + +let sigptr_get_serstring bytes sigptr = + let len,sigptr = sigptr_get_z_i32 bytes sigptr + sigptr_get_string ( len) bytes sigptr + +let sigptr_get_serstring_possibly_null bytes sigptr = + let b0,new_sigptr = sigptr_get_byte bytes sigptr + if b0 = 0xFF then // null case + None,new_sigptr + else // throw away new_sigptr, getting length & text advance + let len,sigptr = sigptr_get_z_i32 bytes sigptr + let s, sigptr = sigptr_get_string len bytes sigptr + Some(s),sigptr + +//--------------------------------------------------------------------- +// Get the public key token from the public key. +//--------------------------------------------------------------------- + + +let mkRefToILAssembly (m: ILAssemblyManifest) = + ILAssemblyRef.Create(m.Name, None, (match m.PublicKey with Some k -> Some (PublicKey.KeyAsToken(k)) | None -> None), m.Retargetable, m.Version, m.Locale) + +let z_unsigned_int_size n = + if n <= 0x7F then 1 + elif n <= 0x3FFF then 2 + else 3 + +let z_unsigned_int n = + if n >= 0 && n <= 0x7F then [| byte n |] + elif n >= 0x80 && n <= 0x3FFF then [| byte (0x80 ||| (n >>>& 8)); byte (n &&& 0xFF) |] + else [| byte (0xc0 ||| (n >>>& 24)); + byte ((n >>>& 16) &&& 0xFF); + byte ((n >>>& 8) &&& 0xFF); + byte (n &&& 0xFF) |] + +let string_as_utf8_bytes (s:string) = System.Text.Encoding.UTF8.GetBytes s + +(* Little-endian encoding of int64 *) +let dw7 n = byte ((n >>> 56) &&& 0xFFL) +let dw6 n = byte ((n >>> 48) &&& 0xFFL) +let dw5 n = byte ((n >>> 40) &&& 0xFFL) +let dw4 n = byte ((n >>> 32) &&& 0xFFL) +let dw3 n = byte ((n >>> 24) &&& 0xFFL) +let dw2 n = byte ((n >>> 16) &&& 0xFFL) +let dw1 n = byte ((n >>> 8) &&& 0xFFL) +let dw0 n = byte (n &&& 0xFFL) + +let u8AsBytes (i:byte) = [| i |] +let u16AsBytes x = let n = (int x) in [| byte (b0 n); byte (b1 n) |] +let i32AsBytes i = [| byte (b0 i); byte (b1 i); byte (b2 i); byte (b3 i) |] +let i64AsBytes i = [| dw0 i; dw1 i; dw2 i; dw3 i; dw4 i; dw5 i; dw6 i; dw7 i |] + +let i8AsBytes (i:sbyte) = u8AsBytes (byte i) +let i16AsBytes (i:int16) = u16AsBytes (uint16 i) +let u32AsBytes (i:uint32) = i32AsBytes (int32 i) +let u64AsBytes (i:uint64) = i64AsBytes (int64 i) + +let bits_of_float32 (x:float32) = System.BitConverter.ToInt32(System.BitConverter.GetBytes(x),0) +let bits_of_float (x:float) = System.BitConverter.DoubleToInt64Bits(x) + +let ieee32AsBytes i = i32AsBytes (bits_of_float32 i) +let ieee64AsBytes i = i64AsBytes (bits_of_float i) + +let et_END = 0x00uy +let et_VOID = 0x01uy +let et_BOOLEAN = 0x02uy +let et_CHAR = 0x03uy +let et_I1 = 0x04uy +let et_U1 = 0x05uy +let et_I2 = 0x06uy +let et_U2 = 0x07uy +let et_I4 = 0x08uy +let et_U4 = 0x09uy +let et_I8 = 0x0Auy +let et_U8 = 0x0Buy +let et_R4 = 0x0Cuy +let et_R8 = 0x0Duy +let et_STRING = 0x0Euy +let et_PTR = 0x0Fuy +let et_BYREF = 0x10uy +let et_VALUETYPE = 0x11uy +let et_CLASS = 0x12uy +let et_VAR = 0x13uy +let et_ARRAY = 0x14uy +let et_WITH = 0x15uy +let et_TYPEDBYREF = 0x16uy +let et_I = 0x18uy +let et_U = 0x19uy +let et_FNPTR = 0x1Buy +let et_OBJECT = 0x1Cuy +let et_SZARRAY = 0x1Duy +let et_MVAR = 0x1Euy +let et_CMOD_REQD = 0x1Fuy +let et_CMOD_OPT = 0x20uy + +let formatILVersion ((a,b,c,d):ILVersionInfo) = sprintf "%d.%d.%d.%d" (int a) (int b) (int c) (int d) + +let encodeCustomAttrString s = + let arr = string_as_utf8_bytes s + Array.concat [ z_unsigned_int arr.Length; arr ] + +let rec encodeCustomAttrElemType x = + match x with + | ILType.Value tspec when tspec.Name = "System.SByte" -> [| et_I1 |] + | ILType.Value tspec when tspec.Name = "System.Byte" -> [| et_U1 |] + | ILType.Value tspec when tspec.Name = "System.Int16" -> [| et_I2 |] + | ILType.Value tspec when tspec.Name = "System.UInt16" -> [| et_U2 |] + | ILType.Value tspec when tspec.Name = "System.Int32" -> [| et_I4 |] + | ILType.Value tspec when tspec.Name = "System.UInt32" -> [| et_U4 |] + | ILType.Value tspec when tspec.Name = "System.Int64" -> [| et_I8 |] + | ILType.Value tspec when tspec.Name = "System.UInt64" -> [| et_U8 |] + | ILType.Value tspec when tspec.Name = "System.Double" -> [| et_R8 |] + | ILType.Value tspec when tspec.Name = "System.Single" -> [| et_R4 |] + | ILType.Value tspec when tspec.Name = "System.Char" -> [| et_CHAR |] + | ILType.Value tspec when tspec.Name = "System.Boolean" -> [| et_BOOLEAN |] + | ILType.Boxed tspec when tspec.Name = "System.String" -> [| et_STRING |] + | ILType.Boxed tspec when tspec.Name = "System.Object" -> [| 0x51uy |] + | ILType.Boxed tspec when tspec.Name = "System.Type" -> [| 0x50uy |] + | ILType.Value tspec -> Array.append [| 0x55uy |] (encodeCustomAttrString tspec.TypeRef.QualifiedNameWithNoShortMscorlib) + | ILType.Array (shape, elemType) when shape = ILArrayShape.SingleDimensional -> + Array.append [| et_SZARRAY |] (encodeCustomAttrElemType elemType) + | _ -> failwith "encodeCustomAttrElemType: unrecognized custom element type" + +/// Given a custom attribute element, work out the type of the .NET argument for that element +let rec encodeCustomAttrElemTypeForObject x = + match x with + | ILAttribElem.String _ -> [| et_STRING |] + | ILAttribElem.Bool _ -> [| et_BOOLEAN |] + | ILAttribElem.Char _ -> [| et_CHAR |] + | ILAttribElem.SByte _ -> [| et_I1 |] + | ILAttribElem.Int16 _ -> [| et_I2 |] + | ILAttribElem.Int32 _ -> [| et_I4 |] + | ILAttribElem.Int64 _ -> [| et_I8 |] + | ILAttribElem.Byte _ -> [| et_U1 |] + | ILAttribElem.UInt16 _ -> [| et_U2 |] + | ILAttribElem.UInt32 _ -> [| et_U4 |] + | ILAttribElem.UInt64 _ -> [| et_U8 |] + | ILAttribElem.Type _ -> [| 0x50uy |] + | ILAttribElem.TypeRef _ -> [| 0x50uy |] + | ILAttribElem.Null _ -> [| et_STRING |]// yes, the 0xe prefix is used when passing a "null" to a property or argument of type "object" here + | ILAttribElem.Single _ -> [| et_R4 |] + | ILAttribElem.Double _ -> [| et_R8 |] + | ILAttribElem.Array (elemTy,_) -> [| yield et_SZARRAY; yield! encodeCustomAttrElemType elemTy |] + + +let rec decodeCustomAttrElemType ilg bytes sigptr x = + match x with + | x when x = et_I1 -> ilg.typ_SByte, sigptr + | x when x = et_U1 -> ilg.typ_Byte, sigptr + | x when x = et_I2 -> ilg.typ_Int16, sigptr + | x when x = et_U2 -> ilg.typ_UInt16, sigptr + | x when x = et_I4 -> ilg.typ_Int32, sigptr + | x when x = et_U4 -> ilg.typ_UInt32, sigptr + | x when x = et_I8 -> ilg.typ_Int64, sigptr + | x when x = et_U8 -> ilg.typ_UInt64, sigptr + | x when x = et_R8 -> ilg.typ_Double, sigptr + | x when x = et_R4 -> ilg.typ_Single, sigptr + | x when x = et_CHAR -> ilg.typ_Char, sigptr + | x when x = et_BOOLEAN -> ilg.typ_Bool, sigptr + | x when x = et_STRING -> ilg.typ_String, sigptr + | x when x = et_OBJECT -> ilg.typ_Object, sigptr + | x when x = et_SZARRAY -> + let et,sigptr = sigptr_get_u8 bytes sigptr + let elemTy,sigptr = decodeCustomAttrElemType ilg bytes sigptr et + mkILArr1DTy elemTy, sigptr + | x when x = 0x50uy -> ilg.typ_Type, sigptr + | _ -> failwithf "decodeCustomAttrElemType ilg: unrecognized custom element type: %A" x + + +/// Given a custom attribute element, encode it to a binary representation according to the rules in Ecma 335 Partition II. +let rec encodeCustomAttrPrimValue ilg c = + match c with + | ILAttribElem.Bool b -> [| (if b then 0x01uy else 0x00uy) |] + | ILAttribElem.String None + | ILAttribElem.Type None + | ILAttribElem.TypeRef None + | ILAttribElem.Null -> [| 0xFFuy |] + | ILAttribElem.String (Some s) -> encodeCustomAttrString s + | ILAttribElem.Char x -> u16AsBytes (uint16 x) + | ILAttribElem.SByte x -> i8AsBytes x + | ILAttribElem.Int16 x -> i16AsBytes x + | ILAttribElem.Int32 x -> i32AsBytes x + | ILAttribElem.Int64 x -> i64AsBytes x + | ILAttribElem.Byte x -> u8AsBytes x + | ILAttribElem.UInt16 x -> u16AsBytes x + | ILAttribElem.UInt32 x -> u32AsBytes x + | ILAttribElem.UInt64 x -> u64AsBytes x + | ILAttribElem.Single x -> ieee32AsBytes x + | ILAttribElem.Double x -> ieee64AsBytes x + | ILAttribElem.Type (Some ty) -> encodeCustomAttrString ty.QualifiedNameWithNoShortMscorlib + | ILAttribElem.TypeRef (Some tref) -> encodeCustomAttrString tref.QualifiedNameWithNoShortMscorlib + | ILAttribElem.Array (_,elems) -> + [| yield! i32AsBytes elems.Length; for elem in elems do yield! encodeCustomAttrPrimValue ilg elem |] + +and encodeCustomAttrValue ilg ty c = + match ty, c with + | ILType.Boxed tspec, _ when tspec.Name = "System.Object" -> + [| yield! encodeCustomAttrElemTypeForObject c; yield! encodeCustomAttrPrimValue ilg c |] + | ILType.Array (shape, elemType), ILAttribElem.Array (_,elems) when shape = ILArrayShape.SingleDimensional -> + [| yield! i32AsBytes elems.Length; for elem in elems do yield! encodeCustomAttrValue ilg elemType elem |] + | _ -> + encodeCustomAttrPrimValue ilg c + +let encodeCustomAttrNamedArg ilg (nm, ty, prop, elem) = + [| yield (if prop then 0x54uy else 0x53uy) + yield! encodeCustomAttrElemType ty; + yield! encodeCustomAttrString nm; + yield! encodeCustomAttrValue ilg ty elem |] + +let mkILCustomAttribMethRef (ilg: ILGlobals) (mspec:ILMethodSpec, fixedArgs: list<_>, namedArgs: list<_>) = + let argtys = mspec.MethodRef.ArgTypes + let args = + [| yield! [| 0x01uy; 0x00uy; |] + for (argty,fixedArg) in Seq.zip argtys fixedArgs do + yield! encodeCustomAttrValue ilg argty fixedArg + yield! u16AsBytes (uint16 namedArgs.Length) + for namedArg in namedArgs do + yield! encodeCustomAttrNamedArg ilg namedArg |] + + { Method = mspec; +#if SILVERLIGHT + Arguments = fixedArgs, namedArgs +#endif + Data = args } + +let mkILCustomAttribute ilg (tref,argtys,argvs,propvs) = + mkILCustomAttribMethRef ilg (mkILNonGenericCtorMethSpec (tref,argtys),argvs,propvs) + +(* Q: CompilerGeneratedAttribute is new in 2.0. Unconditional generation of this attribute prevents running on 1.1 Framework. (discovered running on early mono version). *) +let tref_CompilerGeneratedAttribute ilg = mkILTyRef (ilg.mscorlibScopeRef,tname_CompilerGeneratedAttribute) + +let tname_DebuggerNonUserCodeAttribute = "System.Diagnostics.DebuggerNonUserCodeAttribute" +let tname_DebuggableAttribute_DebuggingModes = "DebuggingModes" +let tname_DebuggerHiddenAttribute = "System.Diagnostics.DebuggerHiddenAttribute" +let tname_DebuggerDisplayAttribute = "System.Diagnostics.DebuggerDisplayAttribute" +let tname_DebuggerTypeProxyAttribute = "System.Diagnostics.DebuggerTypeProxyAttribute" +let tname_DebuggerStepThroughAttribute = "System.Diagnostics.DebuggerStepThroughAttribute" +let tname_DebuggerBrowsableAttribute = "System.Diagnostics.DebuggerBrowsableAttribute" +let tname_DebuggerBrowsableState = "System.Diagnostics.DebuggerBrowsableState" + +let tref_DebuggerNonUserCodeAttribute ilg = mkILTyRef (ilg.mscorlibScopeRef,tname_DebuggerNonUserCodeAttribute) +let tref_DebuggerStepThroughAttribute ilg = mkILTyRef (ilg.mscorlibScopeRef,tname_DebuggerStepThroughAttribute) +let tref_DebuggerHiddenAttribute ilg = mkILTyRef (ilg.mscorlibScopeRef,tname_DebuggerHiddenAttribute) +let tref_DebuggerDisplayAttribute ilg = mkILTyRef (ilg.mscorlibScopeRef,tname_DebuggerDisplayAttribute) +let tref_DebuggerTypeProxyAttribute ilg = mkILTyRef (ilg.mscorlibScopeRef,tname_DebuggerTypeProxyAttribute) +let tref_DebuggerBrowsableAttribute ilg = mkILTyRef (ilg.mscorlibScopeRef,tname_DebuggerBrowsableAttribute) +let tref_DebuggableAttribute ilg = mkILTyRef (ilg.mscorlibScopeRef,tname_DebuggableAttribute) +let tref_DebuggableAttribute_DebuggingModes ilg = mkILNestedTyRef (ilg.mscorlibScopeRef,[tname_DebuggableAttribute],tname_DebuggableAttribute_DebuggingModes) + +let typ_DebuggerBrowsableState ilg = + let tref_DebuggerBrowsableState = mkILTyRef(ilg.mscorlibScopeRef,tname_DebuggerBrowsableState) + ILType.Value (mkILNonGenericTySpec tref_DebuggerBrowsableState) + +let mkCompilerGeneratedAttribute ilg = mkILCustomAttribute ilg (tref_CompilerGeneratedAttribute ilg,[],[],[]) +let mkDebuggerNonUserCodeAttribute ilg = mkILCustomAttribute ilg (tref_DebuggerNonUserCodeAttribute ilg,[],[],[]) +let mkDebuggerHiddenAttribute ilg = mkILCustomAttribute ilg (tref_DebuggerHiddenAttribute ilg,[],[],[]) +let mkDebuggerDisplayAttribute ilg s = mkILCustomAttribute ilg (tref_DebuggerDisplayAttribute ilg,[ilg.typ_String],[ILAttribElem.String (Some s)],[]) +let mkDebuggerTypeProxyAttribute ilg (ty:ILType) = + mkILCustomAttribute ilg (tref_DebuggerTypeProxyAttribute ilg,[ilg.typ_Type],[ILAttribElem.TypeRef (Some ty.TypeRef)],[]) +let mkDebuggerBrowsableAttribute ilg n = mkILCustomAttribute ilg (tref_DebuggerBrowsableAttribute ilg,[typ_DebuggerBrowsableState ilg],[ILAttribElem.Int32 n],[]) +let mkDebuggerBrowsableNeverAttribute ilg = + match ilg.debuggerBrowsableNeverAttributeCache with + | None -> + let res = mkDebuggerBrowsableAttribute ilg 0 + ilg.debuggerBrowsableNeverAttributeCache <- Some res + res + | Some res -> res +let mkDebuggerStepThroughAttribute ilg = mkILCustomAttribute ilg (tref_DebuggerStepThroughAttribute ilg,[],[],[]) +let mkDebuggableAttribute ilg (jitTracking, jitOptimizerDisabled) = + mkILCustomAttribute ilg (tref_DebuggableAttribute ilg,[ilg.typ_Bool;ilg.typ_Bool], [ILAttribElem.Bool jitTracking; ILAttribElem.Bool jitOptimizerDisabled],[]) + + +// Bug 2129. Requests attributes to be added to compiler generated methods +let addGeneratedAttrs ilg (attrs: ILAttributes) = + let attribs = + match ilg.generatedAttribsCache with + | [] -> + let res = [ if not ilg.noDebugData then + yield mkCompilerGeneratedAttribute ilg + yield mkDebuggerNonUserCodeAttribute ilg] + ilg.generatedAttribsCache <- res + res + | res -> res + mkILCustomAttrs (attrs.AsList @ attribs) + +let addMethodGeneratedAttrs ilg (mdef:ILMethodDef) = {mdef with CustomAttrs = addGeneratedAttrs ilg mdef.CustomAttrs} +let addPropertyGeneratedAttrs ilg (pdef:ILPropertyDef) = {pdef with CustomAttrs = addGeneratedAttrs ilg pdef.CustomAttrs} +let addFieldGeneratedAttrs ilg (fdef:ILFieldDef) = {fdef with CustomAttrs = addGeneratedAttrs ilg fdef.CustomAttrs} + +let add_never_attrs ilg (attrs: ILAttributes) = + if ilg.generateDebugBrowsableData then mkILCustomAttrs (attrs.AsList @ [mkDebuggerBrowsableNeverAttribute ilg]) + else attrs +let addPropertyNeverAttrs ilg (pdef:ILPropertyDef) = {pdef with CustomAttrs = add_never_attrs ilg pdef.CustomAttrs} +let addFieldNeverAttrs ilg (fdef:ILFieldDef) = {fdef with CustomAttrs = add_never_attrs ilg fdef.CustomAttrs} + + +// PermissionSet is a 'blob' having the following format: +// • A byte containing a period (.). +// • A compressed int32 containing the number of attributes encoded in the blob. +// • An array of attributes each containing the following: +// o A String, which is the fully-qualified type name of the attribute. (Strings are encoded +// as a compressed int to indicate the size followed by an array of UTF8 characters.) +// o A set of properties, encoded as the named arguments to a custom attribute would be (as +// in §23.3, beginning with NumNamed). +let mkPermissionSet (ilg: ILGlobals) (action,attributes: list<(ILTypeRef * (string * ILType * ILAttribElem) list)>) = + let bytes = + [| yield (byte '.'); + yield! z_unsigned_int attributes.Length; + for (tref:ILTypeRef,props) in attributes do + yield! encodeCustomAttrString tref.QualifiedNameWithNoShortMscorlib + let bytes = + [| yield! z_unsigned_int props.Length; + for (nm,typ,value) in props do + yield! encodeCustomAttrNamedArg ilg (nm,typ,true,value)|] + yield! z_unsigned_int bytes.Length; + yield! bytes |] + + PermissionSet(action,bytes) + + +// Parse an IL type signature argument within a custom attribute blob +type ILTypeSigParser(tstring : string) = + + let mutable startPos = 0 + let mutable currentPos = 0 + + let reset() = startPos <- 0 ; currentPos <- 0 + let nil = '\r' // cannot appear in a type sig + + // take a look at the next value, but don't advance + let peek() = if currentPos < (tstring.Length-1) then tstring.[currentPos+1] else nil + let peekN(skip) = if currentPos < (tstring.Length - skip) then tstring.[currentPos+skip] else nil + // take a look at the current value, but don't advance + let here() = if currentPos < tstring.Length then tstring.[currentPos] else nil + // move on to the next character + let step() = currentPos <- currentPos+1 + // ignore the current lexeme + let skip() = startPos <- currentPos + // ignore the current lexeme, advance + let drop() = skip() ; step() ; skip() + // return the current lexeme, advance + let take() = + let s = if currentPos < tstring.Length then tstring.[startPos..currentPos] else "" + drop() + s + + // The format we accept is + // "{`[,+]}{}{}" E.g., + // + // System.Collections.Generic.Dictionary + // `2[ + // [System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089], + // dev.virtualearth.net.webservices.v1.search.CategorySpecificPropertySet], + // mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" + // + // Note that + // • Since we're only reading valid IL, we assume that the signature is properly formed + // • For type parameters, if the type is non-local, it will be wrapped in brackets ([]) + // • Still needs testing with jagged arrays and byref parameters + member private x.ParseType() = + + // Does the type name start with a leading '['? If so, ignore it + // (if the specialization type is in another module, it will be wrapped in bracket) + if here() = '[' then drop() + + // 1. Iterate over beginning of type, grabbing the type name and determining if it's generic or an array + let typeName = + while (peek() <> '`') && (peek() <> '[') && (peek() <> ']') && (peek() <> ',') && (peek() <> nil) do step() + take() + + // 2. Classify the type + + // Is the type generic? + let typeName, specializations = + if here() = '`' then + drop() // step to the number + // fetch the arity + let arity = + while (int(here()) >= (int('0'))) && (int(here()) <= ((int('9')))) && (int(peek()) >= (int('0'))) && (int(peek()) <= ((int('9')))) do step() + System.Int32.Parse(take()) + // skip the '[' + drop() + // get the specializations + typeName+"`"+(arity.ToString()), Some(([for _i in 0..arity-1 do yield x.ParseType()])) + else + typeName, None + + // Is the type an array? + let rank = + if here() = '[' then + let mutable rank = 0 + + while here() <> ']' do + rank <- rank + 1 + step() + drop() + + Some(ILArrayShape(List.repeat rank (Some 0, None))) + else + None + + // Is there a scope? + let scope = + if (here() = ',' || here() = ' ') && (peek() <> '[' && peekN(2) <> '[') then + let grabScopeComponent() = + if here() = ',' then drop() // ditch the ',' + if here() = ' ' then drop() // ditch the ' ' + + while (peek() <> ',' && peek() <> ']' && peek() <> nil) do step() + take() + + let scope = + [ yield grabScopeComponent() // assembly + yield grabScopeComponent() // version + yield grabScopeComponent() // culture + yield grabScopeComponent() // public key token + ] |> String.concat "," + ILScopeRef.Assembly(ILAssemblyRef.FromAssemblyName(System.Reflection.AssemblyName(scope))) + else + ILScopeRef.Local + + // strip any extraneous trailing brackets or commas + if (here() = ']') then drop() + if (here() = ',') then drop() + + // build the IL type + let tref = mkILTyRef(scope, typeName) + let genericArgs = + match specializations with + | None -> emptyILGenericArgs + | Some(genericArgs) -> genericArgs + let tspec = ILTypeSpec.Create(tref,genericArgs) + let ilty = + match tspec.Name with + | "System.SByte" + | "System.Byte" + | "System.Int16" + | "System.UInt16" + | "System.Int32" + | "System.UInt32" + | "System.Int64" + | "System.UInt64" + | "System.Char" + | "System.Double" + | "System.Single" + | "System.Boolean" -> ILType.Value(tspec) + | _ -> ILType.Boxed(tspec) + + // if it's an array, wrap it - otherwise, just return the IL type + match rank with + | Some(r) -> ILType.Array(r,ilty) + | _ -> ilty + + member x.ParseTypeSpec() = + reset() + let ilty = x.ParseType() + ILAttribElem.Type(Some(ilty)) + +let decodeILAttribData ilg (ca: ILAttribute) scope = + let bytes = ca.Data + let sigptr = 0 + let bb0,sigptr = sigptr_get_byte bytes sigptr + let bb1,sigptr = sigptr_get_byte bytes sigptr + if not (bb0 = 0x01 && bb1 = 0x00) then failwith "decodeILAttribData: invalid data"; + + let rec parseVal argty sigptr = + match argty with + | ILType.Value tspec when tspec.Name = "System.SByte" -> + let n,sigptr = sigptr_get_i8 bytes sigptr + ILAttribElem.SByte n, sigptr + | ILType.Value tspec when tspec.Name = "System.Byte" -> + let n,sigptr = sigptr_get_u8 bytes sigptr + ILAttribElem.Byte n, sigptr + | ILType.Value tspec when tspec.Name = "System.Int16" -> + let n,sigptr = sigptr_get_i16 bytes sigptr + ILAttribElem.Int16 n, sigptr + | ILType.Value tspec when tspec.Name = "System.UInt16" -> + let n,sigptr = sigptr_get_u16 bytes sigptr + ILAttribElem.UInt16 n, sigptr + | ILType.Value tspec when tspec.Name = "System.Int32" -> + let n,sigptr = sigptr_get_i32 bytes sigptr + ILAttribElem.Int32 n, sigptr + | ILType.Value tspec when tspec.Name = "System.UInt32" -> + let n,sigptr = sigptr_get_u32 bytes sigptr + ILAttribElem.UInt32 n, sigptr + | ILType.Value tspec when tspec.Name = "System.Int64" -> + let n,sigptr = sigptr_get_i64 bytes sigptr + ILAttribElem.Int64 n, sigptr + | ILType.Value tspec when tspec.Name = "System.UInt64" -> + let n,sigptr = sigptr_get_u64 bytes sigptr + ILAttribElem.UInt64 n, sigptr + | ILType.Value tspec when tspec.Name = "System.Double" -> + let n,sigptr = sigptr_get_ieee64 bytes sigptr + ILAttribElem.Double n, sigptr + | ILType.Value tspec when tspec.Name = "System.Single" -> + let n,sigptr = sigptr_get_ieee32 bytes sigptr + ILAttribElem.Single n, sigptr + | ILType.Value tspec when tspec.Name = "System.Char" -> + let n,sigptr = sigptr_get_u16 bytes sigptr + ILAttribElem.Char (char (int32 n)), sigptr + | ILType.Value tspec when tspec.Name = "System.Boolean" -> + let n,sigptr = sigptr_get_byte bytes sigptr + ILAttribElem.Bool (not (n = 0)), sigptr + | ILType.Boxed tspec when tspec.Name = "System.String" -> + let n,sigptr = sigptr_get_serstring_possibly_null bytes sigptr + ILAttribElem.String n, sigptr + | ILType.Boxed tspec when tspec.Name = "System.Type" -> + let nOpt,sigptr = sigptr_get_serstring_possibly_null bytes sigptr + match nOpt with + | None -> ILAttribElem.TypeRef(None), sigptr + | Some n -> + try + let parser = ILTypeSigParser(n) + parser.ParseTypeSpec(),sigptr + with e -> + failwith (sprintf "decodeILAttribData: error parsing type in custom attribute blob: %s" e.Message) + | ILType.Boxed tspec when tspec.Name = "System.Object" -> + let et,sigptr = sigptr_get_u8 bytes sigptr + if et = 0xFFuy then + ILAttribElem.Null, sigptr + else + let ty,sigptr = decodeCustomAttrElemType ilg bytes sigptr et + parseVal ty sigptr + | ILType.Array(shape,elemTy) when shape = ILArrayShape.SingleDimensional -> + let n,sigptr = sigptr_get_i32 bytes sigptr + let rec parseElems acc n sigptr = + if n = 0 then List.rev acc else + let v,sigptr = parseVal elemTy sigptr + parseElems (v ::acc) (n-1) sigptr + let elems = parseElems [] n sigptr + ILAttribElem.Array(elemTy,elems), sigptr + | ILType.Value _ -> (* assume it is an enumeration *) + let n,sigptr = sigptr_get_i32 bytes sigptr + ILAttribElem.Int32 n, sigptr + | _ -> failwith "decodeILAttribData: attribute data involves an enum or System.Type value" + let rec parseFixed argtys sigptr = + match argtys with + [] -> [],sigptr + | h::t -> + let nh,sigptr = parseVal h sigptr + let nt,sigptr = parseFixed t sigptr + nh ::nt, sigptr + let fixedArgs,sigptr = parseFixed (ILList.toList ca.Method.FormalArgTypes) sigptr + let nnamed,sigptr = sigptr_get_u16 bytes sigptr + let rec parseNamed acc n sigptr = + if n = 0 then List.rev acc else + let isPropByte,sigptr = sigptr_get_u8 bytes sigptr + let isProp = (int isPropByte = 0x54) + let et,sigptr = sigptr_get_u8 bytes sigptr + // We have a named value + let ty,sigptr = + // REVIEW: Post-M3, consider removing the restriction for scope - it's unnecessary + // because you can reconstruct scope using the qualified name from the CA Blob + if (0x50 = (int et) || 0x55 = (int et)) && Option.isSome scope then + let qualified_tname,sigptr = sigptr_get_serstring bytes sigptr + // we're already getting the qualified name from the binary blob + // if we don't split out the unqualified name from the qualified name, + // we'll write the qualified assembly reference string twice to the binary blob + let unqualified_tname = qualified_tname.Split([|','|]).[0] + let scoref = Option.get scope + let tref = mkILTyRef (scoref,unqualified_tname) + let tspec = mkILNonGenericTySpec tref + ILType.Value(tspec),sigptr + else + decodeCustomAttrElemType ilg bytes sigptr et + let nm,sigptr = sigptr_get_serstring bytes sigptr + let v,sigptr = parseVal ty sigptr + parseNamed ((nm,ty,isProp,v) :: acc) (n-1) sigptr + let named = parseNamed [] (int nnamed) sigptr + fixedArgs,named + + +let mkDebuggableAttributeV2 ilg (jitTracking, ignoreSymbolStoreSequencePoints, jitOptimizerDisabled,enableEnC) = + mkILCustomAttribute ilg + (tref_DebuggableAttribute ilg,[mkILNonGenericValueTy (tref_DebuggableAttribute_DebuggingModes ilg)], + [ILAttribElem.Int32( + (* See System.Diagnostics.DebuggableAttribute.DebuggingModes *) + (if jitTracking then 1 else 0) ||| + (if jitOptimizerDisabled then 256 else 0) ||| + (if ignoreSymbolStoreSequencePoints then 2 else 0) ||| + (if enableEnC then 4 else 0))],[]) + +// -------------------------------------------------------------------- +// Functions to collect up all the references in a full module or +// asssembly manifest. The process also allocates +// a unique name to each unique internal assembly reference. +// -------------------------------------------------------------------- + +type ILReferences = + { AssemblyReferences: ILAssemblyRef list; + ModuleReferences: ILModuleRef list; } + +type ILReferencesAccumulator = + { refsA: Hashset; + refsM: Hashset; } + +let emptyILRefs = + { AssemblyReferences=[]; + ModuleReferences = []; } + +(* Now find references. *) +let refs_of_assref s x = Hashset.add s.refsA x +let refs_of_modref s x = Hashset.add s.refsM x + +let refs_of_scoref s x = + match x with + | ILScopeRef.Local -> () + | ILScopeRef.Assembly assref -> refs_of_assref s assref + | ILScopeRef.Module modref -> refs_of_modref s modref + +let refs_of_tref s (x:ILTypeRef) = refs_of_scoref s x.Scope + +let rec refs_of_typ s x = + match x with + | ILType.Void | ILType.TypeVar _ -> () + | ILType.Modified(_,ty1,ty2) -> refs_of_tref s ty1; refs_of_typ s ty2 + | ILType.Array (_,ty) + | ILType.Ptr ty | ILType.Byref ty -> refs_of_typ s ty + | ILType.Value tr | ILType.Boxed tr -> refs_of_tspec s tr + | ILType.FunctionPointer mref -> refs_of_callsig s mref + +and refs_of_inst s i = refs_of_typs s i +and refs_of_tspec s (x:ILTypeSpec) = refs_of_tref s x.TypeRef; refs_of_inst s x.GenericArgs +and refs_of_callsig s csig = refs_of_typs s csig.ArgTypes; refs_of_typ s csig.ReturnType +and refs_of_genparam s x = refs_of_typs s x.Constraints +and refs_of_genparams s b = List.iter (refs_of_genparam s) b + +and refs_of_dloc s ts = refs_of_tref s ts + +and refs_of_mref s (x:ILMethodRef) = + refs_of_dloc s x.EnclosingTypeRef ; + refs_of_typs s x.mrefArgs; + refs_of_typ s x.mrefReturn + +and refs_of_fref s x = refs_of_tref s x.EnclosingTypeRef; refs_of_typ s x.Type +and refs_of_ospec s (OverridesSpec(mref,ty)) = refs_of_mref s mref; refs_of_typ s ty +and refs_of_mspec s (x: ILMethodSpec) = + refs_of_mref s x.MethodRef; + refs_of_typ s x.EnclosingType; + refs_of_inst s x.GenericArgs + +and refs_of_fspec s x = + refs_of_fref s x.FieldRef; + refs_of_typ s x.EnclosingType + +and refs_of_typs s l = ILList.iter (refs_of_typ s) l + +and refs_of_token s x = + match x with + | ILToken.ILType ty -> refs_of_typ s ty + | ILToken.ILMethod mr -> refs_of_mspec s mr + | ILToken.ILField fr -> refs_of_fspec s fr + +and refs_of_custom_attr s x = refs_of_mspec s x.Method + +and refs_of_custom_attrs s (cas : ILAttributes) = List.iter (refs_of_custom_attr s) cas.AsList +and refs_of_varargs s tyso = Option.iter (refs_of_typs s) tyso +and refs_of_instr s x = + match x with + | I_call (_,mr,varargs) | I_newobj (mr,varargs) | I_callvirt (_,mr,varargs) -> + refs_of_mspec s mr; + refs_of_varargs s varargs + | I_callconstraint (_,tr,mr,varargs) -> + refs_of_typ s tr; + refs_of_mspec s mr; + refs_of_varargs s varargs + | I_calli (_,callsig,varargs) -> + refs_of_callsig s callsig; refs_of_varargs s varargs + | I_jmp mr | I_ldftn mr | I_ldvirtftn mr -> + refs_of_mspec s mr + | I_ldsfld (_,fr) | I_ldfld (_,_,fr) | I_ldsflda fr | I_ldflda fr | I_stsfld (_,fr) | I_stfld (_,_,fr) -> + refs_of_fspec s fr + | I_isinst ty | I_castclass ty | I_cpobj ty | I_initobj ty | I_ldobj (_,_,ty) + | I_stobj (_,_,ty) | I_box ty |I_unbox ty | I_unbox_any ty | I_sizeof ty + | I_ldelem_any (_,ty) | I_ldelema (_,_,_,ty) |I_stelem_any (_,ty) | I_newarr (_,ty) + | I_mkrefany ty | I_refanyval ty + | EI_ilzero ty -> refs_of_typ s ty + | I_ldtoken token -> refs_of_token s token + | I_stelem _|I_ldelem _|I_ldstr _|I_switch _|I_stloc _|I_stind _ + | I_starg _|I_ldloca _|I_ldloc _|I_ldind _ + | I_ldarga _|I_ldarg _|I_leave _|I_br _ + | I_brcmp _|I_rethrow|I_refanytype|I_ldlen|I_throw|I_initblk _ |I_cpblk _ + | I_localloc|I_ret |I_endfilter|I_endfinally|I_arglist + | I_other _ | I_break + | AI_add | AI_add_ovf | AI_add_ovf_un | AI_and | AI_div | AI_div_un | AI_ceq | AI_cgt | AI_cgt_un | AI_clt + | AI_clt_un | AI_conv _ | AI_conv_ovf _ | AI_conv_ovf_un _ | AI_mul | AI_mul_ovf | AI_mul_ovf_un | AI_rem | AI_rem_un + | AI_shl | AI_shr | AI_shr_un | AI_sub | AI_sub_ovf | AI_sub_ovf_un | AI_xor | AI_or | AI_neg | AI_not + | AI_ldnull | AI_dup | AI_pop | AI_ckfinite | AI_nop | AI_ldc _ + | I_seqpoint _ | EI_ldlen_multi _ -> () + + +and refs_of_il_block s c = + match c with + | ILBasicBlock bb -> Array.iter (refs_of_instr s) bb.Instructions + | GroupBlock (_,l) -> List.iter (refs_of_il_code s) l + | RestrictBlock (_nms,c) -> refs_of_il_code s c + | TryBlock (l,r) -> + refs_of_il_code s l; + match r with + | FaultBlock flt -> refs_of_il_code s flt + | FinallyBlock flt -> refs_of_il_code s flt + | FilterCatchBlock clauses -> + clauses |> List.iter (fun (flt,ctch) -> + refs_of_il_code s ctch; + match flt with + | CodeFilter fltcode -> refs_of_il_code s fltcode + | TypeFilter ty -> refs_of_typ s ty) + +and refs_of_il_code s c = refs_of_il_block s c + +and refs_of_ilmbody s il = + ILList.iter (refs_of_local s) il.Locals; + refs_of_il_code s il.Code + +and refs_of_local s loc = refs_of_typ s loc.Type + +and refs_of_mbody s x = + match x with + | MethodBody.IL il -> refs_of_ilmbody s il + | MethodBody.PInvoke (attr) -> refs_of_modref s attr.Where + | _ -> () + +and refs_of_mdef s md = + ILList.iter (refs_of_param s) md.Parameters; + refs_of_return s md.Return; + refs_of_mbody s md.mdBody.Contents; + refs_of_custom_attrs s md.CustomAttrs; + refs_of_genparams s md.GenericParams + +and refs_of_param s p = refs_of_typ s p.Type +and refs_of_return s (rt:ILReturn) = refs_of_typ s rt.Type +and refs_of_mdefs s x = Seq.iter (refs_of_mdef s) x + +and refs_of_event_def s (ed: ILEventDef) = + Option.iter (refs_of_typ s) ed.Type ; + refs_of_mref s ed.AddMethod ; + refs_of_mref s ed.RemoveMethod; + Option.iter (refs_of_mref s) ed.FireMethod ; + List.iter (refs_of_mref s) ed.OtherMethods ; + refs_of_custom_attrs s ed.CustomAttrs + +and refs_of_events s (x: ILEventDefs) = List.iter (refs_of_event_def s) x.AsList + +and refs_of_property_def s pd = + Option.iter (refs_of_mref s) pd.SetMethod ; + Option.iter (refs_of_mref s) pd.GetMethod ; + refs_of_typ s pd.Type ; + refs_of_typs s pd.Args ; + refs_of_custom_attrs s pd.CustomAttrs + +and refs_of_properties s (x: ILPropertyDefs) = List.iter (refs_of_property_def s) x.AsList + +and refs_of_fdef s fd = + refs_of_typ s fd.Type; + refs_of_custom_attrs s fd.CustomAttrs + +and refs_of_fields s fields = List.iter (refs_of_fdef s) fields + +and refs_of_method_impls s mimpls = List.iter (refs_of_method_impl s) mimpls + +and refs_of_method_impl s m = + refs_of_ospec s m.Overrides; + refs_of_mspec s m.OverrideBy + +and refs_of_tdef_kind _s _k = () + +and refs_of_tdef s (td : ILTypeDef) = + refs_of_types s td.NestedTypes; + refs_of_genparams s td.GenericParams; + refs_of_typs s td.Implements; + Option.iter (refs_of_typ s) td.Extends; + refs_of_mdefs s td.Methods; + refs_of_fields s td.Fields.AsList; + refs_of_method_impls s td.MethodImpls.AsList; + refs_of_events s td.Events; + refs_of_tdef_kind s td.tdKind; + refs_of_custom_attrs s td.CustomAttrs; + refs_of_properties s td.Properties + +and refs_of_string _s _ = () +and refs_of_types s (types: ILTypeDefs) = Seq.iter (refs_of_tdef s) types + +and refs_of_exported_type s (c: ILExportedTypeOrForwarder) = + refs_of_custom_attrs s c.CustomAttrs + +and refs_of_exported_types s (tab: ILExportedTypesAndForwarders) = List.iter (refs_of_exported_type s) tab.AsList + +and refs_of_resource_where s x = + match x with + | ILResourceLocation.Local _ -> () + | ILResourceLocation.File (mref,_) -> refs_of_modref s mref + | ILResourceLocation.Assembly aref -> refs_of_assref s aref + +and refs_of_resource s x = + refs_of_resource_where s x.Location; + refs_of_custom_attrs s x.CustomAttrs + +and refs_of_resources s (tab: ILResources) = List.iter (refs_of_resource s) tab.AsList + +and refs_of_modul s m = + refs_of_types s m.TypeDefs; + refs_of_resources s m.Resources; + Option.iter (refs_of_manifest s) m.Manifest + +and refs_of_manifest s m = + refs_of_custom_attrs s m.CustomAttrs; + refs_of_exported_types s m.ExportedTypes + +let computeILRefs modul = + let s = + { refsA = Hashset.create 10; + refsM = Hashset.create 5; } + refs_of_modul s modul; + { AssemblyReferences = Hashset.fold (fun x acc -> x::acc) s.refsA []; + ModuleReferences = Hashset.fold (fun x acc -> x::acc) s.refsM [] } + +let tspan = System.TimeSpan(System.DateTime.Now.Ticks - System.DateTime(2000,1,1).Ticks) + +let parseILVersion (vstr : string) = + // matches "v1.2.3.4" or "1.2.3.4". Note, if numbers are missing, returns -1 (not 0). + let mutable vstr = vstr.TrimStart [|'v'|] + // if the version string contains wildcards, replace them + let versionComponents = vstr.Split([|'.'|]) + + // account for wildcards + if versionComponents.Length > 2 then + let defaultBuild = (uint16)tspan.Days % System.UInt16.MaxValue - 1us + let defaultRevision = (uint16)(System.DateTime.Now.TimeOfDay.TotalSeconds / 2.0) % System.UInt16.MaxValue - 1us + if versionComponents.[2] = "*" then + if versionComponents.Length > 3 then + failwith "Invalid version format" + else + // set the build number to the number of days since Jan 1, 2000 + versionComponents.[2] <- defaultBuild.ToString() ; + // Set the revision number to number of seconds today / 2 + vstr <- System.String.Join(".",versionComponents) + "." + defaultRevision.ToString() ; + elif versionComponents.Length > 3 && versionComponents.[3] = "*" then + // Set the revision number to number of seconds today / 2 + versionComponents.[3] <- defaultRevision.ToString() ; + vstr <- System.String.Join(".",versionComponents) ; + + let version = System.Version(vstr) + let zero32 n = if n < 0 then 0us else uint16(n) + // since the minor revision will be -1 if none is specified, we need to truncate to 0 to not break existing code +#if SILVERLIGHT + let minorRevision = if versionComponents.Length < 4 then 0us else uint16(version.Revision) +#else + let minorRevision = if versionComponents.Length < 4 then 0us else uint16(version.MinorRevision) +#endif + (zero32 version.Major, zero32 version.Minor, zero32 version.Build, minorRevision);; + + +let compareILVersions (a1,a2,a3,a4) ((b1,b2,b3,b4) : ILVersionInfo) = + let c = compare a1 b1 + if c <> 0 then c else + let c = compare a2 b2 + if c <> 0 then c else + let c = compare a3 b3 + if c <> 0 then c else + let c = compare a4 b4 + if c <> 0 then c else + 0 + + +let resolveILMethodRef td (mref:ILMethodRef) = + let args = mref.ArgTypes + let nargs = args.Length + let nm = mref.Name + let possibles = td.Methods.FindByNameAndArity (nm,nargs) + if isNil possibles then failwith ("no method named "+nm+" found in type "+td.Name); + match + possibles |> List.filter (fun md -> + mref.CallingConv = md.CallingConv && + // REVIEW: this uses equality on ILType. For CMOD_OPTIONAL this is not going to be correct + (md.Parameters,mref.ArgTypes) ||> ILList.lengthsEqAndForall2 (fun p1 p2 -> p1.Type = p2) && + // REVIEW: this uses equality on ILType. For CMOD_OPTIONAL this is not going to be correct + md.Return.Type = mref.ReturnType) with + | [] -> + failwith ("no method named "+nm+" with appropriate argument types found in type "+td.Name); + | [mdef] -> mdef + | _ -> + failwith ("multiple methods named "+nm+" appear with identical argument types in type "+td.Name) + +let mkRefToILModule m = + ILModuleRef.Create(m.Name, true, None) + + +let ungenericizeTypeName n = + let sym = '`' + if + String.contains n sym && + (* check what comes after the symbol is a number *) + (let m = String.rindex n sym + let res = ref (m < n.Length - 1) + for i = m + 1 to n.Length - 1 do + res := !res && n.[i] >= '0' && n.[i] <= '9'; + !res) + then + let pos = String.rindex n sym + String.sub n 0 pos + else n + +type ILEventRef = + { erA: ILTypeRef; erB: string } + static member Create(a,b) = {erA=a;erB=b} + member x.EnclosingTypeRef = x.erA + member x.Name = x.erB + +type ILPropertyRef = + { prA: ILTypeRef; prB: string } + static member Create (a,b) = {prA=a;prB=b} + member x.EnclosingTypeRef = x.prA + member x.Name = x.prB + + + diff --git a/src/absil/il.fsi b/src/absil/il.fsi new file mode 100644 index 0000000..420bcdb --- /dev/null +++ b/src/absil/il.fsi @@ -0,0 +1,2275 @@ +//---------------------------------------------------------------------------- +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +/// The "unlinked" view of .NET metadata and code. Central to +/// to Abstract IL library +module Microsoft.FSharp.Compiler.AbstractIL.IL + +open Internal.Utilities +open System.Collections.Generic + +/// The type used to store relatively small lists in the Abstract IL data structures, i.e. for ILTypes, ILGenericArgs, ILParameters and ILLocals. +/// See comments in il.fs for why we've isolated this representation and the possible future choices we might use here. +#if ABSIL_USES_ARRAY_FOR_ILLIST +type ILList<'T> = 'T [] +#endif + +#if ABSIL_USES_THREELIST_FOR_ILLIST +type ILList<'T> = ThreeList<'T> +#endif + +//#if ABSIL_USES_LIST_FOR_ILLIST +type ILList<'T> = 'T list +//#endif + + +// ==================================================================== +// .NET binaries can be converted to the data structures below by using +// the functions in the "Ilread" module. +// +// Constituent types are listed in ascending order of complexity, +// all the way up to the type ILModuleDef, representing the read of an IL +// assembly (.dll or .exe), or part of a multi-module assembly. Types are +// often specified via a concrete representation for the type (e.g. a record), +// though some types are abstract. +// +// The second part of the file (after the definition of all the types) +// specifies a large set of utilities for building objects belonging to +// the types. You will only need to become familiar with these if you +// are transforming code or writing a code-generating compiler. +// +// Several other utilities are also defined in this file: +// 1. A code builder for turning linear sequences of instructions +// augmented with exception tables into the more structured +// format used for code. +// +// 2. The "typ_XYZ", "tspec_XYZ" and "mspec_XYZ" values which +// can be used to reference types in the "mscorlib" assembly. +// +// 3. The "rescopeXYZ" functions which can be used to lift a piece of +// metadata from one assembly and transform it to a piece of metadata +// suitable for use from another assembly. The transformation adjusts +// references in the metadata to take into account the assembly +// where the metadata will now be located. +// +// 4. The "instantiateXYZ" utilities to replace type variables +// by types. These are associated with generics. +// +// 5. The "intern_XYZ" tables for reducing the memory used by +// generated constructs. +// +// 6. The "refs_of_XYZ" utilities for finding all the assemblies +// referenced by a module. +// +// 7. A somewhat obscure facility to allow new instructions and types +// to be added to the This is only used by ILX. +// ==================================================================== + +// Guids (Note: consider adjusting these to the System.Guid type) +type Guid = byte[] + +[] +type ILPlatform = + | X86 + | AMD64 + | IA64 + +/// Debug info. Values of type "source" can be attached at sequence +/// points and some other locations. +[] +type ILSourceDocument = + static member Create : language: Guid option * vendor: Guid option * documentType: Guid option * file: string -> ILSourceDocument + member Language: Guid option + member Vendor: Guid option + member DocumentType: Guid option + member File: string + + +[] +type ILSourceMarker = + static member Create : document: ILSourceDocument * line: int * column: int * endLine:int * endColumn: int-> ILSourceMarker + member Document: ILSourceDocument + member Line: int + member Column: int + member EndLine: int + member EndColumn: int + +/// Extensibility: ignore these unless you are generating ILX +/// structures directly. +[] +type IlxExtensionType = + interface System.IComparable + +/// Represents an extension to the algebra of type kinds +type IlxExtensionTypeKind + +/// Represents an extension to the algebra of instructions +type IlxExtensionInstr + +[] +type PublicKey = + | PublicKey of byte[] + | PublicKeyToken of byte[] + member IsKey: bool + member IsKeyToken: bool + member Key: byte[] + member KeyToken: byte[] + +type ILVersionInfo = uint16 * uint16 * uint16 * uint16 + +[] +type ILAssemblyRef = + static member Create : name: string * hash: byte[] option * publicKey: PublicKey option * retargetable: bool * version: ILVersionInfo option * locale: string option -> ILAssemblyRef + static member FromAssemblyName : System.Reflection.AssemblyName -> ILAssemblyRef + member Name: string; + /// The fully qualified name of the assembly reference, e.g. mscorlib, Version=1.0.3705 etc. + member QualifiedName: string; + member Hash: byte[] option; + member PublicKey: PublicKey option; + /// CLI says this indicates if the assembly can be retargeted (at runtime) to be from a different publisher. + member Retargetable: bool; + member Version: ILVersionInfo option; + member Locale: string option + interface System.IComparable + +[] +type ILModuleRef = + static member Create : name: string * hasMetadata: bool * hash: byte[] option -> ILModuleRef + member Name: string + member HasMetadata: bool + member Hash: byte[] option + interface System.IComparable + +// Scope references +// +// Scope references are the bits of metadata attached to type names +// that indicate where a type can be found. CIL has three +// kinds: local, module and assembly references: +// o Local: the type must reside in the same module as the scope reference +// o Module: the type must reside in the indicated module in the same +// assembly as the scope reference +// o Assembly: The type must reside in the indicated assembly. +// These have no implicit context. Assembly references can end up +// binding to the assembly containing the reference, i.e. +// may be self or mutually referential. +// +// Assembly reference may also resolve to type in an +// auxiliary module of an assembly when the assembly +// has an "exported types" (here called "classes elsewhere") table. +// +// We represent these references by values embedded within type +// references. These values are usually "shared" across the data +// structures for a module, i.e. one such value is created for each +// assembly or module reference, and this value is reused within each +// type object. +// +// Note that as with method references the term structure is not +// _linked_, i.e. a "ILScopeRef" is still a _reference_ to a scope, +// not the scope itself. Because the structure is not linked, +// the Abstract IL toolset does not require +// strongly connected inputs: you can manipulate an assembly +// without loading all its dependent assemblies. This is the primary +// difference between Abstract IL and Reflection, and it can be both +// a blessing and a curse depending on the kind of manipulation you +// wish to perform. +// +// Similarly, you can manipulate individual modules within +// an assembly without having the whole assembly loaded. (But note that +// most assemblies are single-module in any case). +// +// [ILScopeRef]'s _cannot_ be compared for equality in the way that +// might be expected, in these sense that two ILScopeRef's may +// resolve to the same assembly/module even though they are not equal. +// +// Aside: People have suggested normalizing all scope references +// so that this would be possible, and early versions of this +// toolkit did this. However, this meant that in order to load +// each module you had to tell the toolkit which assembly it belonged to. +// Furthermore, you had to know the exact resolved details of +// each assembly the module refers to. This is +// effectively like having a "fully-linked" view of the graph +// of assemblies, like that provided in the Ilbind module. This is really problematic for compile-time tools, +// as, for example, the policy for linking at the runtime-machine +// may actually alter the results of linking. If such compile-time +// assumptions are to be made then the tool built on top +// of the toolkit rather than the toolkit itself should +// make them. +// +// Scope references, type references, field references and method references +// can be "bound" to particular assemblies using the functions in "Ilbind". +// This simulates the resolution/binding process performed by a Common Language +// Runtime during execution. Various tests and derived operations +// can then be performed on the results of binding. +[] +[] +type ILScopeRef = + /// A reference to the type in the current module + | Local + /// A reference to a type in a module in the same assembly + | Module of ILModuleRef + /// A reference to a type in another assembly + | Assembly of ILAssemblyRef + member IsLocalRef: bool + member IsModuleRef: bool + member IsAssemblyRef: bool + member ModuleRef: ILModuleRef + member AssemblyRef: ILAssemblyRef + member QualifiedName: string + +// Calling conventions. +// +// For nearly all purposes you simply want to use ILArgConvention.Default combined +// with ILThisConvention.Instance or ILThisConvention.Static, i.e. +// ILCallingConv.Instance == Callconv(ILThisConvention.Instance, ILArgConvention.Default): for an instance method +// ILCallingConv.Static == Callconv(ILThisConvention.Static, ILArgConvention.Default): for a static method +// +// ILThisConvention.InstanceExplicit is only used by Managed C++, and indicates +// that the 'this' pointer is actually explicit in the signature. +[] +type ILArgConvention = + | Default + | CDecl + | StdCall + | ThisCall + | FastCall + | VarArg + +[] +type ILThisConvention = + /// accepts an implicit 'this' pointer + | Instance + /// accepts an explicit 'this' pointer + | InstanceExplicit + /// no 'this' pointer is passed + | Static + +[] +type ILCallingConv = + | Callconv of ILThisConvention * ILArgConvention + member IsInstance : bool + member IsInstanceExplicit : bool + member IsStatic : bool + member ThisConv : ILThisConvention + member BasicConv : ILArgConvention + static member Instance : ILCallingConv + static member Static : ILCallingConv + +/// Array shapes. For most purposes, including verification, the +/// rank is the only thing that matters. + +type ILArrayBound = int32 option +type ILArrayBounds = ILArrayBound * ILArrayBound + +[] +type ILArrayShape = + | ILArrayShape of ILArrayBounds list (* lobound/size pairs *) + member Rank : int + /// Bounds for a single dimensional, zero based array + static member SingleDimensional: ILArrayShape + static member FromRank : int -> ILArrayShape + +[] +type ILBoxity = + | AsObject + | AsValue + +type ILGenericVariance = + | NonVariant + | CoVariant + | ContraVariant + +/// Type refs, i.e. references to types in some .NET assembly +[] +type ILTypeRef = + /// Create a ILTypeRef + static member Create : scope: ILScopeRef * enclosing: string list * name: string -> ILTypeRef + + /// Where is the type, i.e. is it in this module, in another module in this assembly or in another assembly? + member Scope: ILScopeRef + /// The list of enclosing type names for a nested type. If non-nil then the first of these also contains the namespace. + member Enclosing: string list + /// The name of the type. This also contains the namespace if Enclosing is empty + member Name: string + /// The name of the type in the assembly using the '.' notation for nested types + member FullName: string + /// The name of the type in the assembly using the '+' notation for nested types + member BasicQualifiedName : string + member QualifiedName: string +#if EXTENSIONTYPING + member QualifiedNameWithNoShortMscorlib: string +#endif + interface System.IComparable + +/// Type specs and types. +/// +/// These are the types that appear syntactically in .NET binaries. +/// +/// Generic type definitions must be combined with +/// an instantiation to form a type. Throughout this file, +/// a "ref" refers to something that is uninstantiated, and +/// a "spec" to a ref that is combined with the relevant instantiations. + +[] +type ILTypeSpec = + static member Create : typeRef:ILTypeRef * instantiation:ILGenericArgs -> ILTypeSpec + + /// Which type is being referred to? + member TypeRef: ILTypeRef + /// The type instantiation if the type is generic, otherwise empty + member GenericArgs: ILGenericArgs + member Scope: ILScopeRef + member Enclosing: string list + member Name: string + member FullName: string + interface System.IComparable + +and + [] + ILType = + /// Used only in return and pointer types. + | Void + /// Array types + | Array of ILArrayShape * ILType + /// Unboxed types, including builtin types. + | Value of ILTypeSpec + /// Reference types. Also may be used for parents of members even if for members in value types. + | Boxed of ILTypeSpec + /// Unmanaged pointers. Nb. the type is used by tools and for binding only, not by the verifier. + | Ptr of ILType + /// Managed pointers. + | Byref of ILType + /// ILCode pointers. + | FunctionPointer of ILCallingSignature + /// Reference a generic arg. + | TypeVar of uint16 + /// Custom modifiers. + | Modified of + /// True if modifier is "required" + bool * + /// The class of the custom modifier. + ILTypeRef * + /// The type being modified. + ILType + member TypeSpec : ILTypeSpec + member Boxity : ILBoxity + member TypeRef : ILTypeRef + member IsNominal : bool + member GenericArgs : ILGenericArgs + member IsTyvar : bool + member BasicQualifiedName : string + member QualifiedNameWithNoShortMscorlib : string + +and [] + ILCallingSignature = + { CallingConv: ILCallingConv; + ArgTypes: ILTypes; + ReturnType: ILType } + +/// Actual generic parameters are always types. + + +and ILGenericArgs = ILList +and ILTypes = ILList + + +[] +module ILList = + val inline map : ('T -> 'U) -> ILList<'T> -> ILList<'U> + val inline mapi : (int -> 'T -> 'U) -> ILList<'T> -> ILList<'U> + val inline isEmpty : ILList<'T> -> bool + val inline toList : ILList<'T> -> 'T list + val inline ofList : 'T list -> ILList<'T> + val inline lengthsEqAndForall2 : ('T -> 'U -> bool) -> ILList<'T> -> ILList<'U> -> bool + val inline init : int -> (int -> 'T) -> ILList<'T> + val inline empty<'T> : ILList<'T> + val inline toArray : ILList<'T> -> 'T[] + val inline ofArray : 'T[] -> ILList<'T> + val inline nth : ILList<'T> -> int -> 'T + val inline iter : ('T -> unit) -> ILList<'T> -> unit + val inline iteri : (int -> 'T -> unit) -> ILList<'T> -> unit + val inline foldBack : ('T -> 'State -> 'State) -> ILList<'T> -> 'State -> 'State + val inline exists : ('T -> bool) -> ILList<'T> -> bool + + +/// Formal identities of methods. Method refs refer to methods on +/// named types. In general you should work with ILMethodSpec objects +/// rather than MethodRef objects, because ILMethodSpec objects carry +/// information about how generic methods are instantiated. MethodRef +/// objects are only used at a few places in the Abstract IL syntax +/// and if analyzing or generating IL you will be unlikely to come across +/// these. + +[] +type ILMethodRef = + static member Create : enclosingTypeRef: ILTypeRef * callingConv: ILCallingConv * name: string * genericArity: int * argTypes: ILTypes * returnType: ILType -> ILMethodRef + member EnclosingTypeRef: ILTypeRef + member CallingConv: ILCallingConv + member Name: string + member GenericArity: int + member ArgCount: int + member ArgTypes: ILTypes + member ReturnType: ILType + member CallingSignature: ILCallingSignature + interface System.IComparable + +/// Formal identities of fields. + +[] +type ILFieldRef = + { EnclosingTypeRef: ILTypeRef; + Name: string; + Type: ILType } + +/// The information at the callsite of a method +// +// A ILMethodSpec is everything given at the callsite (apart from whether the call is a tailcall and whether it is passing +// varargs - see the instruction set below). It is made up of +// 1) a (possibly generic) ILMethodRef +// 2) a "usage type" that indicates the how the type containing the declaration is being used (as +// a value class, a boxed value class, an instantiated generic class or whatever - see below) +// 3) an instantiation in the case where the method is generic. +// +// In this unbound form of the metadata, the enclosing type may be ILType.Boxed even when the member is a member of a value type or +// enumeration. This is because the binary format of the metadata does not carry enough information in a MemberRefParent to determine +// from the binary alone whether the enclosing type is a value type or not. + +[] +type ILMethodSpec = + static member Create : ILType * ILMethodRef * ILGenericArgs -> ILMethodSpec + member MethodRef: ILMethodRef + member EnclosingType: ILType + member GenericArgs: ILGenericArgs + member CallingConv: ILCallingConv + member GenericArity: int + member Name: string + member FormalArgTypes: ILTypes + member FormalReturnType: ILType + interface System.IComparable + + +/// Field specs. The data given for a ldfld, stfld etc. instruction. +[] +type ILFieldSpec = + { FieldRef: ILFieldRef; + EnclosingType: ILType } + member EnclosingTypeRef: ILTypeRef + member Name: string + member FormalType: ILType + member ActualType : ILType + +/// ILCode labels. In structured code each code label +/// refers to a basic block somewhere in the code of the method. + +type ILCodeLabel = int + +[] +type ILBasicType = + | DT_R + | DT_I1 + | DT_U1 + | DT_I2 + | DT_U2 + | DT_I4 + | DT_U4 + | DT_I8 + | DT_U8 + | DT_R4 + | DT_R8 + | DT_I + | DT_U + | DT_REF + +[] +type ILToken = + | ILType of ILType + | ILMethod of ILMethodSpec + | ILField of ILFieldSpec + +[] +type ILConst = + | I4 of int32 + | I8 of int64 + | R4 of single + | R8 of double + +type ILTailcall = + | Tailcall + | Normalcall + +type ILAlignment = + | Aligned + | Unaligned1 + | Unaligned2 + | Unaligned4 + +type ILVolatility = + | Volatile + | Nonvolatile + +type ILReadonly = + | ReadonlyAddress + | NormalAddress + +type ILVarArgs = ILTypes option + +[] +type ILComparisonInstr = + | BI_beq + | BI_bge + | BI_bge_un + | BI_bgt + | BI_bgt_un + | BI_ble + | BI_ble_un + | BI_blt + | BI_blt_un + | BI_bne_un + | BI_brfalse + | BI_brtrue + +/// The instruction set. +/// +/// In general we don't categorize instructions, as different +/// instruction groups are relevant for different types of operations. +/// However we do collect the branch and compare instructions together +/// because they all take an address, and the ILArithInstr ones because +/// none of them take any direct arguments. +[] +type ILInstr = + // Basic + | AI_add + | AI_add_ovf + | AI_add_ovf_un + | AI_and + | AI_div + | AI_div_un + | AI_ceq + | AI_cgt + | AI_cgt_un + | AI_clt + | AI_clt_un + | AI_conv of ILBasicType + | AI_conv_ovf of ILBasicType + | AI_conv_ovf_un of ILBasicType + | AI_mul + | AI_mul_ovf + | AI_mul_ovf_un + | AI_rem + | AI_rem_un + | AI_shl + | AI_shr + | AI_shr_un + | AI_sub + | AI_sub_ovf + | AI_sub_ovf_un + | AI_xor + | AI_or + | AI_neg + | AI_not + | AI_ldnull + | AI_dup + | AI_pop + | AI_ckfinite + | AI_nop + | AI_ldc of ILBasicType * ILConst + | I_ldarg of uint16 + | I_ldarga of uint16 + | I_ldind of ILAlignment * ILVolatility * ILBasicType + | I_ldloc of uint16 + | I_ldloca of uint16 + | I_starg of uint16 + | I_stind of ILAlignment * ILVolatility * ILBasicType + | I_stloc of uint16 + + // Control transfer + | I_br of ILCodeLabel + | I_jmp of ILMethodSpec + | I_brcmp of ILComparisonInstr * ILCodeLabel * ILCodeLabel (* second label is fall-through *) + | I_switch of (ILCodeLabel list * ILCodeLabel) (* last label is fallthrough *) + | I_ret + + // Method call + | I_call of ILTailcall * ILMethodSpec * ILVarArgs + | I_callvirt of ILTailcall * ILMethodSpec * ILVarArgs + | I_callconstraint of ILTailcall * ILType * ILMethodSpec * ILVarArgs + | I_calli of ILTailcall * ILCallingSignature * ILVarArgs + | I_ldftn of ILMethodSpec + | I_newobj of ILMethodSpec * ILVarArgs + + // Exceptions + | I_throw + | I_endfinally + | I_endfilter + | I_leave of ILCodeLabel + | I_rethrow + + // Object instructions + | I_ldsfld of ILVolatility * ILFieldSpec + | I_ldfld of ILAlignment * ILVolatility * ILFieldSpec + | I_ldsflda of ILFieldSpec + | I_ldflda of ILFieldSpec + | I_stsfld of ILVolatility * ILFieldSpec + | I_stfld of ILAlignment * ILVolatility * ILFieldSpec + | I_ldstr of string + | I_isinst of ILType + | I_castclass of ILType + | I_ldtoken of ILToken + | I_ldvirtftn of ILMethodSpec + + // Value type instructions + | I_cpobj of ILType + | I_initobj of ILType + | I_ldobj of ILAlignment * ILVolatility * ILType + | I_stobj of ILAlignment * ILVolatility * ILType + | I_box of ILType + | I_unbox of ILType + | I_unbox_any of ILType + | I_sizeof of ILType + + // Generalized array instructions. In AbsIL these instructions include + // both the single-dimensional variants (with ILArrayShape == ILArrayShape.SingleDimensional) + // and calls to the "special" multi-dimensional "methods" such as + // newobj void string[,]::.ctor(int32, int32) + // call string string[,]::Get(int32, int32) + // call string& string[,]::Address(int32, int32) + // call void string[,]::Set(int32, int32,string) + // The IL reader transforms calls of this form to the corresponding + // generalized instruction with the corresponding ILArrayShape + // argument. This is done to simplify the IL and make it more uniform. + // The IL writer then reverses this when emitting the binary. + | I_ldelem of ILBasicType + | I_stelem of ILBasicType + | I_ldelema of ILReadonly * bool * ILArrayShape * ILType (* ILArrayShape = ILArrayShape.SingleDimensional for single dimensional arrays *) + | I_ldelem_any of ILArrayShape * ILType (* ILArrayShape = ILArrayShape.SingleDimensional for single dimensional arrays *) + | I_stelem_any of ILArrayShape * ILType (* ILArrayShape = ILArrayShape.SingleDimensional for single dimensional arrays *) + | I_newarr of ILArrayShape * ILType (* ILArrayShape = ILArrayShape.SingleDimensional for single dimensional arrays *) + | I_ldlen + + // "System.TypedReference" related instructions: almost + // no languages produce these, though they do occur in mscorlib.dll + // System.TypedReference represents a pair of a type and a byref-pointer + // to a value of that type. + | I_mkrefany of ILType + | I_refanytype + | I_refanyval of ILType + + // Debug-specific + // I_seqpoint is a fake instruction to represent a sequence point: + // the next instruction starts the execution of the + // statement covered by the given range - this is a + // dummy instruction and is not emitted + | I_break + | I_seqpoint of ILSourceMarker + + // Varargs - C++ only + | I_arglist + + // Local aggregates, i.e. stack allocated data (alloca) : C++ only + | I_localloc + | I_cpblk of ILAlignment * ILVolatility + | I_initblk of ILAlignment * ILVolatility + + // EXTENSIONS, e.g. MS-ILX + | EI_ilzero of ILType + | EI_ldlen_multi of int32 * int32 + | I_other of IlxExtensionInstr + +// REVIEW: remove this open-ended way of extending the IL and just combine with ILX +type ILInstrSetExtension<'Extension> = + { instrExtDests: ('Extension -> ILCodeLabel list); + instrExtFallthrough: ('Extension -> ILCodeLabel option); + instrExtIsTailcall: ('Extension -> bool); + instrExtRelabel: (ILCodeLabel -> ILCodeLabel) -> 'Extension -> 'Extension; } + +val RegisterInstructionSetExtension: ILInstrSetExtension<'Extension> -> ('Extension -> IlxExtensionInstr) * (IlxExtensionInstr -> bool) * (IlxExtensionInstr -> 'Extension) + +/// A list of instructions ending in an unconditionally +/// branching instruction. A basic block has a label which must be unique +/// within the method it is located in. Only the first instruction of +/// a basic block can be the target of a branch. +// +// Details: The last instruction is always a control flow instruction, +// i.e. branch, tailcall, throw etc. +// +// For example +// B1: ldarg 1 +// pop +// ret +// +// will be one basic block: +// ILBasicBlock("B1", [| I_ldarg(1); I_arith(AI_pop); I_ret |]) + +type ILBasicBlock = + { Label: ILCodeLabel; + Instructions: ILInstr[] } + member Fallthrough: ILCodeLabel option + + +/// Indicates that a particular local variable has a particular source +/// language name within a GroupBlock. This does not effect local +/// variable numbering, which is global over the whole method. +type ILDebugMapping = + { LocalIndex: int; + LocalName: string; } + +/// ILCode +/// +/// The code for a method is made up of a "code" object. Each "code" +/// object gives the contents of the method in a "semi-structured" form, i.e. +/// 1. The structure implicit in the IL exception handling tables +/// has been made explicit +/// 2. No relative offsets are used in the code: all branches and +/// switch targets are made explicit as labels. +/// 3. All "fallthroughs" from one basic block to the next have +/// been made explicit, by adding extra "branch" instructions to +/// the end of basic blocks which simply fallthrough to another basic +/// block. +/// +/// You can convert a straight-line sequence of instructions to structured +/// code by using buildILCode and +/// Most of the interesting code is contained in BasicBlocks. If you're +/// just interested in getting started with the format then begin +/// by simply considering methods which do not contain any branch +/// instructions, or methods which do not contain any exception handling +/// constructs. +/// +/// The above format has the great advantage that you can insert and +/// delete new code blocks without needing to fixup relative offsets +/// or exception tables. +/// +/// ILBasicBlock(bblock) +/// See above +/// +/// GroupBlock(localDebugInfo, blocks) +/// A set of blocks, with interior branching between the blocks. For example +/// B1: ldarg 1 +/// br B2 +/// +/// B2: pop +/// ret +/// +/// will be two basic blocks +/// let b1 = ILBasicBlock("B1", [| I_ldarg(1); I_br("B2") |]) +/// let b2 = ILBasicBlock("B2", [| I_arith(AI_pop); I_ret |]) +/// GroupBlock([], [b1; b2]) +/// +/// A GroupBlock can include a list of debug info records for locally +/// scoped local variables. These indicate that within the given blocks +/// the given local variables are used for the given Debug info +/// will only be recorded for local variables +/// declared in these nodes, and the local variable will only appear live +/// in the debugger for the instructions covered by this node. So if you +/// omit or erase these nodes then no debug info will be emitted for local +/// variables. If necessary you can have one outer ScopeBlock which specifies +/// the information for all the local variables +/// +/// Not all the destination labels used within a group of blocks need +/// be satisfied by that group alone. For example, the interior "try" code +/// of "try"-"catch" construct may be: +/// B1: ldarg 1 +/// br B2 +/// +/// B2: pop +/// leave B3 +/// +/// Again there will be two basic blocks grouped together: +/// let b1 = ILBasicBlock("B1", [| I_ldarg(1); I_br("B2") |]) +/// let b2 = ILBasicBlock("B2", [| I_arith(AI_pop); I_leave("B3") |]) +/// GroupBlock([], [b1; b2]) +/// Here the code must be embedded in a method where "B3" is a label +/// somewhere in the method. +/// +/// RestrictBlock(labels,code) +/// This block hides labels, i.e. the given set of labels represent +/// wiring which is purely internal to the given code block, and may not +/// be used as the target of a branch by any blocks which this block +/// is placed alongside. +/// +/// For example, if a method is made up of: +/// B1: ldarg 1 +/// br B2 +/// +/// B2: ret +/// +/// then the label "B2" is internal. The overall code will +/// be two basic blocks grouped together, surrounded by a RestrictBlock. +/// The label "B1" is then the only remaining visible entry to the method +/// and execution will begin at that label. +/// +/// let b1 = ILBasicBlock("B1", [| I_ldarg(1); I_br("B2") |]) +/// let b2 = ILBasicBlock("B2", [| I_arith(AI_pop); I_leave("B3") |]) +/// let gb1 = GroupBlock([], [b1; b2]) +/// RestrictBlock(["B2"], gb1) +/// +/// RestrictBlock is necessary to build well-formed code. +/// +/// TryBlock(trycode,seh) +/// +/// A try-catch, try-finally or try-fault block. +/// If an exception is raised while executing +/// an instruction in 'trycode' then the exception handler given by +/// 'seh' is executed. +/// +/// Well-formedness conditions for code: +/// +/// Well-formed code includes nodes which explicitly "hide" interior labels. +/// For example, the code object for a method may have only one entry +/// label which is not hidden, and this label will be the label where +/// execution begins. +/// +/// Both filter and catch blocks must have one +/// and only one entry. These entry labels are not visible +/// outside the filter and catch blocks. Filter has no +/// exits (it always uses endfilter), catch may have exits. +/// The "try" block can have multiple entries, i.e. you can branch +/// into a try from outside. They can have multiple exits, each of +/// which will be a "leave". +/// +type ILCode = + | ILBasicBlock of ILBasicBlock + | GroupBlock of ILDebugMapping list * ILCode list + | RestrictBlock of ILCodeLabel list * ILCode + | TryBlock of ILCode * ILExceptionBlock + +/// The 'seh' specification can have several forms: +/// +/// FilterCatchBlock +/// A multi-try-filter-catch block. Execute the +/// filters in order to determine which 'catch' block to catch the +/// exception with. There are two kinds of filters - one for +/// filtering exceptions by type and one by an instruction sequence. +/// Note that filter blocks can't contain any exception blocks. +/// +and ILExceptionBlock = + | FaultBlock of ILCode + | FinallyBlock of ILCode + | FilterCatchBlock of (ILFilterBlock * ILCode) list + +and ILFilterBlock = + | TypeFilter of ILType + | CodeFilter of ILCode + +val labelsOfCode: ILCode -> ILCodeLabel list +val uniqueEntryOfCode: ILCode -> ILCodeLabel + +/// Field Init + +[] +type ILFieldInit = + | String of string + | Bool of bool + | Char of uint16 + | Int8 of sbyte + | Int16 of int16 + | Int32 of int32 + | Int64 of int64 + | UInt8 of byte + | UInt16 of uint16 + | UInt32 of uint32 + | UInt64 of uint64 + | Single of single + | Double of double + | Null + +[] +type ILNativeVariant = + | Empty + | Null + | Variant + | Currency + | Decimal + | Date + | BSTR + | LPSTR + | LPWSTR + | IUnknown + | IDispatch + | SafeArray + | Error + | HRESULT + | CArray + | UserDefined + | Record + | FileTime + | Blob + | Stream + | Storage + | StreamedObject + | StoredObject + | BlobObject + | CF + | CLSID + | Void + | Bool + | Int8 + | Int16 + | Int32 + | Int64 + | Single + | Double + | UInt8 + | UInt16 + | UInt32 + | UInt64 + | PTR + | Array of ILNativeVariant + | Vector of ILNativeVariant + | Byref of ILNativeVariant + | Int + | UInt + +/// Native Types, for marshalling to the native C interface. +/// These are taken directly from the ILASM syntax, see ECMA Spec (Partition II, 7.4). + +[] +type ILNativeType = + | Empty + | Custom of Guid * string * string * byte[] (* guid,nativeTypeName,custMarshallerName,cookieString *) + | FixedSysString of int32 + | FixedArray of int32 + | Currency + | LPSTR + | LPWSTR + | LPTSTR + | ByValStr + | TBSTR + | LPSTRUCT + | Struct + | Void + | Bool + | Int8 + | Int16 + | Int32 + | Int64 + | Single + | Double + | Byte + | UInt16 + | UInt32 + | UInt64 + | Array of ILNativeType option * (int32 * int32 option) option (* optional idx of parameter giving size plus optional additive i.e. num elems *) + | Int + | UInt + | Method + | AsAny + | BSTR + | IUnknown + | IDispatch + | Interface + | Error + | SafeArray of ILNativeVariant * string option + | ANSIBSTR + | VariantBool + + +/// Local variables +[] +type ILLocal = + { Type: ILType; + IsPinned: bool } + + +type ILLocals = ILList + +/// IL method bodies +[] +type ILMethodBody = + { IsZeroInit: bool; + /// strictly speakin should be a uint16 + MaxStack: int32; + NoInlining: bool; + Locals: ILLocals; + Code: ILCode; + SourceMarker: ILSourceMarker option } + +/// Member Access +[] +type ILMemberAccess = + | Assembly + | CompilerControlled + | FamilyAndAssembly + | FamilyOrAssembly + | Family + | Private + | Public + +[] +type ILAttribElem = + /// Represents a custom attribute parameter of type 'string'. These may be null, in which case they are encoded in a special + /// way as indicated by Ecma-335 Partition II. + | String of string option + | Bool of bool + | Char of char + | SByte of sbyte + | Int16 of int16 + | Int32 of int32 + | Int64 of int64 + | Byte of byte + | UInt16 of uint16 + | UInt32 of uint32 + | UInt64 of uint64 + | Single of single + | Double of double + | Null + | Type of ILType option + | TypeRef of ILTypeRef option + | Array of ILType * ILAttribElem list + +/// Named args: values and flags indicating if they are fields or properties +type ILAttributeNamedArg = string * ILType * bool * ILAttribElem + +/// Custom attributes. See 'decodeILAttribData' for a helper to parse the byte[] +/// to ILAttribElem's as best as possible. +type ILAttribute = + { Method: ILMethodSpec; +#if SILVERLIGHT + Arguments: ILAttribElem list * ILAttributeNamedArg list +#endif + Data: byte[] } + +[] +type ILAttributes = + member AsList : ILAttribute list + +/// Method parameters and return values + +type ILParameter = + { Name: string option; + Type: ILType; + Default: ILFieldInit option; + /// Marshalling map for parameters. COM Interop only. + Marshal: ILNativeType option; + IsIn: bool; + IsOut: bool; + IsOptional: bool; + CustomAttrs: ILAttributes } + +type ILParameters = ILList + +val typesOfILParamsRaw : ILParameters -> ILTypes +val typesOfILParamsList : ILParameter list -> ILType list + +/// Method return values +type ILReturn = + { Marshal: ILNativeType option; + Type: ILType; + CustomAttrs: ILAttributes } + +/// Security ILPermissions +/// +/// Attached to various structures... + +[] +type ILSecurityAction = + | Request + | Demand + | Assert + | Deny + | PermitOnly + | LinkCheck + | InheritCheck + | ReqMin + | ReqOpt + | ReqRefuse + | PreJitGrant + | PreJitDeny + | NonCasDemand + | NonCasLinkDemand + | NonCasInheritance + | LinkDemandChoice + | InheritanceDemandChoice + | DemandChoice + +type ILPermission = + | PermissionSet of ILSecurityAction * byte[] + +/// Abstract type equivalent to ILPermission list - use helpers +/// below to construct/destruct these +[] +type ILPermissions = + member AsList : ILPermission list + +/// PInvoke attributes. +[] +type PInvokeCallingConvention = + | None + | Cdecl + | Stdcall + | Thiscall + | Fastcall + | WinApi + +[] +type PInvokeCharEncoding = + | None + | Ansi + | Unicode + | Auto + +[] +type PInvokeCharBestFit = + | UseAssembly + | Enabled + | Disabled + +[] +type PInvokeThrowOnUnmappableChar = + | UseAssembly + | Enabled + | Disabled + +[] +type PInvokeMethod = + { Where: ILModuleRef; + Name: string; + CallingConv: PInvokeCallingConvention; + CharEncoding: PInvokeCharEncoding; + NoMangle: bool; + LastError: bool; + ThrowOnUnmappableChar: PInvokeThrowOnUnmappableChar; + CharBestFit: PInvokeCharBestFit } + + +/// [OverridesSpec] - refer to a method declaration in a superclass +/// or superinterface. Used for overriding/method impls. Includes +/// a type for the parent for the same reason that a method specs +/// includes the type of the enclosing type, i.e. the type +/// gives the "ILGenericArgs" at which the parent type is being used. + +type ILOverridesSpec = + | OverridesSpec of ILMethodRef * ILType + member MethodRef: ILMethodRef + member EnclosingType: ILType + +// REVIEW: fold this into ILMethodDef +type ILMethodVirtualInfo = + { IsFinal: bool; + IsNewSlot: bool; + IsCheckAccessOnOverride: bool; + IsAbstract: bool; } + +[] +type MethodKind = + | Static + | Cctor + | Ctor + | NonVirtual + | Virtual of ILMethodVirtualInfo + +// REVIEW: fold this into ILMethodDef +[] +type MethodBody = + | IL of ILMethodBody + | PInvoke of PInvokeMethod (* platform invoke to native *) + | Abstract + | Native + +// REVIEW: fold this into ILMethodDef +[] +type MethodCodeKind = + | IL + | Native + | Runtime + +/// Generic parameters. Formal generic parameter declarations +/// may include the bounds, if any, on the generic parameter. +type ILGenericParameterDef = + { Name: string; + /// At most one is the parent type, the others are interface types + Constraints: ILTypes; + /// Variance of type parameters, only applicable to generic parameters for generic interfaces and delegates + Variance: ILGenericVariance; + /// Indicates the type argument must be a reference type + HasReferenceTypeConstraint: bool; + CustomAttrs : ILAttributes; + /// Indicates the type argument must be a value type, but not Nullable + HasNotNullableValueTypeConstraint: bool; + /// Indicates the type argument must have a public nullary constructor + HasDefaultConstructorConstraint: bool; } + + +type ILGenericParameterDefs = ILGenericParameterDef list + +// REVIEW: fold this into ILMethodDef +[] +type ILLazyMethodBody = + member Contents : MethodBody + +/// Method definitions. +/// +/// There are several different flavours of methods (constructors, +/// abstract, virtual, static, instance, class constructors). There +/// is no perfect factorization of these as the combinations are not +/// independent. + +[] +type ILMethodDef = + { Name: string; + mdKind: MethodKind; + CallingConv: ILCallingConv; + Parameters: ILParameters; + Return: ILReturn; + Access: ILMemberAccess; + mdBody: ILLazyMethodBody; + mdCodeKind: MethodCodeKind; + IsInternalCall: bool; + IsManaged: bool; + IsForwardRef: bool; + SecurityDecls: ILPermissions; + /// Note: some methods are marked "HasSecurity" even if there are no permissions attached, e.g. if they use SuppressUnmanagedCodeSecurityAttribute + HasSecurity: bool; + IsEntryPoint:bool; + IsReqSecObj: bool; + IsHideBySig: bool; + IsSpecialName: bool; + /// The method is exported to unmanaged code using COM interop. + IsUnmanagedExport: bool; + IsSynchronized: bool; + IsPreserveSig: bool; + /// .NET 2.0 feature: SafeHandle finalizer must be run + IsMustRun: bool; + IsNoInline: bool; + + GenericParams: ILGenericParameterDefs; + CustomAttrs: ILAttributes; } + + member ParameterTypes: ILTypes; + member IsIL : bool + member Code : ILCode option + member Locals : ILLocals + member MaxStack : int32 + member IsZeroInit : bool + + /// .cctor methods. The predicates (IsClassInitializer,IsConstructor,IsStatic,IsNonVirtualInstance,IsVirtual) form a complete, non-overlapping classification of this type + member IsClassInitializer: bool + /// .ctor methods. The predicates (IsClassInitializer,IsConstructor,IsStatic,IsNonVirtualInstance,IsVirtual) form a complete, non-overlapping classification of this type + member IsConstructor: bool + /// static methods. The predicates (IsClassInitializer,IsConstructor,IsStatic,IsNonVirtualInstance,IsVirtual) form a complete, non-overlapping classification of this type + member IsStatic: bool + /// instance methods that are not virtual. The predicates (IsClassInitializer,IsConstructor,IsStatic,IsNonVirtualInstance,IsVirtual) form a complete, non-overlapping classification of this type + member IsNonVirtualInstance: bool + /// instance methods that are virtual or abstract or implement an interface slot. The predicates (IsClassInitializer,IsConstructor,IsStatic,IsNonVirtualInstance,IsVirtual) form a complete, non-overlapping classification of this type + member IsVirtual: bool + + member IsFinal: bool + member IsNewSlot: bool + member IsCheckAccessOnOverride : bool + member IsAbstract: bool + member MethodBody : ILMethodBody + member CallingSignature: ILCallingSignature + +/// Tables of methods. Logically equivalent to a list of methods but +/// the table is kept in a form optimized for looking up methods by +/// name and arity. + +/// abstract type equivalent to [ILMethodDef list] +[] +type ILMethodDefs = + interface IEnumerable + member AsList : ILMethodDef list + member FindByName : string -> ILMethodDef list + +/// Field definitions +[] +type ILFieldDef = + { Name: string; + Type: ILType; + IsStatic: bool; + Access: ILMemberAccess; + Data: byte[] option; + LiteralValue: ILFieldInit option; + /// The explicit offset in bytes when explicit layout is used. + Offset: int32 option; + IsSpecialName: bool; + Marshal: ILNativeType option; + NotSerialized: bool; + IsLiteral: bool ; + IsInitOnly: bool; + CustomAttrs: ILAttributes; } + +/// Tables of fields. Logically equivalent to a list of fields but +/// the table is kept in a form optimized for looking up fields by +/// name. +[] +type ILFieldDefs = + member AsList : ILFieldDef list + member LookupByName : string -> ILFieldDef list + +/// Event definitions +[] +type ILEventDef = + { Type: ILType option; + Name: string; + IsRTSpecialName: bool; + IsSpecialName: bool; + AddMethod: ILMethodRef; + RemoveMethod: ILMethodRef; + FireMethod: ILMethodRef option; + OtherMethods: ILMethodRef list; + CustomAttrs: ILAttributes; } + +/// Table of those events in a type definition. +[] +type ILEventDefs = + member AsList : ILEventDef list + member LookupByName : string -> ILEventDef list + +/// Property definitions +[] +type ILPropertyDef = + { Name: string; + IsRTSpecialName: bool; + IsSpecialName: bool; + SetMethod: ILMethodRef option; + GetMethod: ILMethodRef option; + CallingConv: ILThisConvention; + Type: ILType; + Init: ILFieldInit option; + Args: ILTypes; + CustomAttrs: ILAttributes; } + +/// Table of those properties in a type definition. +[] +[] +type ILPropertyDefs = + member AsList : ILPropertyDef list + member LookupByName : string -> ILPropertyDef list + +/// Method Impls +/// +/// If there is an entry (pms --> ms) in this table, then method [ms] +/// is used to implement method [pms] for the purposes of this class +/// and its subclasses. +type ILMethodImplDef = + { Overrides: ILOverridesSpec; + OverrideBy: ILMethodSpec } + +[] +type ILMethodImplDefs = + member AsList : ILMethodImplDef list + +/// Type Layout information +[] +type ILTypeDefLayout = + | Auto + | Sequential of ILTypeDefLayoutInfo + | Explicit of ILTypeDefLayoutInfo + +and ILTypeDefLayoutInfo = + { Size: int32 option; + Pack: uint16 option } + +/// Indicate the initialization semantics of a type +[] +type ILTypeInit = + | BeforeField + | OnAny + +/// Default Unicode encoding for P/Invoke within a type +[] +type ILDefaultPInvokeEncoding = + | Ansi + | Auto + | Unicode + +/// Type Access +[] +type ILTypeDefAccess = + | Public + | Private + | Nested of ILMemberAccess + +/// A categorization of type definitions into "kinds" + +//------------------------------------------------------------------- +// A note for the nit-picky.... In theory, the "kind" of a type +// definition can only be partially determined prior to binding. +// For example, you cannot really, absolutely tell if a type is +// really, absolutely a value type until you bind the +// super class and test it for type equality against System.ValueType. +// However, this is unbearably annoying, as it means you +// have to load "mscorlib" and perform bind operations +// in order to be able to determine some quite simple +// things. So we approximate by simply looking at the name +// of the superclass when loading. +// ------------------------------------------------------------------ + +[] +type ILTypeDefKind = + | Class + | ValueType + | Interface + | Enum + | Delegate + (* FOR EXTENSIONS, e.g. MS-ILX *) + | Other of IlxExtensionTypeKind + +/// Tables of named type definitions. The types and table may contain on-demand +/// (lazy) computations, e.g. the actual reading of some aspects +/// of a type definition may be delayed if the reader being used supports +/// this. +/// +/// This is an abstract type equivalent to "ILTypeDef list" +[] +[] +type ILTypeDefs = + interface IEnumerable + member AsList : ILTypeDef list + + /// Get some information about the type defs, but do not force the read of the type defs themselves + member AsListOfLazyTypeDefs : (string list * string * ILAttributes * Lazy) list + + /// Calls to [FindByName] will result in any laziness in the overall + /// set of ILTypeDefs being read in in addition + /// to the details for the type found, but the remaining individual + /// type definitions will not be read. + member FindByName : string -> ILTypeDef + +/// Type Definitions +/// +/// As for methods there are several important constraints not encoded +/// in the type definition below, for example that the super class of +/// an interface type is always None, or that enumerations always +/// have a very specific form. +and [] + ILTypeDef = + { tdKind: ILTypeDefKind; + Name: string; + GenericParams: ILGenericParameterDefs; + Access: ILTypeDefAccess; + IsAbstract: bool; + IsSealed: bool; + IsSerializable: bool; + /// Class or interface generated for COM interop + IsComInterop: bool; + Layout: ILTypeDefLayout; + IsSpecialName: bool; + Encoding: ILDefaultPInvokeEncoding; + NestedTypes: ILTypeDefs; + Implements: ILTypes; + Extends: ILType option; + Methods: ILMethodDefs; + SecurityDecls: ILPermissions; + /// Note: some classes are marked "HasSecurity" even if there are no permissions attached, e.g. if they use SuppressUnmanagedCodeSecurityAttribute + HasSecurity: bool; + Fields: ILFieldDefs; + MethodImpls: ILMethodImplDefs; + InitSemantics: ILTypeInit; + Events: ILEventDefs; + Properties: ILPropertyDefs; + CustomAttrs: ILAttributes; } + member IsClass: bool; + member IsInterface: bool; + member IsEnum: bool; + member IsDelegate: bool; + member IsStructOrEnum : bool + +[] +[] +type ILNestedExportedTypes = + member AsList : ILNestedExportedType list + +/// "Classes Elsewhere" - classes in auxiliary modules. +/// +/// Manifests include declarations for all the classes in an +/// assembly, regardless of which module they are in. +/// +/// The ".class extern" construct describes so-called exported types -- +/// these are public classes defined in the auxiliary modules of this assembly, +/// i.e. modules other than the manifest-carrying module. +/// +/// For example, if you have a two-module +/// assembly (A.DLL and B.DLL), and the manifest resides in the A.DLL, +/// then in the manifest all the public classes declared in B.DLL should +/// be defined as exported types, i.e., as ".class extern". The public classes +/// defined in A.DLL should not be defined as ".class extern" -- they are +/// already available in the manifest-carrying module. The union of all +/// public classes defined in the manifest-carrying module and all +/// exported types defined there is the set of all classes exposed by +/// this assembly. Thus, by analysing the metadata of the manifest-carrying +/// module of an assembly, you can identify all the classes exposed by +/// this assembly, and where to find them. +/// +/// Nested classes found in external modules should also be located in +/// this table, suitably nested inside another "ILExportedTypeOrForwarder" +/// definition. + +/// these are only found in the "Nested" field of ILExportedTypeOrForwarder objects +// REVIEW: fold this into ILExportedTypeOrForwarder. There's not much value in keeping these distinct +and ILNestedExportedType = + { Name: string; + Access: ILMemberAccess; + Nested: ILNestedExportedTypes; + CustomAttrs: ILAttributes } + +/// these are only found in the ILExportedTypesAndForwarders table in the manifest +[] +type ILExportedTypeOrForwarder = + { ScopeRef: ILScopeRef; + /// [Namespace.]Name + Name: string; + IsForwarder: bool; + Access: ILTypeDefAccess; + Nested: ILNestedExportedTypes; + CustomAttrs: ILAttributes } + +[] +[] +type ILExportedTypesAndForwarders = + member AsList : ILExportedTypeOrForwarder list + +[] +type ILResourceAccess = + | Public + | Private + +[] +type ILResourceLocation = + | Local of (unit -> byte[]) (* resources may be re-read each time this function is called *) + | File of ILModuleRef * int32 + | Assembly of ILAssemblyRef + +/// "Manifest ILResources" are chunks of resource data, being one of: +/// - the data section of the current module (byte[] of resource given directly) +/// - in an external file in this assembly (offset given in the ILResourceLocation field) +/// - as a resources in another assembly of the same name. +type ILResource = + { Name: string; + Location: ILResourceLocation; + Access: ILResourceAccess; + CustomAttrs: ILAttributes } + +/// Table of resources in a module +[] +[] +type ILResources = + member AsList : ILResource list + + +[] +type ILAssemblyLongevity = + | Unspecified + | Library + | PlatformAppDomain + | PlatformProcess + | PlatformSystem + +/// The main module of an assembly is a module plus some manifest information. +type ILAssemblyManifest = + { Name: string; + /// This is ID of the algorithm used for the hashes of auxiliary + /// files in the assembly. These hashes are stored in the + /// ILModuleRef.Hash fields of this assembly. These are not cryptographic + /// hashes: they are simple file hashes. The algorithm is normally + /// 0x00008004 indicating the SHA1 hash algorithm. + AuxModuleHashAlgorithm: int32; + SecurityDecls: ILPermissions; + /// This is the public key used to sign this + /// assembly (the signature itself is stored elsewhere: see the + /// binary format, and may not have been written if delay signing + /// is used). (member Name, member PublicKey) forms the full + /// public name of the assembly. + PublicKey: byte[] option; + Version: ILVersionInfo option; + Locale: string option; + CustomAttrs: ILAttributes; + AssemblyLongevity: ILAssemblyLongevity; + DisableJitOptimizations: bool; + JitTracking: bool; + Retargetable: bool; + /// Records the types impemented by this asssembly in auxiliary + /// modules. + ExportedTypes: ILExportedTypesAndForwarders; + /// Records whether the entrypoint resides in another module. + EntrypointElsewhere: ILModuleRef option; + } + +/// One module in the "current" assembly, either a main-module or +/// an auxiliary module. The main module will have a manifest. +/// +/// An assembly is built by joining together a "main" module plus +/// several auxiliary modules. +type ILModuleDef = + { Manifest: ILAssemblyManifest option; + CustomAttrs: ILAttributes; + Name: string; + TypeDefs: ILTypeDefs; + SubsystemVersion : int * int + UseHighEntropyVA : bool + SubSystemFlags: int32; + IsDLL: bool; + IsILOnly: bool; + Platform: ILPlatform option; + StackReserveSize: int32 option; + Is32Bit: bool; + Is32BitPreferred: bool; + Is64Bit: bool; + VirtualAlignment: int32; + PhysicalAlignment: int32; + ImageBase: int32; + MetadataVersion: string; + Resources: ILResources; + /// e.g. win86 resources, as the exact contents of a .res or .obj file + NativeResources: Lazy list; } + member ManifestOfAssembly: ILAssemblyManifest + member HasManifest : bool + +/// Find the method definition corresponding to the given property or +/// event operation. These are always in the same class as the property +/// or event. This is useful especially if your code is not using the Ilbind +/// API to bind references. +val resolveILMethodRef: ILTypeDef -> ILMethodRef -> ILMethodDef + +// ------------------------------------------------------------------ +// Type Names +// +// The name of a type stored in the Name field is as follows: +// - For outer types it is, for example, System.String, i.e. +// the namespace followed by the type name. +// - For nested types, it is simply the type name. The namespace +// must be gleaned from the context in which the nested type +// lies. +// ------------------------------------------------------------------ + +val splitNamespace: string -> string list + +val splitNamespaceToArray: string -> string[] + +/// The splitILTypeName utility helps you split a string representing +/// a type name into the leading namespace elements (if any), the +/// names of any nested types and the type name itself. This function +/// memoizes and interns the splitting of the namespace portion of +/// the type name. +val splitILTypeName: string -> string list * string + +val splitILTypeNameWithPossibleStaticArguments: string -> string[] * string + +/// splitTypeNameRight is like splitILTypeName except the +/// namespace is kept as a whole string, rather than split at dots. +val splitTypeNameRight: string -> string option * string + + +val typeNameForGlobalFunctions: string +val isTypeNameForGlobalFunctions: string -> bool + +val ungenericizeTypeName: string -> string (* e.g. List`1 --> List *) + +// ==================================================================== +// PART 2 +// +// Making metadata. Where no explicit constructor +// is given, you should create the concrete datatype directly, +// e.g. by filling in all appropriate record fields. +// ==================================================================== *) + +/// A table of common references to items in mscorlib. Version-neutral references +/// can be generated using ecmaILGlobals. If you have already loaded a particular +/// version of mscorlib you should reference items via an ILGlobals for that particular +/// version of mscorlib built using mkILGlobals. +[] +type ILGlobals = + { mscorlibScopeRef: ILScopeRef + mscorlibAssemblyName: string + noDebugData: bool + generateDebugBrowsableData: bool + tref_Object: ILTypeRef + tspec_Object: ILTypeSpec + typ_Object: ILType + tref_String: ILTypeRef + typ_String: ILType + typ_StringBuilder: ILType + typ_AsyncCallback: ILType + typ_IAsyncResult: ILType + typ_IComparable: ILType + tref_Type: ILTypeRef + typ_Type: ILType + typ_Missing: ILType + typ_Activator: ILType + typ_Delegate: ILType + typ_ValueType: ILType + typ_Enum: ILType + tspec_TypedReference: ILTypeSpec + typ_TypedReference: ILType + typ_MulticastDelegate: ILType + typ_Array: ILType + tspec_Int64: ILTypeSpec + tspec_UInt64: ILTypeSpec + tspec_Int32: ILTypeSpec + tspec_UInt32: ILTypeSpec + tspec_Int16: ILTypeSpec + tspec_UInt16: ILTypeSpec + tspec_SByte: ILTypeSpec + tspec_Byte: ILTypeSpec + tspec_Single: ILTypeSpec + tspec_Double: ILTypeSpec + tspec_IntPtr: ILTypeSpec + tspec_UIntPtr: ILTypeSpec + tspec_Char: ILTypeSpec + tspec_Bool: ILTypeSpec + typ_int8: ILType + typ_int16: ILType + typ_int32: ILType + typ_int64: ILType + typ_uint8: ILType + typ_uint16: ILType + typ_uint32: ILType + typ_uint64: ILType + typ_float32: ILType + typ_float64: ILType + typ_bool: ILType + typ_char: ILType + typ_IntPtr: ILType + typ_UIntPtr: ILType + typ_RuntimeArgumentHandle: ILType + typ_RuntimeTypeHandle: ILType + typ_RuntimeMethodHandle: ILType + typ_RuntimeFieldHandle: ILType + typ_Byte: ILType + typ_Int16: ILType + typ_Int32: ILType + typ_Int64: ILType + typ_SByte: ILType + typ_UInt16: ILType + typ_UInt32: ILType + typ_UInt64: ILType + typ_Single: ILType + typ_Double: ILType + typ_Bool: ILType + typ_Char: ILType + typ_SerializationInfo: ILType + typ_StreamingContext: ILType + tref_SecurityPermissionAttribute : ILTypeRef + tspec_Exception: ILTypeSpec + typ_Exception: ILType + mutable generatedAttribsCache: ILAttribute list + mutable debuggerBrowsableNeverAttributeCache : ILAttribute option + mutable debuggerTypeProxyAttributeCache : ILAttribute option } + +/// Build the table of commonly used references given a ILScopeRef for mscorlib. +val mkILGlobals : mscorlibScopeRef:ILScopeRef -> mscorlibAssemblyNameOpt:string option -> noDebugData:bool * generateDebugBrowsableData:bool -> ILGlobals + + +/// When writing a binary the fake "toplevel" type definition (called ) +/// must come first. This function puts it first, and creates it in the returned list as an empty typedef if it +/// doesn't already exist. +val destTypeDefsWithGlobalFunctionsFirst: ILGlobals -> ILTypeDefs -> ILTypeDef list + +/// Note: not all custom attribute data can be decoded without binding types. In particular +/// enums must be bound in order to discover the size of the underlying integer. +/// The following assumes enums have size int32. +/// It also does not completely decode System.Type attributes +val decodeILAttribData: + ILGlobals -> + ILAttribute -> + ILScopeRef option -> + ILAttribElem list * (* fixed args *) + ILAttributeNamedArg list (* named args: values and flags indicating if they are fields or properties *) + +/// Generate simple references to assemblies and modules +val mkSimpleAssRef: string -> ILAssemblyRef +val mkSimpleModRef: string -> ILModuleRef + +val emptyILGenericArgs: ILGenericArgs +val mkILTyvarTy: uint16 -> ILType + +/// Make type refs +val mkILNestedTyRef: ILScopeRef * string list * string -> ILTypeRef +val mkILTyRef: ILScopeRef * string -> ILTypeRef +val mkILTyRefInTyRef: ILTypeRef * string -> ILTypeRef + +type ILGenericArgsList = ILType list +val mkILGenericArgs : ILGenericArgsList -> ILGenericArgs +/// Make type specs +val mkILNonGenericTySpec: ILTypeRef -> ILTypeSpec +val mkILTySpec: ILTypeRef * ILGenericArgsList -> ILTypeSpec +val mkILTySpecRaw: ILTypeRef * ILGenericArgs -> ILTypeSpec + +/// Make types +val mkILTy: ILBoxity -> ILTypeSpec -> ILType +val mkILNamedTy: ILBoxity -> ILTypeRef -> ILGenericArgsList -> ILType +val mkILBoxedTy: ILTypeRef -> ILGenericArgsList -> ILType +val mkILBoxedTyRaw: ILTypeRef -> ILGenericArgs -> ILType +val mkILValueTy: ILTypeRef -> ILGenericArgsList -> ILType +val mkILNonGenericBoxedTy: ILTypeRef -> ILType +val mkILNonGenericValueTy: ILTypeRef -> ILType +val mkILArrTy: ILType * ILArrayShape -> ILType +val mkILArr1DTy: ILType -> ILType +val isILArrTy: ILType -> bool +val destILArrTy: ILType -> ILArrayShape * ILType +val mkILBoxedType : ILTypeSpec -> ILType + +val mkILTypes : ILType list -> ILTypes + +/// Make method references and specs +val mkILMethRefRaw: ILTypeRef * ILCallingConv * string * int * ILTypes * ILType -> ILMethodRef +val mkILMethRef: ILTypeRef * ILCallingConv * string * int * ILType list * ILType -> ILMethodRef +val mkILMethSpec: ILMethodRef * ILBoxity * ILGenericArgsList * ILGenericArgsList -> ILMethodSpec +val mkILMethSpecForMethRefInTyRaw: ILMethodRef * ILType * ILGenericArgs -> ILMethodSpec +val mkILMethSpecForMethRefInTy: ILMethodRef * ILType * ILGenericArgsList -> ILMethodSpec +val mkILMethSpecInTy: ILType * ILCallingConv * string * ILType list * ILType * ILGenericArgsList -> ILMethodSpec +val mkILMethSpecInTyRaw: ILType * ILCallingConv * string * ILTypes * ILType * ILGenericArgs -> ILMethodSpec + +/// Construct references to methods on a given type +val mkILNonGenericMethSpecInTy: ILType * ILCallingConv * string * ILType list * ILType -> ILMethodSpec + +/// Construct references to instance methods +val mkILInstanceMethSpecInTy: ILType * string * ILType list * ILType * ILGenericArgsList -> ILMethodSpec + +/// Construct references to instance methods +val mkILNonGenericInstanceMethSpecInTy: ILType * string * ILType list * ILType -> ILMethodSpec + +/// Construct references to static methods +val mkILStaticMethSpecInTy: ILType * string * ILType list * ILType * ILGenericArgsList -> ILMethodSpec + +/// Construct references to static, non-generic methods +val mkILNonGenericStaticMethSpecInTy: ILType * string * ILType list * ILType -> ILMethodSpec + +/// Construct references to constructors +val mkILCtorMethSpecForTy: ILType * ILType list -> ILMethodSpec + +/// Construct references to fields +val mkILFieldRef: ILTypeRef * string * ILType -> ILFieldRef +val mkILFieldSpec: ILFieldRef * ILType -> ILFieldSpec +val mkILFieldSpecInTy: ILType * string * ILType -> ILFieldSpec + +val mkILCallSigRaw: ILCallingConv * ILTypes * ILType -> ILCallingSignature +val mkILCallSig: ILCallingConv * ILType list * ILType -> ILCallingSignature + +/// Make generalized verions of possibly-generic types, +/// e.g. Given the ILTypeDef for List, return the type "List". + +val mkILFormalBoxedTy: ILTypeRef -> ILGenericParameterDef list -> ILType + +val mkILFormalTyparsRaw: ILTypes -> ILGenericParameterDefs +val mkILFormalTypars: ILType list -> ILGenericParameterDefs +val mkILFormalGenericArgsRaw: ILGenericParameterDefs -> ILGenericArgs +val mkILFormalGenericArgs: ILGenericParameterDefs -> ILGenericArgsList +val mkILSimpleTypar : string -> ILGenericParameterDef +/// Make custom attributes +val mkILCustomAttribMethRef: + ILGlobals + -> ILMethodSpec + * ILAttribElem list (* fixed args: values and implicit types *) + * ILAttributeNamedArg list (* named args: values and flags indicating if they are fields or properties *) + -> ILAttribute + +val mkILCustomAttribute: + ILGlobals + -> ILTypeRef * ILType list * + ILAttribElem list (* fixed args: values and implicit types *) * + ILAttributeNamedArg list (* named args: values and flags indicating if they are fields or properties *) + -> ILAttribute + +val mkPermissionSet : ILGlobals -> ILSecurityAction * (ILTypeRef * (string * ILType * ILAttribElem) list) list -> ILPermission + +/// Making code. +val checkILCode: ILCode -> ILCode +val generateCodeLabel: unit -> ILCodeLabel +val formatCodeLabel : ILCodeLabel -> string + +/// Make some code that is a straight line sequence of instructions. +/// The function will add a "return" if the last instruction is not an exiting instruction +val nonBranchingInstrsToCode: ILInstr list -> ILCode + +/// Make some code that is a straight line sequence of instructions, then do +/// some control flow. The first code label is the entry label of the generated code. +val mkNonBranchingInstrsThen: ILCodeLabel -> ILInstr list -> ILInstr -> ILCode +val mkNonBranchingInstrsThenBr: ILCodeLabel -> ILInstr list -> ILCodeLabel -> ILCode + +/// Make a basic block. The final instruction must be control flow +val mkNonBranchingInstrs: ILCodeLabel -> ILInstr list -> ILCode + +/// Some more primitive helpers +val mkBasicBlock: ILBasicBlock -> ILCode +val mkGroupBlock: ILCodeLabel list * ILCode list -> ILCode + +/// Helpers for codegen: scopes for allocating new temporary variables. +type ILLocalsAllocator = + new : preAlloc: int -> ILLocalsAllocator + member AllocLocal : ILLocal -> uint16 + member Close : unit -> ILLocal list + +/// Derived functions for making some common patterns of instructions +val mkNormalCall: ILMethodSpec -> ILInstr +val mkNormalCallvirt: ILMethodSpec -> ILInstr +val mkNormalCallconstraint: ILType * ILMethodSpec -> ILInstr +val mkNormalNewobj: ILMethodSpec -> ILInstr +val mkCallBaseConstructor : ILType * ILType list -> ILInstr list +val mkNormalStfld: ILFieldSpec -> ILInstr +val mkNormalStsfld: ILFieldSpec -> ILInstr +val mkNormalLdsfld: ILFieldSpec -> ILInstr +val mkNormalLdfld: ILFieldSpec -> ILInstr +val mkNormalLdflda: ILFieldSpec -> ILInstr +val mkNormalLdobj: ILType -> ILInstr +val mkNormalStobj: ILType -> ILInstr +val mkLdcInt32: int32 -> ILInstr +val mkLdarg0: ILInstr +val mkLdloc: uint16 -> ILInstr +val mkStloc: uint16 -> ILInstr +val mkLdarg: uint16 -> ILInstr + +val andTailness: ILTailcall -> bool -> ILTailcall + +/// Derived functions for making return, parameter and local variable +/// objects for use in method definitions. +val mkILParam: string option * ILType -> ILParameter +val mkILParamAnon: ILType -> ILParameter +val mkILParamNamed: string * ILType -> ILParameter +val mkILReturn: ILType -> ILReturn +val mkILLocal: ILType -> ILLocal +val mkILLocals : ILLocal list -> ILLocals +val emptyILLocals : ILLocals + +/// Make a formal generic parameters +val mkILEmptyGenericParams: ILGenericParameterDefs + +/// Make method definitions +val mkILMethodBody: initlocals:bool * ILLocals * int * ILCode * ILSourceMarker option -> ILMethodBody +val mkMethodBody: bool * ILLocals * int * ILCode * ILSourceMarker option -> MethodBody + +val mkILCtor: ILMemberAccess * ILParameter list * MethodBody -> ILMethodDef +val mkILClassCtor: MethodBody -> ILMethodDef +val mkILNonGenericEmptyCtor: ILSourceMarker option -> ILType -> ILMethodDef +val mkILStaticMethod: ILGenericParameterDefs * string * ILMemberAccess * ILParameter list * ILReturn * MethodBody -> ILMethodDef +val mkILNonGenericStaticMethod: string * ILMemberAccess * ILParameter list * ILReturn * MethodBody -> ILMethodDef +val mkILGenericVirtualMethod: string * ILMemberAccess * ILGenericParameterDefs * ILParameter list * ILReturn * MethodBody -> ILMethodDef +val mkILGenericNonVirtualMethod: string * ILMemberAccess * ILGenericParameterDefs * ILParameter list * ILReturn * MethodBody -> ILMethodDef +val mkILNonGenericVirtualMethod: string * ILMemberAccess * ILParameter list * ILReturn * MethodBody -> ILMethodDef +val mkILNonGenericInstanceMethod: string * ILMemberAccess * ILParameter list * ILReturn * MethodBody -> ILMethodDef + + +/// Make field definitions +val mkILInstanceField: string * ILType * ILFieldInit option * ILMemberAccess -> ILFieldDef +val mkILStaticField: string * ILType * ILFieldInit option * byte[] option * ILMemberAccess -> ILFieldDef +val mkILLiteralField: string * ILType * ILFieldInit * byte[] option * ILMemberAccess -> ILFieldDef + +/// Make a type definition +val mkILGenericClass: string * ILTypeDefAccess * ILGenericParameterDefs * ILType * ILType list * ILMethodDefs * ILFieldDefs * ILTypeDefs * ILPropertyDefs * ILEventDefs * ILAttributes * ILTypeInit -> ILTypeDef +val mkILSimpleClass: ILGlobals -> string * ILTypeDefAccess * ILMethodDefs * ILFieldDefs * ILTypeDefs * ILPropertyDefs * ILEventDefs * ILAttributes * ILTypeInit -> ILTypeDef +val mkILTypeDefForGlobalFunctions: ILGlobals -> ILMethodDefs * ILFieldDefs -> ILTypeDef + +/// Make a type definition for a value type used to point to raw data. +/// These are useful when generating array initialization code +/// according to the +/// ldtoken field valuetype ''/'$$struct0x6000127-1' ''::'$$method0x6000127-1' +/// call void System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class System.Array,valuetype System.RuntimeFieldHandle) +/// idiom. +val mkRawDataValueTypeDef: ILGlobals -> string * size:int32 * pack:uint16 -> ILTypeDef + +/// Injecting code into existing code blocks. A branch will +/// be added from the given instructions to the (unique) entry of +/// the code, and the first instruction will be the new entry +/// of the method. The instructions should be non-branching. + +val prependInstrsToCode: ILInstr list -> ILCode -> ILCode +val prependInstrsToMethod: ILInstr list -> ILMethodDef -> ILMethodDef + +/// Injecting initialization code into a class. +/// Add some code to the end of the .cctor for a type. Create a .cctor +/// if one doesn't exist already. +val prependInstrsToClassCtor: ILInstr list -> ILSourceMarker option -> ILTypeDef -> ILTypeDef + +/// Derived functions for making some simple constructors +val mkILStorageCtor: ILSourceMarker option * ILInstr list * ILType * (string * ILType) list * ILMemberAccess -> ILMethodDef +val mkILSimpleStorageCtor: ILSourceMarker option * ILTypeSpec option * ILType * (string * ILType) list * ILMemberAccess -> ILMethodDef +val mkILSimpleStorageCtorWithParamNames: ILSourceMarker option * ILTypeSpec option * ILType * (string * string * ILType) list * ILMemberAccess -> ILMethodDef + +val mkILDelegateMethods: ILGlobals -> ILParameter list * ILReturn -> ILMethodDef list + +/// Given a delegate type definition which lies in a particular scope, +/// make a reference to its constructor +val mkCtorMethSpecForDelegate: ILGlobals -> ILType * bool -> ILMethodSpec + +/// The toplevel "class" for a module or assembly. +val mkILTypeForGlobalFunctions: ILScopeRef -> ILType + +/// Making tables of custom attributes, etc. +val mkILCustomAttrs: ILAttribute list -> ILAttributes +val mkILComputedCustomAttrs: (unit -> ILAttribute list) -> ILAttributes +val emptyILCustomAttrs: ILAttributes + +val mkILSecurityDecls: ILPermission list -> ILPermissions +val mkILLazySecurityDecls: Lazy -> ILPermissions +val emptyILSecurityDecls: ILPermissions + +val mkMethBodyAux : MethodBody -> ILLazyMethodBody +val mkMethBodyLazyAux : Lazy -> ILLazyMethodBody + +val mkILEvents: ILEventDef list -> ILEventDefs +val mkILEventsLazy: Lazy -> ILEventDefs +val emptyILEvents: ILEventDefs + +val mkILProperties: ILPropertyDef list -> ILPropertyDefs +val mkILPropertiesLazy: Lazy -> ILPropertyDefs +val emptyILProperties: ILPropertyDefs + +val mkILMethods: ILMethodDef list -> ILMethodDefs +val mkILMethodsLazy: Lazy -> ILMethodDefs +val addILMethod: ILMethodDef -> ILMethodDefs -> ILMethodDefs +val emptyILMethods: ILMethodDefs + +val mkILFields: ILFieldDef list -> ILFieldDefs +val mkILFieldsLazy: Lazy -> ILFieldDefs +val emptyILFields: ILFieldDefs + +val mkILMethodImpls: ILMethodImplDef list -> ILMethodImplDefs +val mkILMethodImplsLazy: Lazy -> ILMethodImplDefs +val emptyILMethodImpls: ILMethodImplDefs + +val mkILTypeDefs: ILTypeDef list -> ILTypeDefs +val emptyILTypeDefs: ILTypeDefs + +/// Create table of types which is loaded/computed on-demand, and whose individual +/// elements are also loaded/computed on-demand. Any call to tdefs.AsList will +/// result in the laziness being forced. Operations can examine the +/// custom attributes and name of each type in order to decide whether +/// to proceed with examining the other details of the type. +/// +/// Note that individual type definitions may contain further delays +/// in their method, field and other tables. +val mkILTypeDefsLazy: Lazy<(string list * string * ILAttributes * Lazy) list> -> ILTypeDefs +val addILTypeDef: ILTypeDef -> ILTypeDefs -> ILTypeDefs + +val mkILNestedExportedTypes: ILNestedExportedType list -> ILNestedExportedTypes +val mkILNestedExportedTypesLazy: Lazy -> ILNestedExportedTypes + +val mkILExportedTypes: ILExportedTypeOrForwarder list -> ILExportedTypesAndForwarders +val mkILExportedTypesLazy: Lazy -> ILExportedTypesAndForwarders + +val mkILResources: ILResource list -> ILResources +val mkILResourcesLazy: Lazy -> ILResources + +/// Making modules +val mkILSimpleModule: assemblyName:string -> moduleName:string -> dll:bool -> subsystemVersion : (int * int) -> useHighEntropyVA : bool -> ILTypeDefs -> int32 option -> string option -> int -> ILExportedTypesAndForwarders -> string -> ILModuleDef + +/// Generate references to existing type definitions, method definitions +/// etc. Useful for generating references, e.g. to a class we're processing +/// Also used to reference type definitions that we've generated. [ILScopeRef] +/// is normally ILScopeRef.Local, unless we've generated the ILTypeDef in +/// an auxiliary module or are generating multiple assemblies at +/// once. + +val mkRefForNestedILTypeDef : ILScopeRef -> ILTypeDef list * ILTypeDef -> ILTypeRef +val mkRefForILMethod : ILScopeRef -> ILTypeDef list * ILTypeDef -> ILMethodDef -> ILMethodRef +val mkRefForILField : ILScopeRef -> ILTypeDef list * ILTypeDef -> ILFieldDef -> ILFieldRef + +val mkRefToILMethod: ILTypeRef * ILMethodDef -> ILMethodRef +val mkRefToILField: ILTypeRef * ILFieldDef -> ILFieldRef + +val mkRefToILAssembly: ILAssemblyManifest -> ILAssemblyRef +val mkRefToILModule: ILModuleDef -> ILModuleRef + + +// -------------------------------------------------------------------- +// Rescoping. +// +// Given an object O1 referenced from where1 (e.g. O1 binds to some +// result R when referenced from where1), and given that SR2 resolves to where1 from where2, +// produce a new O2 for use from where2 (e.g. O2 binds to R from where2) +// +// So, ILScopeRef tells you how to reference the original scope from +// the new scope. e.g. if ILScopeRef is: +// [ILScopeRef.Local] then the object is returned unchanged +// [ILScopeRef.Module m] then an object is returned +// where all ILScopeRef.Local references +// become ILScopeRef.Module m +// [ILScopeRef.Assembly m] then an object is returned +// where all ILScopeRef.Local and ILScopeRef.Module references +// become ILScopeRef.Assembly m +// -------------------------------------------------------------------- + +/// Rescoping. The first argument tells the function how to reference the original scope from +/// the new scope. +val rescopeILScopeRef: ILScopeRef -> ILScopeRef -> ILScopeRef +/// Rescoping. The first argument tells the function how to reference the original scope from +/// the new scope. +val rescopeILTypeSpec: ILScopeRef -> ILTypeSpec -> ILTypeSpec +/// Rescoping. The first argument tells the function how to reference the original scope from +/// the new scope. +val rescopeILType: ILScopeRef -> ILType -> ILType +/// Rescoping. The first argument tells the function how to reference the original scope from +/// the new scope. +val rescopeILMethodRef: ILScopeRef -> ILMethodRef -> ILMethodRef +/// Rescoping. The first argument tells the function how to reference the original scope from +/// the new scope. +val rescopeILFieldRef: ILScopeRef -> ILFieldRef -> ILFieldRef + + +//----------------------------------------------------------------------- +// The ILCode Builder utility. +//---------------------------------------------------------------------- + +[] +type ILExceptionClause = + | Finally of (ILCodeLabel * ILCodeLabel) + | Fault of (ILCodeLabel * ILCodeLabel) + | FilterCatch of (ILCodeLabel * ILCodeLabel) * (ILCodeLabel * ILCodeLabel) + | TypeCatch of ILType * (ILCodeLabel * ILCodeLabel) + +type ILExceptionSpec = + { exnRange: (ILCodeLabel * ILCodeLabel); + exnClauses: ILExceptionClause list } + +type ILLocalSpec = + { locRange: (ILCodeLabel * ILCodeLabel); + locInfos: ILDebugMapping list } + +/// buildILCode: Build code from a sequence of instructions. +/// +/// e.g. "buildILCode meth resolver instrs exns locals" +/// +/// This makes the basic block structure of code from more primitive +/// information, i.e. an array of instructions. +/// [meth]: for debugging and should give the name of the method. +/// [resolver]: should return the instruction indexes referred to +/// by code-label strings in the instruction stream. +/// [instrs]: the instructions themselves, perhaps with attributes giving +/// debugging information +/// [exns]: the table of exception-handling specifications +/// for the method. These are again given with respect to labels which will +/// be mapped to pc's by [resolver]. +/// [locals]: the table of specifications of when local variables are live and +/// should appear in the debug info. +/// +/// If the input code is well-formed, the function will returns the +/// chop up the instruction sequence into basic blocks as required for +/// the exception handlers and then return the tree-structured code +/// corresponding to the instruction stream. +/// A new set of code labels will be used throughout the resulting code. +/// +/// The input can be badly formed in many ways: exception handlers might +/// overlap, or scopes of local variables may overlap badly with +/// exception handlers. +val buildILCode: + string -> + (ILCodeLabel -> int) -> + ILInstr[] -> + ILExceptionSpec list -> + ILLocalSpec list -> + ILCode + +// -------------------------------------------------------------------- +// The instantiation utilities. +// -------------------------------------------------------------------- + +/// Instantiate type variables that occur within types and other items. +val instILTypeAux: int -> ILGenericArgs -> ILType -> ILType + +/// Instantiate type variables that occur within types and other items. +val instILType: ILGenericArgs -> ILType -> ILType + +// -------------------------------------------------------------------- +// ECMA globals +// -------------------------------------------------------------------- + +/// This is a 'vendor neutral' way of referencing mscorlib. +val ecmaPublicKey: PublicKey +/// This is a 'vendor neutral' way of referencing mscorlib. +val ecmaMscorlibScopeRef: ILScopeRef +/// This is a 'vendor neutral' collection of references to items in mscorlib. +val ecmaILGlobals: ILGlobals + + +/// Some commonly used methods +val mkInitializeArrayMethSpec: ILGlobals -> ILMethodSpec + +val mkMscorlibExnNewobj: ILGlobals -> string -> ILInstr + +/// Some commonly used custom attibutes +val mkDebuggableAttribute: ILGlobals -> bool (* debug tracking *) * bool (* disable JIT optimizations *) -> ILAttribute +val mkDebuggableAttributeV2: ILGlobals -> bool (* jitTracking *) * bool (* ignoreSymbolStoreSequencePoints *) * bool (* disable JIT optimizations *) * bool (* enable EnC *) -> ILAttribute + +val mkCompilerGeneratedAttribute : ILGlobals -> ILAttribute +val mkDebuggerNonUserCodeAttribute : ILGlobals -> ILAttribute +val mkDebuggerStepThroughAttribute : ILGlobals -> ILAttribute +val mkDebuggerHiddenAttribute : ILGlobals -> ILAttribute +val mkDebuggerDisplayAttribute : ILGlobals -> string -> ILAttribute +val mkDebuggerTypeProxyAttribute : ILGlobals -> ILType -> ILAttribute +val mkDebuggerBrowsableNeverAttribute : ILGlobals -> ILAttribute + +val addMethodGeneratedAttrs : ILGlobals -> ILMethodDef -> ILMethodDef +val addPropertyGeneratedAttrs : ILGlobals -> ILPropertyDef -> ILPropertyDef +val addFieldGeneratedAttrs : ILGlobals -> ILFieldDef -> ILFieldDef + +val addPropertyNeverAttrs : ILGlobals -> ILPropertyDef -> ILPropertyDef +val addFieldNeverAttrs : ILGlobals -> ILFieldDef -> ILFieldDef + +/// Discriminating different important built-in types +val isILObjectTy: ILGlobals -> ILType -> bool +val isILStringTy: ILGlobals -> ILType -> bool +val isILSByteTy: ILGlobals -> ILType -> bool +val isILByteTy: ILGlobals -> ILType -> bool +val isILInt16Ty: ILGlobals -> ILType -> bool +val isILUInt16Ty: ILGlobals -> ILType -> bool +val isILInt32Ty: ILGlobals -> ILType -> bool +val isILUInt32Ty: ILGlobals -> ILType -> bool +val isILInt64Ty: ILGlobals -> ILType -> bool +val isILUInt64Ty: ILGlobals -> ILType -> bool +val isILIntPtrTy: ILGlobals -> ILType -> bool +val isILUIntPtrTy: ILGlobals -> ILType -> bool +val isILBoolTy: ILGlobals -> ILType -> bool +val isILCharTy: ILGlobals -> ILType -> bool +val isILTypedReferenceTy: ILGlobals -> ILType -> bool +val isILDoubleTy: ILGlobals -> ILType -> bool +val isILSingleTy: ILGlobals -> ILType -> bool + +/// Get a public key token from a public key. +val sha1HashBytes : byte[] -> byte[] (* SHA1 hash *) + +/// Get a version number from a CLR version string, e.g. 1.0.3705.0 +val parseILVersion: string -> ILVersionInfo +val formatILVersion: ILVersionInfo -> string +val compareILVersions: ILVersionInfo -> ILVersionInfo -> int + +/// Decompose a type definition according to its kind. +type ILEnumInfo = + { enumValues: (string * ILFieldInit) list; + enumType: ILType } + +val getTyOfILEnumInfo: ILEnumInfo -> ILType + +val computeILEnumInfo: string * ILFieldDefs -> ILEnumInfo + +// -------------------------------------------------------------------- +// For completeness. These do not occur in metadata but tools that +// care about the existence of properties and events in the metadata +// can benefit from them. +// -------------------------------------------------------------------- + +[] +type ILEventRef = + static member Create : ILTypeRef * string -> ILEventRef + member EnclosingTypeRef: ILTypeRef + member Name: string + +[] +type ILPropertyRef = + static member Create : ILTypeRef * string -> ILPropertyRef + member EnclosingTypeRef: ILTypeRef + member Name: string + interface System.IComparable + +val runningOnMono: bool + +type ILReferences = + { AssemblyReferences: ILAssemblyRef list; + ModuleReferences: ILModuleRef list; } + +/// Find the full set of assemblies referenced by a module +val computeILRefs: ILModuleDef -> ILReferences +val emptyILRefs: ILReferences + +// -------------------------------------------------------------------- +// The following functions are used to define an extension to the In reality the only extension is ILX + +type ILTypeDefKindExtension<'Extension> = TypeDefKindExtension + +val RegisterTypeDefKindExtension: ILTypeDefKindExtension<'Extension> -> ('Extension -> IlxExtensionTypeKind) * (IlxExtensionTypeKind -> bool) * (IlxExtensionTypeKind -> 'Extension) diff --git a/src/absil/ilascii.fs b/src/absil/ilascii.fs new file mode 100644 index 0000000..4c226f2 --- /dev/null +++ b/src/absil/ilascii.fs @@ -0,0 +1,284 @@ +//---------------------------------------------------------------------------- +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +module Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiConstants + +open Internal.Utilities +open Internal.Utilities.Collections + +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library +open Microsoft.FSharp.Compiler.AbstractIL.Diagnostics +open Microsoft.FSharp.Compiler.AbstractIL.Extensions.ILX.Types +open Microsoft.FSharp.Compiler.AbstractIL.IL + +let parseILGlobals = ref ecmaILGlobals + +// -------------------------------------------------------------------- +// Table of parsing and pretty printing data for instructions. +// - PP data is only used for instructions with no arguments +// -------------------------------------------------------------------- + +let noArgInstrs = + lazy [ + ["ldc";"i4";"0"], mkLdcInt32 0; + ["ldc";"i4";"1"], mkLdcInt32 1; + ["ldc";"i4";"2"], mkLdcInt32 2; + ["ldc";"i4";"3"], mkLdcInt32 3; + ["ldc";"i4";"4"], mkLdcInt32 4; + ["ldc";"i4";"5"], mkLdcInt32 5; + ["ldc";"i4";"6"], mkLdcInt32 6; + ["ldc";"i4";"7"], mkLdcInt32 7; + ["ldc";"i4";"8"], mkLdcInt32 8; + ["ldc";"i4";"M1"], mkLdcInt32 -1; + ["ldc";"i4";"m1"], mkLdcInt32 -1; + ["stloc";"0"], mkStloc (uint16 0); + ["stloc";"1"], mkStloc (uint16 1); + ["stloc";"2"], mkStloc (uint16 2); + ["stloc";"3"], mkStloc (uint16 3); + ["ldloc";"0"], mkLdloc (uint16 0); + ["ldloc";"1"], mkLdloc (uint16 1); + ["ldloc";"2"], mkLdloc (uint16 2); + ["ldloc";"3"], mkLdloc (uint16 3); + ["ldarg";"0"], (mkLdarg (uint16 ( 0))); + ["ldarg";"1"], (mkLdarg (uint16 ( 1))); + ["ldarg";"2"], (mkLdarg (uint16 ( 2))); + ["ldarg";"3"], (mkLdarg (uint16 ( 3))); + ["ret"], I_ret; + ["add"], AI_add; + ["add";"ovf"], AI_add_ovf; + ["add";"ovf";"un"], AI_add_ovf_un; + ["and"], AI_and; + ["div"], AI_div; + ["div";"un"], AI_div_un; + ["ceq"], AI_ceq; + ["cgt"], AI_cgt; + ["cgt";"un"], AI_cgt_un; + ["clt"], AI_clt; + ["clt";"un"], AI_clt_un; + ["conv";"i1"], AI_conv DT_I1; + ["conv";"i2"], AI_conv DT_I2; + ["conv";"i4"], AI_conv DT_I4; + ["conv";"i8"], AI_conv DT_I8; + ["conv";"i"], AI_conv DT_I; + ["conv";"r4"], AI_conv DT_R4; + ["conv";"r8"], AI_conv DT_R8; + ["conv";"u1"], AI_conv DT_U1; + ["conv";"u2"], AI_conv DT_U2; + ["conv";"u4"], AI_conv DT_U4; + ["conv";"u8"], AI_conv DT_U8; + ["conv";"u"], AI_conv DT_U; + ["conv";"r"; "un"], AI_conv DT_R; + ["conv";"ovf";"i1"], AI_conv_ovf DT_I1; + ["conv";"ovf";"i2"], AI_conv_ovf DT_I2; + ["conv";"ovf";"i4"], AI_conv_ovf DT_I4; + ["conv";"ovf";"i8"], AI_conv_ovf DT_I8; + ["conv";"ovf";"i"], AI_conv_ovf DT_I; + ["conv";"ovf";"u1"], AI_conv_ovf DT_U1; + ["conv";"ovf";"u2"], AI_conv_ovf DT_U2; + ["conv";"ovf";"u4"], AI_conv_ovf DT_U4; + ["conv";"ovf";"u8"], AI_conv_ovf DT_U8; + ["conv";"ovf";"u"], AI_conv_ovf DT_U; + ["conv";"ovf";"i1"; "un"], AI_conv_ovf_un DT_I1; + ["conv";"ovf";"i2"; "un"], AI_conv_ovf_un DT_I2; + ["conv";"ovf";"i4"; "un"], AI_conv_ovf_un DT_I4; + ["conv";"ovf";"i8"; "un"], AI_conv_ovf_un DT_I8; + ["conv";"ovf";"i"; "un"], AI_conv_ovf_un DT_I; + ["conv";"ovf";"u1"; "un"], AI_conv_ovf_un DT_U1; + ["conv";"ovf";"u2"; "un"], AI_conv_ovf_un DT_U2; + ["conv";"ovf";"u4"; "un"], AI_conv_ovf_un DT_U4; + ["conv";"ovf";"u8"; "un"], AI_conv_ovf_un DT_U8; + ["conv";"ovf";"u"; "un"], AI_conv_ovf_un DT_U; + ["stelem";"i1"], I_stelem DT_I1; + ["stelem";"i2"], I_stelem DT_I2; + ["stelem";"i4"], I_stelem DT_I4; + ["stelem";"i8"], I_stelem DT_I8; + ["stelem";"r4"], I_stelem DT_R4; + ["stelem";"r8"], I_stelem DT_R8; + ["stelem";"i"], I_stelem DT_I; + ["stelem";"u"], I_stelem DT_I; + ["stelem";"u8"], I_stelem DT_I8; + ["stelem";"ref"], I_stelem DT_REF; + ["ldelem";"i1"], I_ldelem DT_I1; + ["ldelem";"i2"], I_ldelem DT_I2; + ["ldelem";"i4"], I_ldelem DT_I4; + ["ldelem";"i8"], I_ldelem DT_I8; + ["ldelem";"u8"], I_ldelem DT_I8; + ["ldelem";"u1"], I_ldelem DT_U1; + ["ldelem";"u2"], I_ldelem DT_U2; + ["ldelem";"u4"], I_ldelem DT_U4; + ["ldelem";"r4"], I_ldelem DT_R4; + ["ldelem";"r8"], I_ldelem DT_R8; + ["ldelem";"u"], I_ldelem DT_I; // EQUIV + ["ldelem";"i"], I_ldelem DT_I; + ["ldelem";"ref"], I_ldelem DT_REF; + ["mul"], AI_mul ; + ["mul";"ovf"], AI_mul_ovf; + ["mul";"ovf";"un"], AI_mul_ovf_un; + ["rem"], AI_rem ; + ["rem";"un"], AI_rem_un ; + ["shl"], AI_shl ; + ["shr"], AI_shr ; + ["shr";"un"], AI_shr_un; + ["sub"], AI_sub ; + ["sub";"ovf"], AI_sub_ovf; + ["sub";"ovf";"un"], AI_sub_ovf_un; + ["xor"], AI_xor; + ["or"], AI_or; + ["neg"], AI_neg; + ["not"], AI_not; + ["ldnull"], AI_ldnull; + ["dup"], AI_dup; + ["pop"], AI_pop; + ["ckfinite"], AI_ckfinite; + ["nop"], AI_nop; + ["break"], I_break; + ["arglist"], I_arglist; + ["endfilter"], I_endfilter; + ["endfinally"], I_endfinally; + ["refanytype"], I_refanytype; + ["localloc"], I_localloc; + ["throw"], I_throw; + ["ldlen"], I_ldlen; + ["rethrow"], I_rethrow; + ];; + + +#if DEBUG +let wordsOfNoArgInstr, isNoArgInstr = + let t = + lazy + (let t = HashMultiMap(300, HashIdentity.Structural) + noArgInstrs |> Lazy.force |> List.iter (fun (x,mk) -> t.Add(mk,x)) ; + t) + (fun s -> (Lazy.force t).[s]), + (fun s -> (Lazy.force t).ContainsKey s) +#endif + +// -------------------------------------------------------------------- +// Instructions are preceded by prefixes, e.g. ".tail" etc. +// -------------------------------------------------------------------- + +let mk_stind (nm,dt) = (nm, (fun () -> I_stind(Aligned,Nonvolatile,dt))) +let mk_ldind (nm,dt) = (nm, (fun () -> I_ldind(Aligned,Nonvolatile,dt))) + +// -------------------------------------------------------------------- +// Parsing only... Tables of different types of instructions. +// First the different kinds of instructions. +// -------------------------------------------------------------------- + +type NoArgInstr = (unit -> ILInstr) +type Int32Instr = (int32 -> ILInstr) +type Int32Int32Instr = (int32 * int32 -> ILInstr) +type Int64Instr = (int64 -> ILInstr) +type DoubleInstr = (ILConst -> ILInstr) +type MethodSpecInstr = (ILMethodSpec * ILVarArgs -> ILInstr) +type TypeInstr = (ILType -> ILInstr) +type IntTypeInstr = (int * ILType -> ILInstr) +type ValueTypeInstr = (ILType -> ILInstr) (* nb. diff. interp of types to TypeInstr *) +type StringInstr = (string -> ILInstr) +type TokenInstr = (ILToken -> ILInstr) +type SwitchInstr = (ILCodeLabel list * ILCodeLabel -> ILInstr) + +// -------------------------------------------------------------------- +// Now the generic code to make a table of instructions +// -------------------------------------------------------------------- + +type InstrTable<'T> = (string list * 'T) list +type LazyInstrTable<'T> = Lazy> + +// -------------------------------------------------------------------- +// Now the tables of instructions +// -------------------------------------------------------------------- + +let NoArgInstrs = + lazy (((noArgInstrs |> Lazy.force |> List.map (fun (nm,i) -> (nm,(fun () -> i)))) @ + [ (mk_stind (["stind";"u"], DT_I)); + (mk_stind (["stind";"i"], DT_I)); + (mk_stind (["stind";"u1"], DT_I1));(* ILX EQUIVALENT *) + (mk_stind (["stind";"i1"], DT_I1)); + (mk_stind (["stind";"u2"], DT_I2)); + (mk_stind (["stind";"i2"], DT_I2)); + (mk_stind (["stind";"u4"], DT_I4)); (* ILX EQUIVALENT *) + (mk_stind (["stind";"i4"], DT_I4)); + (mk_stind (["stind";"u8"], DT_I8)); (* ILX EQUIVALENT *) + (mk_stind (["stind";"i8"], DT_I8)); + (mk_stind (["stind";"r4"], DT_R4)); + (mk_stind (["stind";"r8"], DT_R8)); + (mk_stind (["stind";"ref"], DT_REF)); + (mk_ldind (["ldind";"i"], DT_I)); + (mk_ldind (["ldind";"i1"], DT_I1)); + (mk_ldind (["ldind";"i2"], DT_I2)); + (mk_ldind (["ldind";"i4"], DT_I4)); + (mk_ldind (["ldind";"i8"], DT_I8)); + (mk_ldind (["ldind";"u1"], DT_U1)); + (mk_ldind (["ldind";"u2"], DT_U2)); + (mk_ldind (["ldind";"u4"], DT_U4)); + (mk_ldind (["ldind";"u8"], DT_I8)); + (mk_ldind (["ldind";"r4"], DT_R4)); + (mk_ldind (["ldind";"r8"], DT_R8)); + (mk_ldind (["ldind";"ref"], DT_REF)); + (["cpblk"], (fun () -> I_cpblk(Aligned,Nonvolatile))); + (["initblk"], (fun () -> I_initblk(Aligned,Nonvolatile))); + ] + ) : NoArgInstr InstrTable);; + +let Int64Instrs = + lazy ([ (["ldc";"i8"], (fun x ->(AI_ldc (DT_I8, ILConst.I8 x)))); ] : Int64Instr InstrTable) + +let Int32Instrs = + lazy ([ (["ldc";"i4"], (fun x -> ((mkLdcInt32 x)))); + (["ldc";"i4";"s"], (fun x -> ((mkLdcInt32 x)))); ] : Int32Instr InstrTable) + +let Int32Int32Instrs = + lazy ([ (["ldlen";"multi"], (fun (x,y) -> EI_ldlen_multi (x, y))); ] : Int32Int32Instr InstrTable) + +let DoubleInstrs = + lazy ([ (["ldc";"r4"], (fun x -> (AI_ldc (DT_R4, x)))); + (["ldc";"r8"], (fun x -> (AI_ldc (DT_R8, x)))); ] : DoubleInstr InstrTable) + +let MethodSpecInstrs = + lazy ([ ( (["call"], (fun (mspec,y) -> I_call (Normalcall,mspec,y)))) ] : InstrTable) + +let StringInstrs = + lazy ([ (["ldstr"], (fun x -> I_ldstr x)); ] : InstrTable) + +let TokenInstrs = + lazy ([ (["ldtoken"], (fun x -> I_ldtoken x)); ] : InstrTable) + + +let TypeInstrs = + lazy ([ (["ldelema"], (fun x -> I_ldelema (NormalAddress,false,ILArrayShape.SingleDimensional,x))); + (["ldelem";"any"], (fun x -> I_ldelem_any (ILArrayShape.SingleDimensional,x))); + (["stelem";"any"], (fun x -> I_stelem_any (ILArrayShape.SingleDimensional, x))); + (["newarr"], (fun x -> I_newarr (ILArrayShape.SingleDimensional,x))); + (["castclass"], (fun x -> I_castclass x)); + (["ilzero"], (fun x -> EI_ilzero x)); + (["isinst"], (fun x -> I_isinst x)); + (["initobj";"any"], (fun x -> I_initobj x)); + (["unbox";"any"], (fun x -> I_unbox_any x)); ] : InstrTable) + +let IntTypeInstrs = + lazy ([ (["ldelem";"multi"], (fun (x,y) -> (I_ldelem_any (ILArrayShape.FromRank x,y)))); + (["stelem";"multi"], (fun (x,y) -> (I_stelem_any (ILArrayShape.FromRank x,y)))); + (["newarr";"multi"], (fun (x,y) -> (I_newarr (ILArrayShape.FromRank x,y)))); + (["ldelema";"multi"], (fun (x,y) -> (I_ldelema (NormalAddress,false,ILArrayShape.FromRank x,y)))); ] : InstrTable) + +let ValueTypeInstrs = + lazy ([ (["cpobj"], (fun x -> I_cpobj x)); + (["initobj"], (fun x -> I_initobj x)); + (["ldobj"], (fun z -> I_ldobj (Aligned,Nonvolatile,z))); + (["stobj"], (fun z -> I_stobj (Aligned,Nonvolatile,z))); + (["sizeof"], (fun x -> I_sizeof x)); + (["box"], (fun x -> I_box x)); + (["unbox"], (fun x -> I_unbox x)); ] : InstrTable) + diff --git a/src/absil/ilascii.fsi b/src/absil/ilascii.fsi new file mode 100644 index 0000000..62cbaa0 --- /dev/null +++ b/src/absil/ilascii.fsi @@ -0,0 +1,67 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +/// Various constants and utilities used when parsing the ILASM format for IL +module Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiConstants + +open Internal.Utilities + +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Extensions.ILX.Types +open Microsoft.FSharp.Compiler.AbstractIL.IL + +// -------------------------------------------------------------------- +// IL Parser state - must be initialized before parsing a module +// -------------------------------------------------------------------- + +val parseILGlobals: ILGlobals ref + +// -------------------------------------------------------------------- +// IL Lexer and pretty-printer tables +// -------------------------------------------------------------------- + +type NoArgInstr = unit -> ILInstr +type Int32Instr = int32 -> ILInstr +type Int32Int32Instr = int32 * int32 -> ILInstr +type Int64Instr = int64 -> ILInstr +type DoubleInstr = ILConst -> ILInstr +type MethodSpecInstr = ILMethodSpec * ILVarArgs -> ILInstr +type TypeInstr = ILType -> ILInstr +type IntTypeInstr = int * ILType -> ILInstr +type ValueTypeInstr = ILType -> ILInstr +type StringInstr = string -> ILInstr +type TokenInstr = ILToken -> ILInstr +type SwitchInstr = ILCodeLabel list * ILCodeLabel -> ILInstr + +type InstrTable<'T> = (string list * 'T) list +type LazyInstrTable<'T> = Lazy> + +val NoArgInstrs: LazyInstrTable +val Int64Instrs: LazyInstrTable +val Int32Instrs: LazyInstrTable +val Int32Int32Instrs: LazyInstrTable +val DoubleInstrs: LazyInstrTable +val MethodSpecInstrs: LazyInstrTable +val StringInstrs: LazyInstrTable +val TokenInstrs: LazyInstrTable +val TypeInstrs: LazyInstrTable +val IntTypeInstrs: LazyInstrTable +val ValueTypeInstrs: LazyInstrTable + +#if DEBUG +val wordsOfNoArgInstr : (ILInstr -> string list) +val isNoArgInstr : (ILInstr -> bool) +#endif + + + diff --git a/src/absil/ilbinary.fs b/src/absil/ilbinary.fs new file mode 100644 index 0000000..7dca46d --- /dev/null +++ b/src/absil/ilbinary.fs @@ -0,0 +1,1031 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + + +module internal Microsoft.FSharp.Compiler.AbstractIL.Internal.BinaryConstants + +open Internal.Utilities +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.IL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library + +[] +type TableName(idx: int) = + member x.Index = idx + static member FromIndex n = TableName n + +module TableNames = + let Module = TableName 0 + let TypeRef = TableName 1 + let TypeDef = TableName 2 + let FieldPtr = TableName 3 + let Field = TableName 4 + let MethodPtr = TableName 5 + let Method = TableName 6 + let ParamPtr = TableName 7 + let Param = TableName 8 + let InterfaceImpl = TableName 9 + let MemberRef = TableName 10 + let Constant = TableName 11 + let CustomAttribute = TableName 12 + let FieldMarshal = TableName 13 + let Permission = TableName 14 + let ClassLayout = TableName 15 + let FieldLayout = TableName 16 + let StandAloneSig = TableName 17 + let EventMap = TableName 18 + let EventPtr = TableName 19 + let Event = TableName 20 + let PropertyMap = TableName 21 + let PropertyPtr = TableName 22 + let Property = TableName 23 + let MethodSemantics = TableName 24 + let MethodImpl = TableName 25 + let ModuleRef = TableName 26 + let TypeSpec = TableName 27 + let ImplMap = TableName 28 + let FieldRVA = TableName 29 + let ENCLog = TableName 30 + let ENCMap = TableName 31 + let Assembly = TableName 32 + let AssemblyProcessor = TableName 33 + let AssemblyOS = TableName 34 + let AssemblyRef = TableName 35 + let AssemblyRefProcessor = TableName 36 + let AssemblyRefOS = TableName 37 + let File = TableName 38 + let ExportedType = TableName 39 + let ManifestResource = TableName 40 + let Nested = TableName 41 + let GenericParam = TableName 42 + let MethodSpec = TableName 43 + let GenericParamConstraint = TableName 44 + + let UserStrings = TableName 0x70 (* Special encoding of embedded UserString tokens - See 1.9 Partition III *) + +/// Which tables are sorted and by which column +// +// Sorted bit-vector as stored by CLR V1: 00fa 0133 0002 0000 +// But what does this mean? The ECMA spec does not say! +// Metainfo -schema reports sorting as shown below. +// But some sorting, e.g. EventMap does not seem to show +let sortedTableInfo = + [ (TableNames.InterfaceImpl,0); + (TableNames.Constant, 1); + (TableNames.CustomAttribute, 0); + (TableNames.FieldMarshal, 0); + (TableNames.Permission, 1); + (TableNames.ClassLayout, 2); + (TableNames.FieldLayout, 1); + (TableNames.MethodSemantics, 2); + (TableNames.MethodImpl, 0); + (TableNames.ImplMap, 1); + (TableNames.FieldRVA, 1); + (TableNames.Nested, 0); + (TableNames.GenericParam, 2); + (TableNames.GenericParamConstraint, 0); ] + +[] +type TypeDefOrRefTag(tag: int32) = member x.Tag = tag +let tdor_TypeDef = TypeDefOrRefTag 0x00 +let tdor_TypeRef = TypeDefOrRefTag 0x01 +let tdor_TypeSpec = TypeDefOrRefTag 0x2 +let mkTypeDefOrRefOrSpecTag x = + match x with + | 0x00 -> tdor_TypeDef // nb. avoid reallocation + | 0x01 -> tdor_TypeRef + | 0x02 -> tdor_TypeSpec + | _ -> invalidArg "x" "mkTypeDefOrRefOrSpecTag" + +[] +type HasConstantTag(tag: int32) = member x.Tag = tag +let hc_FieldDef = HasConstantTag 0x0 +let hc_ParamDef = HasConstantTag 0x1 +let hc_Property = HasConstantTag 0x2 + +let mkHasConstantTag x = + match x with + | 0x00 -> hc_FieldDef + | 0x01 -> hc_ParamDef + | 0x02 -> hc_Property + | _ -> invalidArg "x" "mkHasConstantTag" + +[] +type HasCustomAttributeTag(tag: int32) = member x.Tag = tag +let hca_MethodDef = HasCustomAttributeTag 0x0 +let hca_FieldDef = HasCustomAttributeTag 0x1 +let hca_TypeRef = HasCustomAttributeTag 0x2 +let hca_TypeDef = HasCustomAttributeTag 0x3 +let hca_ParamDef = HasCustomAttributeTag 0x4 +let hca_InterfaceImpl = HasCustomAttributeTag 0x5 +let hca_MemberRef = HasCustomAttributeTag 0x6 +let hca_Module = HasCustomAttributeTag 0x7 +let hca_Permission = HasCustomAttributeTag 0x8 +let hca_Property = HasCustomAttributeTag 0x9 +let hca_Event = HasCustomAttributeTag 0xa +let hca_StandAloneSig = HasCustomAttributeTag 0xb +let hca_ModuleRef = HasCustomAttributeTag 0xc +let hca_TypeSpec = HasCustomAttributeTag 0xd +let hca_Assembly = HasCustomAttributeTag 0xe +let hca_AssemblyRef = HasCustomAttributeTag 0xf +let hca_File = HasCustomAttributeTag 0x10 +let hca_ExportedType = HasCustomAttributeTag 0x11 +let hca_ManifestResource = HasCustomAttributeTag 0x12 +let hca_GenericParam = HasCustomAttributeTag 0x13 +let hca_GenericParamConstraint = HasCustomAttributeTag 0x14 +let hca_MethodSpec = HasCustomAttributeTag 0x15 + +let mkHasCustomAttributeTag x = + match x with + | 0x00 -> hca_MethodDef + | 0x01 -> hca_FieldDef + | 0x02 -> hca_TypeRef + | 0x03 -> hca_TypeDef + | 0x04 -> hca_ParamDef + | 0x05 -> hca_InterfaceImpl + | 0x06 -> hca_MemberRef + | 0x07 -> hca_Module + | 0x08 -> hca_Permission + | 0x09 -> hca_Property + | 0x0a -> hca_Event + | 0x0b -> hca_StandAloneSig + | 0x0c -> hca_ModuleRef + | 0x0d -> hca_TypeSpec + | 0x0e -> hca_Assembly + | 0x0f -> hca_AssemblyRef + | 0x10 -> hca_File + | 0x11 -> hca_ExportedType + | 0x12 -> hca_ManifestResource + | 0x13 -> hca_GenericParam + | 0x14 -> hca_GenericParamConstraint + | 0x15 -> hca_MethodSpec + | _ -> HasCustomAttributeTag x + +[] +type HasFieldMarshalTag(tag: int32) = member x.Tag = tag +let hfm_FieldDef = HasFieldMarshalTag 0x00 +let hfm_ParamDef = HasFieldMarshalTag 0x01 + +let mkHasFieldMarshalTag x = + match x with + | 0x00 -> hfm_FieldDef + | 0x01 -> hfm_ParamDef + | _ -> HasFieldMarshalTag x + +[] +type HasDeclSecurityTag(tag: int32) = member x.Tag = tag +let hds_TypeDef = HasDeclSecurityTag 0x00 +let hds_MethodDef = HasDeclSecurityTag 0x01 +let hds_Assembly = HasDeclSecurityTag 0x02 + +let mkHasDeclSecurityTag x = + match x with + | 0x00 -> hds_TypeDef + | 0x01 -> hds_MethodDef + | 0x02 -> hds_Assembly + | _ -> HasDeclSecurityTag x + +[] +type MemberRefParentTag(tag: int32) = member x.Tag = tag +let mrp_TypeRef = MemberRefParentTag 0x01 +let mrp_ModuleRef = MemberRefParentTag 0x02 +let mrp_MethodDef = MemberRefParentTag 0x03 +let mrp_TypeSpec = MemberRefParentTag 0x04 + +let mkMemberRefParentTag x = + match x with + | 0x01 -> mrp_TypeRef + | 0x02 -> mrp_ModuleRef + | 0x03 -> mrp_MethodDef + | 0x04 -> mrp_TypeSpec + | _ -> MemberRefParentTag x + +[] +type HasSemanticsTag(tag: int32) = member x.Tag = tag +let hs_Event = HasSemanticsTag 0x00 +let hs_Property = HasSemanticsTag 0x01 + +let mkHasSemanticsTag x = + match x with + | 0x00 -> hs_Event + | 0x01 -> hs_Property + | _ -> HasSemanticsTag x + +[] +type MethodDefOrRefTag(tag: int32) = member x.Tag = tag +let mdor_MethodDef = MethodDefOrRefTag 0x00 +let mdor_MemberRef = MethodDefOrRefTag 0x01 +let mdor_MethodSpec = MethodDefOrRefTag 0x02 + +let mkMethodDefOrRefTag x = + match x with + | 0x00 -> mdor_MethodDef + | 0x01 -> mdor_MemberRef + | 0x02 -> mdor_MethodSpec + | _ -> MethodDefOrRefTag x + +[] +type MemberForwardedTag(tag: int32) = member x.Tag = tag +let mf_FieldDef = MemberForwardedTag 0x00 +let mf_MethodDef = MemberForwardedTag 0x01 + +let mkMemberForwardedTag x = + match x with + | 0x00 -> mf_FieldDef + | 0x01 -> mf_MethodDef + | _ -> MemberForwardedTag x + +[] +type ImplementationTag(tag: int32) = member x.Tag = tag +let i_File = ImplementationTag 0x00 +let i_AssemblyRef = ImplementationTag 0x01 +let i_ExportedType = ImplementationTag 0x02 + +let mkImplementationTag x = + match x with + | 0x00 -> i_File + | 0x01 -> i_AssemblyRef + | 0x02 -> i_ExportedType + | _ -> ImplementationTag x + +[] +type CustomAttributeTypeTag(tag: int32) = member x.Tag = tag +let cat_MethodDef = CustomAttributeTypeTag 0x02 +let cat_MemberRef = CustomAttributeTypeTag 0x03 + +let mkILCustomAttributeTypeTag x = + match x with + | 0x02 -> cat_MethodDef + | 0x03 -> cat_MemberRef + | _ -> CustomAttributeTypeTag x + +[] +type ResolutionScopeTag(tag: int32) = member x.Tag = tag +let rs_Module = ResolutionScopeTag 0x00 +let rs_ModuleRef = ResolutionScopeTag 0x01 +let rs_AssemblyRef = ResolutionScopeTag 0x02 +let rs_TypeRef = ResolutionScopeTag 0x03 + +let mkResolutionScopeTag x = + match x with + | 0x00 -> rs_Module + | 0x01 -> rs_ModuleRef + | 0x02 -> rs_AssemblyRef + | 0x03 -> rs_TypeRef + | _ -> ResolutionScopeTag x + +[] +type TypeOrMethodDefTag(tag: int32) = member x.Tag = tag +let tomd_TypeDef = TypeOrMethodDefTag 0x00 +let tomd_MethodDef = TypeOrMethodDefTag 0x01 + +let mkTypeOrMethodDefTag x = + match x with + | 0x00 -> tomd_TypeDef + | 0x01 -> tomd_MethodDef + | _ -> TypeOrMethodDefTag x + +let et_END = 0x00uy +let et_VOID = 0x01uy +let et_BOOLEAN = 0x02uy +let et_CHAR = 0x03uy +let et_I1 = 0x04uy +let et_U1 = 0x05uy +let et_I2 = 0x06uy +let et_U2 = 0x07uy +let et_I4 = 0x08uy +let et_U4 = 0x09uy +let et_I8 = 0x0Auy +let et_U8 = 0x0Buy +let et_R4 = 0x0Cuy +let et_R8 = 0x0Duy +let et_STRING = 0x0Euy +let et_PTR = 0x0Fuy +let et_BYREF = 0x10uy +let et_VALUETYPE = 0x11uy +let et_CLASS = 0x12uy +let et_VAR = 0x13uy +let et_ARRAY = 0x14uy +let et_WITH = 0x15uy +let et_TYPEDBYREF = 0x16uy +let et_I = 0x18uy +let et_U = 0x19uy +let et_FNPTR = 0x1Buy +let et_OBJECT = 0x1Cuy +let et_SZARRAY = 0x1Duy +let et_MVAR = 0x1euy +let et_CMOD_REQD = 0x1Fuy +let et_CMOD_OPT = 0x20uy + +let et_SENTINEL = 0x41uy // sentinel for varargs +let et_PINNED = 0x45uy + + +let i_nop = 0x00 +let i_break = 0x01 +let i_ldarg_0 = 0x02 +let i_ldarg_1 = 0x03 +let i_ldarg_2 = 0x04 +let i_ldarg_3 = 0x05 +let i_ldloc_0 = 0x06 +let i_ldloc_1 = 0x07 +let i_ldloc_2 = 0x08 +let i_ldloc_3 = 0x09 +let i_stloc_0 = 0x0a +let i_stloc_1 = 0x0b +let i_stloc_2 = 0x0c +let i_stloc_3 = 0x0d +let i_ldarg_s = 0x0e +let i_ldarga_s = 0x0f +let i_starg_s = 0x10 +let i_ldloc_s = 0x11 +let i_ldloca_s = 0x12 +let i_stloc_s = 0x13 +let i_ldnull = 0x14 +let i_ldc_i4_m1 = 0x15 +let i_ldc_i4_0 = 0x16 +let i_ldc_i4_1 = 0x17 +let i_ldc_i4_2 = 0x18 +let i_ldc_i4_3 = 0x19 +let i_ldc_i4_4 = 0x1a +let i_ldc_i4_5 = 0x1b +let i_ldc_i4_6 = 0x1c +let i_ldc_i4_7 = 0x1d +let i_ldc_i4_8 = 0x1e +let i_ldc_i4_s = 0x1f +let i_ldc_i4 = 0x20 +let i_ldc_i8 = 0x21 +let i_ldc_r4 = 0x22 +let i_ldc_r8 = 0x23 +let i_dup = 0x25 +let i_pop = 0x26 +let i_jmp = 0x27 +let i_call = 0x28 +let i_calli = 0x29 +let i_ret = 0x2a +let i_br_s = 0x2b +let i_brfalse_s = 0x2c +let i_brtrue_s = 0x2d +let i_beq_s = 0x2e +let i_bge_s = 0x2f +let i_bgt_s = 0x30 +let i_ble_s = 0x31 +let i_blt_s = 0x32 +let i_bne_un_s = 0x33 +let i_bge_un_s = 0x34 +let i_bgt_un_s = 0x35 +let i_ble_un_s = 0x36 +let i_blt_un_s = 0x37 +let i_br = 0x38 +let i_brfalse = 0x39 +let i_brtrue = 0x3a +let i_beq = 0x3b +let i_bge = 0x3c +let i_bgt = 0x3d +let i_ble = 0x3e +let i_blt = 0x3f +let i_bne_un = 0x40 +let i_bge_un = 0x41 +let i_bgt_un = 0x42 +let i_ble_un = 0x43 +let i_blt_un = 0x44 +let i_switch = 0x45 +let i_ldind_i1 = 0x46 +let i_ldind_u1 = 0x47 +let i_ldind_i2 = 0x48 +let i_ldind_u2 = 0x49 +let i_ldind_i4 = 0x4a +let i_ldind_u4 = 0x4b +let i_ldind_i8 = 0x4c +let i_ldind_i = 0x4d +let i_ldind_r4 = 0x4e +let i_ldind_r8 = 0x4f +let i_ldind_ref = 0x50 +let i_stind_ref = 0x51 +let i_stind_i1 = 0x52 +let i_stind_i2 = 0x53 +let i_stind_i4 = 0x54 +let i_stind_i8 = 0x55 +let i_stind_r4 = 0x56 +let i_stind_r8 = 0x57 +let i_add = 0x58 +let i_sub = 0x59 +let i_mul = 0x5a +let i_div = 0x5b +let i_div_un = 0x5c +let i_rem = 0x5d +let i_rem_un = 0x5e +let i_and = 0x5f +let i_or = 0x60 +let i_xor = 0x61 +let i_shl = 0x62 +let i_shr = 0x63 +let i_shr_un = 0x64 +let i_neg = 0x65 +let i_not = 0x66 +let i_conv_i1 = 0x67 +let i_conv_i2 = 0x68 +let i_conv_i4 = 0x69 +let i_conv_i8 = 0x6a +let i_conv_r4 = 0x6b +let i_conv_r8 = 0x6c +let i_conv_u4 = 0x6d +let i_conv_u8 = 0x6e +let i_callvirt = 0x6f +let i_cpobj = 0x70 +let i_ldobj = 0x71 +let i_ldstr = 0x72 +let i_newobj = 0x73 +let i_castclass = 0x74 +let i_isinst = 0x75 +let i_conv_r_un = 0x76 +let i_unbox = 0x79 +let i_throw = 0x7a +let i_ldfld = 0x7b +let i_ldflda = 0x7c +let i_stfld = 0x7d +let i_ldsfld = 0x7e +let i_ldsflda = 0x7f +let i_stsfld = 0x80 +let i_stobj = 0x81 +let i_conv_ovf_i1_un= 0x82 +let i_conv_ovf_i2_un= 0x83 +let i_conv_ovf_i4_un= 0x84 +let i_conv_ovf_i8_un= 0x85 +let i_conv_ovf_u1_un= 0x86 +let i_conv_ovf_u2_un= 0x87 +let i_conv_ovf_u4_un= 0x88 +let i_conv_ovf_u8_un= 0x89 +let i_conv_ovf_i_un = 0x8a +let i_conv_ovf_u_un = 0x8b +let i_box = 0x8c +let i_newarr = 0x8d +let i_ldlen = 0x8e +let i_ldelema = 0x8f +let i_ldelem_i1 = 0x90 +let i_ldelem_u1 = 0x91 +let i_ldelem_i2 = 0x92 +let i_ldelem_u2 = 0x93 +let i_ldelem_i4 = 0x94 +let i_ldelem_u4 = 0x95 +let i_ldelem_i8 = 0x96 +let i_ldelem_i = 0x97 +let i_ldelem_r4 = 0x98 +let i_ldelem_r8 = 0x99 +let i_ldelem_ref = 0x9a +let i_stelem_i = 0x9b +let i_stelem_i1 = 0x9c +let i_stelem_i2 = 0x9d +let i_stelem_i4 = 0x9e +let i_stelem_i8 = 0x9f +let i_stelem_r4 = 0xa0 +let i_stelem_r8 = 0xa1 +let i_stelem_ref = 0xa2 +let i_conv_ovf_i1 = 0xb3 +let i_conv_ovf_u1 = 0xb4 +let i_conv_ovf_i2 = 0xb5 +let i_conv_ovf_u2 = 0xb6 +let i_conv_ovf_i4 = 0xb7 +let i_conv_ovf_u4 = 0xb8 +let i_conv_ovf_i8 = 0xb9 +let i_conv_ovf_u8 = 0xba +let i_refanyval = 0xc2 +let i_ckfinite = 0xc3 +let i_mkrefany = 0xc6 +let i_ldtoken = 0xd0 +let i_conv_u2 = 0xd1 +let i_conv_u1 = 0xd2 +let i_conv_i = 0xd3 +let i_conv_ovf_i = 0xd4 +let i_conv_ovf_u = 0xd5 +let i_add_ovf = 0xd6 +let i_add_ovf_un = 0xd7 +let i_mul_ovf = 0xd8 +let i_mul_ovf_un = 0xd9 +let i_sub_ovf = 0xda +let i_sub_ovf_un = 0xdb +let i_endfinally = 0xdc +let i_leave = 0xdd +let i_leave_s = 0xde +let i_stind_i = 0xdf +let i_conv_u = 0xe0 +let i_arglist = 0xfe00 +let i_ceq = 0xfe01 +let i_cgt = 0xfe02 +let i_cgt_un = 0xfe03 +let i_clt = 0xfe04 +let i_clt_un = 0xfe05 +let i_ldftn = 0xfe06 +let i_ldvirtftn = 0xfe07 +let i_ldarg = 0xfe09 +let i_ldarga = 0xfe0a +let i_starg = 0xfe0b +let i_ldloc = 0xfe0c +let i_ldloca = 0xfe0d +let i_stloc = 0xfe0e +let i_localloc = 0xfe0f +let i_endfilter = 0xfe11 +let i_unaligned = 0xfe12 +let i_volatile = 0xfe13 +let i_constrained = 0xfe16 +let i_readonly = 0xfe1e +let i_tail = 0xfe14 +let i_initobj = 0xfe15 +let i_cpblk = 0xfe17 +let i_initblk = 0xfe18 +let i_rethrow = 0xfe1a +let i_sizeof = 0xfe1c +let i_refanytype = 0xfe1d + +let i_ldelem_any = 0xa3 +let i_stelem_any = 0xa4 +let i_unbox_any = 0xa5 + +let mk_ldc i = (((mkLdcInt32 (i)))) +let noArgInstrs = + lazy [ i_ldc_i4_0, mk_ldc 0; + i_ldc_i4_1, mk_ldc 1; + i_ldc_i4_2, mk_ldc 2; + i_ldc_i4_3, mk_ldc 3; + i_ldc_i4_4, mk_ldc 4; + i_ldc_i4_5, mk_ldc 5; + i_ldc_i4_6, mk_ldc 6; + i_ldc_i4_7, mk_ldc 7; + i_ldc_i4_8, mk_ldc 8; + i_ldc_i4_m1, mk_ldc (0-1); + 0x0a, (mkStloc (uint16 ( 0))); + 0x0b, (mkStloc (uint16 ( 1))); + 0x0c, (mkStloc (uint16 ( 2))); + 0x0d, (mkStloc (uint16 ( 3))); + 0x06, (mkLdloc (uint16 ( 0))); + 0x07, (mkLdloc (uint16 ( 1))); + 0x08, (mkLdloc (uint16 ( 2))); + 0x09, (mkLdloc (uint16 ( 3))); + 0x02, (mkLdarg (uint16 ( 0))); + 0x03, (mkLdarg (uint16 ( 1))); + 0x04, (mkLdarg (uint16 ( 2))); + 0x05, (mkLdarg (uint16 ( 3))); + 0x2a, (I_ret); + 0x58, (AI_add); + 0xd6, (AI_add_ovf); + 0xd7, (AI_add_ovf_un); + 0x5f, (AI_and); + 0x5b, (AI_div); + 0x5c, (AI_div_un); + 0xfe01, (AI_ceq); + 0xfe02, (AI_cgt ); + 0xfe03, (AI_cgt_un); + 0xfe04, (AI_clt); + 0xfe05, (AI_clt_un); + 0x67, ((AI_conv DT_I1)); + 0x68, ((AI_conv DT_I2)); + 0x69, ((AI_conv DT_I4)); + 0x6a, ((AI_conv DT_I8)); + 0xd3, ((AI_conv DT_I)); + 0x6b, ((AI_conv DT_R4)); + 0x6c, ((AI_conv DT_R8)); + 0xd2, ((AI_conv DT_U1)); + 0xd1, ((AI_conv DT_U2)); + 0x6d, ((AI_conv DT_U4)); + 0x6e, ((AI_conv DT_U8)); + 0xe0, ((AI_conv DT_U)); + 0x76, ((AI_conv DT_R)); + 0xb3, ((AI_conv_ovf DT_I1)); + 0xb5, ((AI_conv_ovf DT_I2)); + 0xb7, ((AI_conv_ovf DT_I4)); + 0xb9, ((AI_conv_ovf DT_I8)); + 0xd4, ((AI_conv_ovf DT_I)); + 0xb4, ((AI_conv_ovf DT_U1)); + 0xb6, ((AI_conv_ovf DT_U2)); + 0xb8, ((AI_conv_ovf DT_U4)); + 0xba, ((AI_conv_ovf DT_U8)); + 0xd5, ((AI_conv_ovf DT_U)); + 0x82, ((AI_conv_ovf_un DT_I1)); + 0x83, ((AI_conv_ovf_un DT_I2)); + 0x84, ((AI_conv_ovf_un DT_I4)); + 0x85, ((AI_conv_ovf_un DT_I8)); + 0x8a, ((AI_conv_ovf_un DT_I)); + 0x86, ((AI_conv_ovf_un DT_U1)); + 0x87, ((AI_conv_ovf_un DT_U2)); + 0x88, ((AI_conv_ovf_un DT_U4)); + 0x89, ((AI_conv_ovf_un DT_U8)); + 0x8b, ((AI_conv_ovf_un DT_U)); + 0x9c, (I_stelem DT_I1); + 0x9d, (I_stelem DT_I2); + 0x9e, (I_stelem DT_I4); + 0x9f, (I_stelem DT_I8); + 0xa0, (I_stelem DT_R4); + 0xa1, (I_stelem DT_R8); + 0x9b, (I_stelem DT_I); + 0xa2, (I_stelem DT_REF); + 0x90, (I_ldelem DT_I1); + 0x92, (I_ldelem DT_I2); + 0x94, (I_ldelem DT_I4); + 0x96, (I_ldelem DT_I8); + 0x91, (I_ldelem DT_U1); + 0x93, (I_ldelem DT_U2); + 0x95, (I_ldelem DT_U4); + 0x98, (I_ldelem DT_R4); + 0x99, (I_ldelem DT_R8); + 0x97, (I_ldelem DT_I); + 0x9a, (I_ldelem DT_REF); + 0x5a, (AI_mul ); + 0xd8, (AI_mul_ovf); + 0xd9, (AI_mul_ovf_un); + 0x5d, (AI_rem ); + 0x5e, (AI_rem_un ); + 0x62, (AI_shl ); + 0x63, (AI_shr ); + 0x64, (AI_shr_un); + 0x59, (AI_sub ); + 0xda, (AI_sub_ovf); + 0xdb, (AI_sub_ovf_un); + 0x61, (AI_xor); + 0x60, (AI_or); + 0x65, (AI_neg); + 0x66, (AI_not); + i_ldnull, (AI_ldnull); + i_dup, (AI_dup); + i_pop, (AI_pop); + i_ckfinite, (AI_ckfinite); + i_nop, AI_nop; + i_break, I_break; + i_arglist, I_arglist; + i_endfilter, I_endfilter; + i_endfinally, I_endfinally; + i_refanytype, I_refanytype; + i_localloc, I_localloc; + i_throw, I_throw; + i_ldlen, I_ldlen; + i_rethrow, I_rethrow; ];; + +let isNoArgInstr i = + match i with + | (AI_ldc (DT_I4, ILConst.I4 n)) when (-1) <= n && n <= 8 -> true + | I_stloc n | I_ldloc n | I_ldarg n when n <= 3us -> true + | I_ret + | AI_add + | AI_add_ovf + | AI_add_ovf_un + | AI_and + | AI_div + | AI_div_un + | AI_ceq + | AI_cgt + | AI_cgt_un + | AI_clt + | AI_clt_un + | AI_conv DT_I1 + | AI_conv DT_I2 + | AI_conv DT_I4 + | AI_conv DT_I8 + | AI_conv DT_I + | AI_conv DT_R4 + | AI_conv DT_R8 + | AI_conv DT_U1 + | AI_conv DT_U2 + | AI_conv DT_U4 + | AI_conv DT_U8 + | AI_conv DT_U + | AI_conv DT_R + | AI_conv_ovf DT_I1 + | AI_conv_ovf DT_I2 + | AI_conv_ovf DT_I4 + | AI_conv_ovf DT_I8 + | AI_conv_ovf DT_I + | AI_conv_ovf DT_U1 + | AI_conv_ovf DT_U2 + | AI_conv_ovf DT_U4 + | AI_conv_ovf DT_U8 + | AI_conv_ovf DT_U + | AI_conv_ovf_un DT_I1 + | AI_conv_ovf_un DT_I2 + | AI_conv_ovf_un DT_I4 + | AI_conv_ovf_un DT_I8 + | AI_conv_ovf_un DT_I + | AI_conv_ovf_un DT_U1 + | AI_conv_ovf_un DT_U2 + | AI_conv_ovf_un DT_U4 + | AI_conv_ovf_un DT_U8 + | AI_conv_ovf_un DT_U + | I_stelem DT_I1 + | I_stelem DT_I2 + | I_stelem DT_I4 + | I_stelem DT_I8 + | I_stelem DT_R4 + | I_stelem DT_R8 + | I_stelem DT_I + | I_stelem DT_REF + | I_ldelem DT_I1 + | I_ldelem DT_I2 + | I_ldelem DT_I4 + | I_ldelem DT_I8 + | I_ldelem DT_U1 + | I_ldelem DT_U2 + | I_ldelem DT_U4 + | I_ldelem DT_R4 + | I_ldelem DT_R8 + | I_ldelem DT_I + | I_ldelem DT_REF + | AI_mul + | AI_mul_ovf + | AI_mul_ovf_un + | AI_rem + | AI_rem_un + | AI_shl + | AI_shr + | AI_shr_un + | AI_sub + | AI_sub_ovf + | AI_sub_ovf_un + | AI_xor + | AI_or + | AI_neg + | AI_not + | AI_ldnull + | AI_dup + | AI_pop + | AI_ckfinite + | AI_nop + | I_break + | I_arglist + | I_endfilter + | I_endfinally + | I_refanytype + | I_localloc + | I_throw + | I_ldlen + | I_rethrow -> true + | _ -> false + +let ILCmpInstrMap = + lazy + (Dictionary.ofList + [ BI_beq , i_beq + BI_bgt , i_bgt + BI_bgt_un , i_bgt_un + BI_bge , i_bge + BI_bge_un , i_bge_un + BI_ble , i_ble + BI_ble_un , i_ble_un + BI_blt , i_blt + BI_blt_un , i_blt_un + BI_bne_un , i_bne_un + BI_brfalse , i_brfalse + BI_brtrue , i_brtrue ]) + +let ILCmpInstrRevMap = + lazy + (Dictionary.ofList + [ BI_beq , i_beq_s + BI_bgt , i_bgt_s + BI_bgt_un , i_bgt_un_s + BI_bge , i_bge_s + BI_bge_un , i_bge_un_s + BI_ble , i_ble_s + BI_ble_un , i_ble_un_s + BI_blt , i_blt_s + BI_blt_un , i_blt_un_s + BI_bne_un , i_bne_un_s + BI_brfalse , i_brfalse_s + BI_brtrue , i_brtrue_s ]) + +(* From corhdr.h *) + +let nt_VOID = 0x1uy +let nt_BOOLEAN = 0x2uy +let nt_I1 = 0x3uy +let nt_U1 = 0x4uy +let nt_I2 = 0x5uy +let nt_U2 = 0x6uy +let nt_I4 = 0x7uy +let nt_U4 = 0x8uy +let nt_I8 = 0x9uy +let nt_U8 = 0xAuy +let nt_R4 = 0xBuy +let nt_R8 = 0xCuy +let nt_SYSCHAR = 0xDuy +let nt_VARIANT = 0xEuy +let nt_CURRENCY = 0xFuy +let nt_PTR = 0x10uy +let nt_DECIMAL = 0x11uy +let nt_DATE = 0x12uy +let nt_BSTR = 0x13uy +let nt_LPSTR = 0x14uy +let nt_LPWSTR = 0x15uy +let nt_LPTSTR = 0x16uy +let nt_FIXEDSYSSTRING = 0x17uy +let nt_OBJECTREF = 0x18uy +let nt_IUNKNOWN = 0x19uy +let nt_IDISPATCH = 0x1Auy +let nt_STRUCT = 0x1Buy +let nt_INTF = 0x1Cuy +let nt_SAFEARRAY = 0x1Duy +let nt_FIXEDARRAY = 0x1Euy +let nt_INT = 0x1Fuy +let nt_UINT = 0x20uy +let nt_NESTEDSTRUCT = 0x21uy +let nt_BYVALSTR = 0x22uy +let nt_ANSIBSTR = 0x23uy +let nt_TBSTR = 0x24uy +let nt_VARIANTBOOL = 0x25uy +let nt_FUNC = 0x26uy +let nt_ASANY = 0x28uy +let nt_ARRAY = 0x2Auy +let nt_LPSTRUCT = 0x2Buy +let nt_CUSTOMMARSHALER = 0x2Cuy +let nt_ERROR = 0x2Duy +let nt_MAX = 0x50uy + +(* From c:/clrenv.i386/Crt/Inc/i386/hs.h *) + +let vt_EMPTY = 0 +let vt_NULL = 1 +let vt_I2 = 2 +let vt_I4 = 3 +let vt_R4 = 4 +let vt_R8 = 5 +let vt_CY = 6 +let vt_DATE = 7 +let vt_BSTR = 8 +let vt_DISPATCH = 9 +let vt_ERROR = 10 +let vt_BOOL = 11 +let vt_VARIANT = 12 +let vt_UNKNOWN = 13 +let vt_DECIMAL = 14 +let vt_I1 = 16 +let vt_UI1 = 17 +let vt_UI2 = 18 +let vt_UI4 = 19 +let vt_I8 = 20 +let vt_UI8 = 21 +let vt_INT = 22 +let vt_UINT = 23 +let vt_VOID = 24 +let vt_HRESULT = 25 +let vt_PTR = 26 +let vt_SAFEARRAY = 27 +let vt_CARRAY = 28 +let vt_USERDEFINED = 29 +let vt_LPSTR = 30 +let vt_LPWSTR = 31 +let vt_RECORD = 36 +let vt_FILETIME = 64 +let vt_BLOB = 65 +let vt_STREAM = 66 +let vt_STORAGE = 67 +let vt_STREAMED_OBJECT = 68 +let vt_STORED_OBJECT = 69 +let vt_BLOB_OBJECT = 70 +let vt_CF = 71 +let vt_CLSID = 72 +let vt_VECTOR = 0x1000 +let vt_ARRAY = 0x2000 +let vt_BYREF = 0x4000 + + +let ILNativeTypeMap = + lazy [ nt_CURRENCY , ILNativeType.Currency + nt_BSTR , (* COM interop *) ILNativeType.BSTR + nt_LPSTR , ILNativeType.LPSTR + nt_LPWSTR , ILNativeType.LPWSTR + nt_LPTSTR, ILNativeType.LPTSTR + nt_IUNKNOWN , (* COM interop *) ILNativeType.IUnknown + nt_IDISPATCH , (* COM interop *) ILNativeType.IDispatch + nt_BYVALSTR , ILNativeType.ByValStr + nt_TBSTR , ILNativeType.TBSTR + nt_LPSTRUCT , ILNativeType.LPSTRUCT + nt_INTF , (* COM interop *) ILNativeType.Interface + nt_STRUCT , ILNativeType.Struct + nt_ERROR , (* COM interop *) ILNativeType.Error + nt_VOID , ILNativeType.Void + nt_BOOLEAN , ILNativeType.Bool + nt_I1 , ILNativeType.Int8 + nt_I2 , ILNativeType.Int16 + nt_I4 , ILNativeType.Int32 + nt_I8, ILNativeType.Int64 + nt_R4 , ILNativeType.Single + nt_R8 , ILNativeType.Double + nt_U1 , ILNativeType.Byte + nt_U2 , ILNativeType.UInt16 + nt_U4 , ILNativeType.UInt32 + nt_U8, ILNativeType.UInt64 + nt_INT , ILNativeType.Int + nt_UINT, ILNativeType.UInt + nt_ANSIBSTR, (* COM interop *) ILNativeType.ANSIBSTR + nt_VARIANTBOOL, (* COM interop *) ILNativeType.VariantBool + nt_FUNC , ILNativeType.Method + nt_ASANY, ILNativeType.AsAny ] + +let ILNativeTypeRevMap = lazy (List.map (fun (x,y) -> (y,x)) (Lazy.force ILNativeTypeMap)) + +let ILVariantTypeMap = + lazy [ ILNativeVariant.Empty , vt_EMPTY + ILNativeVariant.Null , vt_NULL + ILNativeVariant.Variant , vt_VARIANT + ILNativeVariant.Currency , vt_CY + ILNativeVariant.Decimal , vt_DECIMAL + ILNativeVariant.Date , vt_DATE + ILNativeVariant.BSTR , vt_BSTR + ILNativeVariant.LPSTR , vt_LPSTR + ILNativeVariant.LPWSTR , vt_LPWSTR + ILNativeVariant.IUnknown , vt_UNKNOWN + ILNativeVariant.IDispatch , vt_DISPATCH + ILNativeVariant.SafeArray , vt_SAFEARRAY + ILNativeVariant.Error , vt_ERROR + ILNativeVariant.HRESULT , vt_HRESULT + ILNativeVariant.CArray , vt_CARRAY + ILNativeVariant.UserDefined , vt_USERDEFINED + ILNativeVariant.Record , vt_RECORD + ILNativeVariant.FileTime , vt_FILETIME + ILNativeVariant.Blob , vt_BLOB + ILNativeVariant.Stream , vt_STREAM + ILNativeVariant.Storage , vt_STORAGE + ILNativeVariant.StreamedObject , vt_STREAMED_OBJECT + ILNativeVariant.StoredObject , vt_STORED_OBJECT + ILNativeVariant.BlobObject , vt_BLOB_OBJECT + ILNativeVariant.CF , vt_CF + ILNativeVariant.CLSID , vt_CLSID + ILNativeVariant.Void , vt_VOID + ILNativeVariant.Bool , vt_BOOL + ILNativeVariant.Int8 , vt_I1 + ILNativeVariant.Int16 , vt_I2 + ILNativeVariant.Int32 , vt_I4 + ILNativeVariant.Int64 , vt_I8 + ILNativeVariant.Single , vt_R4 + ILNativeVariant.Double , vt_R8 + ILNativeVariant.UInt8 , vt_UI1 + ILNativeVariant.UInt16 , vt_UI2 + ILNativeVariant.UInt32 , vt_UI4 + ILNativeVariant.UInt64 , vt_UI8 + ILNativeVariant.PTR , vt_PTR + ILNativeVariant.Int , vt_INT + ILNativeVariant.UInt , vt_UINT ] + +let ILVariantTypeRevMap = lazy (List.map (fun (x,y) -> (y,x)) (Lazy.force ILVariantTypeMap)) + +let ILSecurityActionMap = + lazy + [ ILSecurityAction.Request , 0x0001 + ILSecurityAction.Demand , 0x0002 + ILSecurityAction.Assert , 0x0003 + ILSecurityAction.Deny , 0x0004 + ILSecurityAction.PermitOnly , 0x0005 + ILSecurityAction.LinkCheck , 0x0006 + ILSecurityAction.InheritCheck , 0x0007 + ILSecurityAction.ReqMin , 0x0008 + ILSecurityAction.ReqOpt , 0x0009 + ILSecurityAction.ReqRefuse , 0x000a + ILSecurityAction.PreJitGrant , 0x000b + ILSecurityAction.PreJitDeny , 0x000c + ILSecurityAction.NonCasDemand , 0x000d + ILSecurityAction.NonCasLinkDemand , 0x000e + ILSecurityAction.NonCasInheritance , 0x000f + ILSecurityAction.LinkDemandChoice , 0x0010 + ILSecurityAction.InheritanceDemandChoice , 0x0011 + ILSecurityAction.DemandChoice , 0x0012 ] + +let ILSecurityActionRevMap = lazy (List.map (fun (x,y) -> (y,x)) (Lazy.force ILSecurityActionMap)) + +let e_CorILMethod_TinyFormat = 0x02uy +let e_CorILMethod_FatFormat = 0x03uy +let e_CorILMethod_FormatMask = 0x03uy +let e_CorILMethod_MoreSects = 0x08uy +let e_CorILMethod_InitLocals = 0x10uy + + +let e_CorILMethod_Sect_EHTable = 0x1uy +let e_CorILMethod_Sect_FatFormat = 0x40uy +let e_CorILMethod_Sect_MoreSects = 0x80uy + +let e_COR_ILEXCEPTION_CLAUSE_EXCEPTION = 0x0 +let e_COR_ILEXCEPTION_CLAUSE_FILTER = 0x1 +let e_COR_ILEXCEPTION_CLAUSE_FINALLY = 0x2 +let e_COR_ILEXCEPTION_CLAUSE_FAULT = 0x4 + +let e_IMAGE_CEE_CS_CALLCONV_FASTCALL = 0x04uy +let e_IMAGE_CEE_CS_CALLCONV_STDCALL = 0x02uy +let e_IMAGE_CEE_CS_CALLCONV_THISCALL = 0x03uy +let e_IMAGE_CEE_CS_CALLCONV_CDECL = 0x01uy +let e_IMAGE_CEE_CS_CALLCONV_VARARG = 0x05uy +let e_IMAGE_CEE_CS_CALLCONV_FIELD = 0x06uy +let e_IMAGE_CEE_CS_CALLCONV_LOCAL_SIG = 0x07uy +let e_IMAGE_CEE_CS_CALLCONV_PROPERTY = 0x08uy + +let e_IMAGE_CEE_CS_CALLCONV_GENERICINST = 0x0auy +let e_IMAGE_CEE_CS_CALLCONV_GENERIC = 0x10uy +let e_IMAGE_CEE_CS_CALLCONV_INSTANCE = 0x20uy +let e_IMAGE_CEE_CS_CALLCONV_INSTANCE_EXPLICIT = 0x40uy + + diff --git a/src/absil/ilbinary.fsi b/src/absil/ilbinary.fsi new file mode 100644 index 0000000..6c20831 --- /dev/null +++ b/src/absil/ilbinary.fsi @@ -0,0 +1,555 @@ +(* (c) Microsoft Corporation. Apache 2.0 License *) + +/// Internal use only. Code and constants shared between binary reader/writer. +module internal Microsoft.FSharp.Compiler.AbstractIL.Internal.BinaryConstants + +open Internal.Utilities +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.IL +open Microsoft.FSharp.Compiler.AbstractIL.Internal + + +[] +type TableName = + member Index : int + static member FromIndex : int -> TableName + +module TableNames = + val Module : TableName + val TypeRef : TableName + val TypeDef : TableName + val FieldPtr : TableName + val Field : TableName + val MethodPtr : TableName + val Method : TableName + val ParamPtr : TableName + val Param : TableName + val InterfaceImpl : TableName + val MemberRef : TableName + val Constant : TableName + val CustomAttribute : TableName + val FieldMarshal : TableName + val Permission : TableName + val ClassLayout : TableName + val FieldLayout : TableName + val StandAloneSig : TableName + val EventMap : TableName + val EventPtr : TableName + val Event : TableName + val PropertyMap : TableName + val PropertyPtr : TableName + val Property : TableName + val MethodSemantics : TableName + val MethodImpl : TableName + val ModuleRef : TableName + val TypeSpec : TableName + val ImplMap : TableName + val FieldRVA : TableName + val ENCLog : TableName + val ENCMap : TableName + val Assembly : TableName + val AssemblyProcessor : TableName + val AssemblyOS : TableName + val AssemblyRef : TableName + val AssemblyRefProcessor : TableName + val AssemblyRefOS : TableName + val File : TableName + val ExportedType : TableName + val ManifestResource : TableName + val Nested : TableName + val GenericParam : TableName + val GenericParamConstraint : TableName + val MethodSpec : TableName + val UserStrings : TableName + +val sortedTableInfo : (TableName * int) list + +[] +type TypeDefOrRefTag = member Tag : int32 +val tdor_TypeDef : TypeDefOrRefTag +val tdor_TypeRef : TypeDefOrRefTag +val tdor_TypeSpec : TypeDefOrRefTag + +[] +type HasConstantTag = member Tag : int32 +val hc_FieldDef : HasConstantTag +val hc_ParamDef : HasConstantTag +val hc_Property : HasConstantTag + +[] +type HasCustomAttributeTag = member Tag : int32 +val hca_MethodDef : HasCustomAttributeTag +val hca_FieldDef : HasCustomAttributeTag +val hca_TypeRef : HasCustomAttributeTag +val hca_TypeDef : HasCustomAttributeTag +val hca_ParamDef : HasCustomAttributeTag +val hca_InterfaceImpl : HasCustomAttributeTag +val hca_MemberRef : HasCustomAttributeTag +val hca_Module : HasCustomAttributeTag +val hca_Permission : HasCustomAttributeTag +val hca_Property : HasCustomAttributeTag +val hca_GenericParam : HasCustomAttributeTag +val hca_Event : HasCustomAttributeTag +val hca_StandAloneSig : HasCustomAttributeTag +val hca_ModuleRef : HasCustomAttributeTag +val hca_TypeSpec : HasCustomAttributeTag +val hca_Assembly : HasCustomAttributeTag +val hca_AssemblyRef : HasCustomAttributeTag +val hca_File : HasCustomAttributeTag +val hca_ExportedType : HasCustomAttributeTag +val hca_ManifestResource : HasCustomAttributeTag + +[] +type HasFieldMarshalTag = member Tag : int32 +val hfm_FieldDef : HasFieldMarshalTag +val hfm_ParamDef : HasFieldMarshalTag + + +[] +type HasDeclSecurityTag = member Tag : int32 +val hds_TypeDef : HasDeclSecurityTag +val hds_MethodDef : HasDeclSecurityTag +val hds_Assembly : HasDeclSecurityTag + + +[] +type MemberRefParentTag = member Tag : int32 +val mrp_TypeRef : MemberRefParentTag +val mrp_ModuleRef : MemberRefParentTag +val mrp_MethodDef : MemberRefParentTag +val mrp_TypeSpec : MemberRefParentTag + + +[] +type HasSemanticsTag = member Tag : int32 +val hs_Event : HasSemanticsTag +val hs_Property : HasSemanticsTag + + +[] +type MethodDefOrRefTag = member Tag : int32 +val mdor_MethodDef : MethodDefOrRefTag +val mdor_MemberRef : MethodDefOrRefTag + + +[] +type MemberForwardedTag = member Tag : int32 +val mf_FieldDef : MemberForwardedTag +val mf_MethodDef : MemberForwardedTag + + +[] +type ImplementationTag = member Tag : int32 +val i_File : ImplementationTag +val i_AssemblyRef : ImplementationTag +val i_ExportedType : ImplementationTag + +[] +type CustomAttributeTypeTag = member Tag : int32 +val cat_MethodDef : CustomAttributeTypeTag +val cat_MemberRef : CustomAttributeTypeTag + +[] +type ResolutionScopeTag = member Tag : int32 +val rs_Module : ResolutionScopeTag +val rs_ModuleRef : ResolutionScopeTag +val rs_AssemblyRef : ResolutionScopeTag +val rs_TypeRef : ResolutionScopeTag + +[] +type TypeOrMethodDefTag = member Tag : int32 +val tomd_TypeDef : TypeOrMethodDefTag +val tomd_MethodDef : TypeOrMethodDefTag + +val mkTypeDefOrRefOrSpecTag: int32 -> TypeDefOrRefTag +val mkHasConstantTag : int32 -> HasConstantTag +val mkHasCustomAttributeTag : int32 -> HasCustomAttributeTag +val mkHasFieldMarshalTag : int32 -> HasFieldMarshalTag +val mkHasDeclSecurityTag : int32 -> HasDeclSecurityTag +val mkMemberRefParentTag : int32 -> MemberRefParentTag +val mkHasSemanticsTag : int32 -> HasSemanticsTag +val mkMethodDefOrRefTag : int32 -> MethodDefOrRefTag +val mkMemberForwardedTag : int32 -> MemberForwardedTag +val mkImplementationTag : int32 -> ImplementationTag +val mkILCustomAttributeTypeTag : int32 -> CustomAttributeTypeTag +val mkResolutionScopeTag : int32 -> ResolutionScopeTag +val mkTypeOrMethodDefTag : int32 -> TypeOrMethodDefTag + +val et_END : byte +val et_VOID : byte +val et_BOOLEAN : byte +val et_CHAR : byte +val et_I1 : byte +val et_U1 : byte +val et_I2 : byte +val et_U2 : byte +val et_I4 : byte +val et_U4 : byte +val et_I8 : byte +val et_U8 : byte +val et_R4 : byte +val et_R8 : byte +val et_STRING : byte +val et_PTR : byte +val et_BYREF : byte +val et_VALUETYPE : byte +val et_CLASS : byte +val et_VAR : byte +val et_ARRAY : byte +val et_WITH : byte +val et_TYPEDBYREF : byte +val et_I : byte +val et_U : byte +val et_FNPTR : byte +val et_OBJECT : byte +val et_SZARRAY : byte +val et_MVAR : byte +val et_CMOD_REQD : byte +val et_CMOD_OPT : byte +val et_SENTINEL : byte +val et_PINNED : byte +val i_nop : int +val i_break : int +val i_ldarg_0 : int +val i_ldarg_1 : int +val i_ldarg_2 : int +val i_ldarg_3 : int +val i_ldloc_0 : int +val i_ldloc_1 : int +val i_ldloc_2 : int +val i_ldloc_3 : int +val i_stloc_0 : int +val i_stloc_1 : int +val i_stloc_2 : int +val i_stloc_3 : int +val i_ldarg_s : int +val i_ldarga_s : int +val i_starg_s : int +val i_ldloc_s : int +val i_ldloca_s : int +val i_stloc_s : int +val i_ldnull : int +val i_ldc_i4_m1 : int +val i_ldc_i4_0 : int +val i_ldc_i4_1 : int +val i_ldc_i4_2 : int +val i_ldc_i4_3 : int +val i_ldc_i4_4 : int +val i_ldc_i4_5 : int +val i_ldc_i4_6 : int +val i_ldc_i4_7 : int +val i_ldc_i4_8 : int +val i_ldc_i4_s : int +val i_ldc_i4 : int +val i_ldc_i8 : int +val i_ldc_r4 : int +val i_ldc_r8 : int +val i_dup : int +val i_pop : int +val i_jmp : int +val i_call : int +val i_calli : int +val i_ret : int +val i_br_s : int +val i_brfalse_s : int +val i_brtrue_s : int +val i_beq_s : int +val i_bge_s : int +val i_bgt_s : int +val i_ble_s : int +val i_blt_s : int +val i_bne_un_s : int +val i_bge_un_s : int +val i_bgt_un_s : int +val i_ble_un_s : int +val i_blt_un_s : int +val i_br : int +val i_brfalse : int +val i_brtrue : int +val i_beq : int +val i_bge : int +val i_bgt : int +val i_ble : int +val i_blt : int +val i_bne_un : int +val i_bge_un : int +val i_bgt_un : int +val i_ble_un : int +val i_blt_un : int +val i_switch : int +val i_ldind_i1 : int +val i_ldind_u1 : int +val i_ldind_i2 : int +val i_ldind_u2 : int +val i_ldind_i4 : int +val i_ldind_u4 : int +val i_ldind_i8 : int +val i_ldind_i : int +val i_ldind_r4 : int +val i_ldind_r8 : int +val i_ldind_ref : int +val i_stind_ref : int +val i_stind_i1 : int +val i_stind_i2 : int +val i_stind_i4 : int +val i_stind_i8 : int +val i_stind_r4 : int +val i_stind_r8 : int +val i_add : int +val i_sub : int +val i_mul : int +val i_div : int +val i_div_un : int +val i_rem : int +val i_rem_un : int +val i_and : int +val i_or : int +val i_xor : int +val i_shl : int +val i_shr : int +val i_shr_un : int +val i_neg : int +val i_not : int +val i_conv_i1 : int +val i_conv_i2 : int +val i_conv_i4 : int +val i_conv_i8 : int +val i_conv_r4 : int +val i_conv_r8 : int +val i_conv_u4 : int +val i_conv_u8 : int +val i_callvirt : int +val i_cpobj : int +val i_ldobj : int +val i_ldstr : int +val i_newobj : int +val i_castclass : int +val i_isinst : int +val i_conv_r_un : int +val i_unbox : int +val i_throw : int +val i_ldfld : int +val i_ldflda : int +val i_stfld : int +val i_ldsfld : int +val i_ldsflda : int +val i_stsfld : int +val i_stobj : int +val i_conv_ovf_i1_un : int +val i_conv_ovf_i2_un : int +val i_conv_ovf_i4_un : int +val i_conv_ovf_i8_un : int +val i_conv_ovf_u1_un : int +val i_conv_ovf_u2_un : int +val i_conv_ovf_u4_un : int +val i_conv_ovf_u8_un : int +val i_conv_ovf_i_un : int +val i_conv_ovf_u_un : int +val i_box : int +val i_newarr : int +val i_ldlen : int +val i_ldelema : int +val i_ldelem_i1 : int +val i_ldelem_u1 : int +val i_ldelem_i2 : int +val i_ldelem_u2 : int +val i_ldelem_i4 : int +val i_ldelem_u4 : int +val i_ldelem_i8 : int +val i_ldelem_i : int +val i_ldelem_r4 : int +val i_ldelem_r8 : int +val i_ldelem_ref : int +val i_stelem_i : int +val i_stelem_i1 : int +val i_stelem_i2 : int +val i_stelem_i4 : int +val i_stelem_i8 : int +val i_stelem_r4 : int +val i_stelem_r8 : int +val i_stelem_ref : int +val i_conv_ovf_i1 : int +val i_conv_ovf_u1 : int +val i_conv_ovf_i2 : int +val i_conv_ovf_u2 : int +val i_conv_ovf_i4 : int +val i_conv_ovf_u4 : int +val i_conv_ovf_i8 : int +val i_conv_ovf_u8 : int +val i_refanyval : int +val i_ckfinite : int +val i_mkrefany : int +val i_ldtoken : int +val i_conv_u2 : int +val i_conv_u1 : int +val i_conv_i : int +val i_conv_ovf_i : int +val i_conv_ovf_u : int +val i_add_ovf : int +val i_add_ovf_un : int +val i_mul_ovf : int +val i_mul_ovf_un : int +val i_sub_ovf : int +val i_sub_ovf_un : int +val i_endfinally : int +val i_leave : int +val i_leave_s : int +val i_stind_i : int +val i_conv_u : int +val i_arglist : int +val i_ceq : int +val i_cgt : int +val i_cgt_un : int +val i_clt : int +val i_clt_un : int +val i_ldftn : int +val i_ldvirtftn : int +val i_ldarg : int +val i_ldarga : int +val i_starg : int +val i_ldloc : int +val i_ldloca : int +val i_stloc : int +val i_localloc : int +val i_endfilter : int +val i_unaligned : int +val i_volatile : int +val i_constrained : int +val i_readonly : int +val i_tail : int +val i_initobj : int +val i_cpblk : int +val i_initblk : int +val i_rethrow : int +val i_sizeof : int +val i_refanytype : int +val i_ldelem_any : int +val i_stelem_any : int +val i_unbox_any : int +val noArgInstrs : Lazy<(int * ILInstr) list> +val isNoArgInstr : ILInstr -> bool +val ILCmpInstrMap : Lazy > +val ILCmpInstrRevMap : Lazy> +val nt_VOID : byte +val nt_BOOLEAN : byte +val nt_I1 : byte +val nt_U1 : byte +val nt_I2 : byte +val nt_U2 : byte +val nt_I4 : byte +val nt_U4 : byte +val nt_I8 : byte +val nt_U8 : byte +val nt_R4 : byte +val nt_R8 : byte +val nt_SYSCHAR : byte +val nt_VARIANT : byte +val nt_CURRENCY : byte +val nt_PTR : byte +val nt_DECIMAL : byte +val nt_DATE : byte +val nt_BSTR : byte +val nt_LPSTR : byte +val nt_LPWSTR : byte +val nt_LPTSTR : byte +val nt_FIXEDSYSSTRING : byte +val nt_OBJECTREF : byte +val nt_IUNKNOWN : byte +val nt_IDISPATCH : byte +val nt_STRUCT : byte +val nt_INTF : byte +val nt_SAFEARRAY : byte +val nt_FIXEDARRAY : byte +val nt_INT : byte +val nt_UINT : byte +val nt_NESTEDSTRUCT : byte +val nt_BYVALSTR : byte +val nt_ANSIBSTR : byte +val nt_TBSTR : byte +val nt_VARIANTBOOL : byte +val nt_FUNC : byte +val nt_ASANY : byte +val nt_ARRAY : byte +val nt_LPSTRUCT : byte +val nt_CUSTOMMARSHALER : byte +val nt_ERROR : byte +val nt_MAX : byte +val vt_EMPTY : int32 +val vt_NULL : int32 +val vt_I2 : int32 +val vt_I4 : int32 +val vt_R4 : int32 +val vt_R8 : int32 +val vt_CY : int32 +val vt_DATE : int32 +val vt_BSTR : int32 +val vt_DISPATCH : int32 +val vt_ERROR : int32 +val vt_BOOL : int32 +val vt_VARIANT : int32 +val vt_UNKNOWN : int32 +val vt_DECIMAL : int32 +val vt_I1 : int32 +val vt_UI1 : int32 +val vt_UI2 : int32 +val vt_UI4 : int32 +val vt_I8 : int32 +val vt_UI8 : int32 +val vt_INT : int32 +val vt_UINT : int32 +val vt_VOID : int32 +val vt_HRESULT : int32 +val vt_PTR : int32 +val vt_SAFEARRAY : int32 +val vt_CARRAY : int32 +val vt_USERDEFINED : int32 +val vt_LPSTR : int32 +val vt_LPWSTR : int32 +val vt_RECORD : int32 +val vt_FILETIME : int32 +val vt_BLOB : int32 +val vt_STREAM : int32 +val vt_STORAGE : int32 +val vt_STREAMED_OBJECT : int32 +val vt_STORED_OBJECT : int32 +val vt_BLOB_OBJECT : int32 +val vt_CF : int32 +val vt_CLSID : int32 +val vt_VECTOR : int32 +val vt_ARRAY : int32 +val vt_BYREF : int32 +val ILNativeTypeMap : Lazy<(byte * ILNativeType) list> +val ILNativeTypeRevMap : Lazy<(ILNativeType * byte) list> +val ILVariantTypeMap : Lazy<(ILNativeVariant * int32) list> +val ILVariantTypeRevMap : Lazy<(int32 * ILNativeVariant) list> +val ILSecurityActionMap : Lazy<(ILSecurityAction * int) list> +val ILSecurityActionRevMap : Lazy<(int * ILSecurityAction) list> +val e_CorILMethod_TinyFormat : byte +val e_CorILMethod_FatFormat : byte +val e_CorILMethod_FormatMask : byte +val e_CorILMethod_MoreSects : byte +val e_CorILMethod_InitLocals : byte +val e_CorILMethod_Sect_EHTable : byte +val e_CorILMethod_Sect_FatFormat : byte +val e_CorILMethod_Sect_MoreSects : byte +val e_COR_ILEXCEPTION_CLAUSE_EXCEPTION : int +val e_COR_ILEXCEPTION_CLAUSE_FILTER : int +val e_COR_ILEXCEPTION_CLAUSE_FINALLY : int +val e_COR_ILEXCEPTION_CLAUSE_FAULT : int + +val e_IMAGE_CEE_CS_CALLCONV_FASTCALL : byte +val e_IMAGE_CEE_CS_CALLCONV_STDCALL : byte +val e_IMAGE_CEE_CS_CALLCONV_THISCALL : byte +val e_IMAGE_CEE_CS_CALLCONV_CDECL : byte +val e_IMAGE_CEE_CS_CALLCONV_VARARG : byte + +val e_IMAGE_CEE_CS_CALLCONV_FIELD : byte +val e_IMAGE_CEE_CS_CALLCONV_LOCAL_SIG : byte +val e_IMAGE_CEE_CS_CALLCONV_GENERICINST : byte +val e_IMAGE_CEE_CS_CALLCONV_PROPERTY : byte + +val e_IMAGE_CEE_CS_CALLCONV_INSTANCE : byte +val e_IMAGE_CEE_CS_CALLCONV_INSTANCE_EXPLICIT : byte +val e_IMAGE_CEE_CS_CALLCONV_GENERIC : byte + + diff --git a/src/absil/ildiag.fs b/src/absil/ildiag.fs new file mode 100644 index 0000000..9dfb974 --- /dev/null +++ b/src/absil/ildiag.fs @@ -0,0 +1,35 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +/// Configurable AppDomain-global diagnostics channel for the Abstract IL library +/// +/// REVIEW: review if we should just switch to System.Diagnostics +module internal Microsoft.FSharp.Compiler.AbstractIL.Diagnostics + +open Internal.Utilities + +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal + +let diagnosticsLog = ref (Some stdout) +let dflushn () = match !diagnosticsLog with None -> () | Some d -> d.WriteLine(); d.Flush() +let dflush () = match !diagnosticsLog with None -> () | Some d -> d.Flush() +let dprintn (s:string) = + match !diagnosticsLog with None -> () | Some d -> d.Write s; d.Write "\n"; dflush() + +let dprintf (fmt: Format<_,_,_,_>) = + Printf.kfprintf dflush (match !diagnosticsLog with None -> System.IO.TextWriter.Null | Some d -> d) fmt + +let dprintfn (fmt: Format<_,_,_,_>) = + Printf.kfprintf dflushn (match !diagnosticsLog with None -> System.IO.TextWriter.Null | Some d -> d) fmt + +let setDiagnosticsChannel s = diagnosticsLog := s diff --git a/src/absil/ildiag.fsi b/src/absil/ildiag.fsi new file mode 100644 index 0000000..57f4a3d --- /dev/null +++ b/src/absil/ildiag.fsi @@ -0,0 +1,32 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +/// Diagnostics from the AbsIL toolkit. You can reset the diagnostics +/// stream to point elsewhere, or turn it +/// off altogether by setting it to 'None'. The logging channel initally +/// points to stderr. All functions call flush() automatically. +/// +/// REVIEW: review if we should just switch to System.Diagnostics +module internal Microsoft.FSharp.Compiler.AbstractIL.Diagnostics + +open System.IO +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Core.Printf + +val public setDiagnosticsChannel: TextWriter option -> unit + +val public dprintfn: TextWriterFormat<'a> -> 'a +val public dprintf: TextWriterFormat<'a> -> 'a + +val public dprintn: string -> unit + diff --git a/src/absil/illex.fsl b/src/absil/illex.fsl new file mode 100644 index 0000000..e51e2e7 --- /dev/null +++ b/src/absil/illex.fsl @@ -0,0 +1,171 @@ + +{ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +module internal Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiLexer + +open Internal.Utilities +open Internal.Utilities.Collections +open Internal.Utilities.Text +open Internal.Utilities.Text.Lexing +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library + +open Microsoft.FSharp.Compiler.AbstractIL.Diagnostics +open Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiParser +open Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiConstants + + +let lexeme (lexbuf : LexBuffer) = new System.String(lexbuf.Lexeme) + +let unexpectedChar lexbuf = + dprintf "Unexpected character '%s'" (lexeme lexbuf); + raise Parsing.RecoverableParseError ;; + +// -------------------------------------------------------------------- +// Keywords +// -------------------------------------------------------------------- + +let keywords = + lazy [ "void",VOID; + "bool",BOOL; + "bytearray",BYTEARRAY; + "char",CHAR; + "class",CLASS; + "default",DEFAULT; + "explicit",EXPLICIT; + "float32",FLOAT32; + "float64",FLOAT64; + "instance",INSTANCE; + "int",INT; + "int16",INT16; + "int32",INT32; + "int64",INT64; + "int8",INT8; + "method",METHOD; + "native",NATIVE; + "object", OBJECT; + "string",STRING; + "uint",UINT; + "uint16",UINT16; + "uint32",UINT32; + "uint64",UINT64; + "uint8",UINT8; + "unmanaged",UNMANAGED; + "unsigned",UNSIGNED; + "value",VALUE; + "valuetype",VALUETYPE; + "vararg",VARARG ] + +// -------------------------------------------------------------------- +// Instructions +// -------------------------------------------------------------------- + +let kwdInstrTable = + lazy + (let t = HashMultiMap(1000, HashIdentity.Structural) + List.iter t.Add (Lazy.force keywords); + let addTable f l = List.iter (fun (x,i) -> t.Add (String.concat "." x,f i)) (Lazy.force l) + addTable (fun i -> INSTR_NONE i) NoArgInstrs; + addTable (fun i -> INSTR_I i) Int32Instrs; + addTable (fun i -> INSTR_I32_I32 i) Int32Int32Instrs; + addTable (fun i -> INSTR_I8 i) Int64Instrs; + addTable (fun i -> INSTR_R i) DoubleInstrs; + addTable (fun i -> INSTR_METHOD i) MethodSpecInstrs; + addTable (fun i -> INSTR_TYPE i) TypeInstrs; + addTable (fun i -> INSTR_INT_TYPE i) IntTypeInstrs; + addTable (fun i -> INSTR_VALUETYPE i) ValueTypeInstrs; + addTable (fun i -> INSTR_STRING i) StringInstrs; + addTable (fun i -> INSTR_TOK i) TokenInstrs; + t) + +let kwdOrInstr s = (Lazy.force kwdInstrTable).[s] (* words *) + +let eval = function + | '0' -> 0 | '1' -> 1 | '2' -> 2 | '3' -> 3 | '4' -> 4 | '5' -> 5 + | '6' -> 6 | '7' -> 7 | '8' -> 8 | '9' -> 9 + | 'A' -> 10 | 'B' -> 11 | 'C' -> 12 | 'D' -> 13 | 'E' -> 14 | 'F' -> 15 + | 'a' -> 10 | 'b' -> 11 | 'c' -> 12 | 'd' -> 13 | 'e' -> 14 | 'f' -> 15 + | _ -> failwith "bad hexbyte" + +let kwdOrInstrOrId s = if (Lazy.force kwdInstrTable).ContainsKey s then kwdOrInstr s else VAL_ID s + +} + +// -------------------------------------------------------------------- +// The Rules +// -------------------------------------------------------------------- +rule token = parse + | "," { COMMA } + | "." { DOT } + | "*" { STAR } + | "!" { BANG } + | "&" { AMP } + | "(" { LPAREN } + | ")" { RPAREN } + | "[" { LBRACK } + | "]" { RBRACK } + | "/" { SLASH } + | "<" { LESS } + | ">" { GREATER } + | "..." { ELIPSES } + | "::" { DCOLON } + | "+" { PLUS } + | (['0'-'9']) | (['0'-'9']['0'-'9']['0'-'9']+) + { VAL_INT64(int64(lexeme lexbuf)) } + + (* We need to be able to parse all of *) + (* ldc.r8 0. *) + (* float64(-657435.) *) + (* and int32[0...,0...] *) + (* The problem is telling an integer-followed-by-ellipses from a floating-point-nubmer-followed-by-dots *) + + | ((['0'-'9']) | (['0'-'9']['0'-'9']['0'-'9']+)) "..." + { let b = lexeme lexbuf in + VAL_INT32_ELIPSES(int32(String.sub b 0 (String.length b - 3))) } + | ['0'-'9' 'A'-'F' 'a'-'f' ] ['0'-'9' 'A'-'F' 'a'-'f' ] + { let c1 = String.get (lexeme lexbuf) 0 in + let c2 = String.get (lexeme lexbuf) 1 in + if c1 >= '0' && c1 <= '9' && c2 >= '0' && c2 <= '9' then + VAL_INT64(int64 (10*eval c1 + eval c2) ) + else VAL_ID(lexeme lexbuf) } + | '0' 'x' ['0'-'9' 'a'-'f' 'A'-'F']+ + { VAL_INT64(int64(lexeme lexbuf)) } + | "FFFFFF" ['0'-'9' 'A'-'F' 'a'-'f' ] ['0'-'9' 'A'-'F' 'a'-'f' ] + { let c1 = (lexeme lexbuf).[6] in + let c2 = (lexeme lexbuf).[7] in + if c1 >= '0' && c1 <= '9' && c2 >= '0' && c2 <= '9' then + VAL_INT64(int64 (10*eval c1 + eval c2)) + else VAL_ID(lexeme lexbuf) } + + | '-' ['0'-'9']+ + { VAL_INT64(int64(lexeme lexbuf)) } + | ('+'|'-')? ['0'-'9']+ ('.' ['0' - '9']*)? (('E'|'e') ('-'|'+')? ['0' - '9']+)? + { VAL_FLOAT64( (float (lexeme lexbuf)) ) } + + | ("conv"|"cgt"|"clt"|"ceq"|"add"|"sub"|"div"|"rem"|"mul"|"beq"|"bne"|"cne"|"ldarga"|"ldloca"|"ldind"|"newarr"|"shr"|"starg"|"stind"|"ldelem"|"ldelema"|"ldlen"|"stelem"|"unbox"|"box"|"initobj") '.' ['a'-'z' 'A'-'Z' '0'-'9' '.']+ + { let s = (lexeme lexbuf) in kwdOrInstr s } + | [ '`' '\128'-'\255' '@' '?' '$' 'a'-'z' 'A'-'Z' '_'] [ '`' '\128'-'\255' '$' 'a'-'z' 'A'-'Z' '0'-'9' '-' '_' '@' '$' ] * + { kwdOrInstrOrId (lexeme lexbuf) } + | [ '`' '\128'-'\255' '@' '?' '$' 'a'-'z' 'A'-'Z' '_'] [ '`' '\128'-'\255' '$' 'a'-'z' 'A'-'Z' '0'-'9' '-' '_' '@' '$' ]+ + ('.' [ '`' '\128'-'\255' '@' '?' '$' 'a'-'z' 'A'-'Z' '_'] [ '`' '\128'-'\255' '$' 'a'-'z' 'A'-'Z' '0'-'9' '-' '_' '@' '$' ] +)+ + { VAL_DOTTEDNAME(lexeme lexbuf) } + + | [' ' '\t' '\r' '\n'] + { token lexbuf } + | _ + { unexpectedChar lexbuf } + | eof + { EOF } + diff --git a/src/absil/illib.fs b/src/absil/illib.fs new file mode 100644 index 0000000..3b7bfb5 --- /dev/null +++ b/src/absil/illib.fs @@ -0,0 +1,1508 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + + +module (* internal *) Microsoft.FSharp.Compiler.AbstractIL.Internal.Library +#nowarn "1178" // The struct, record or union type 'internal_instr_extension' is not structurally comparable because the type + + +open System +open System.Collections +open System.Collections.Generic +open Internal.Utilities +open Internal.Utilities.Collections + +// Logical shift right treating int32 as unsigned integer. +// Code that uses this should probably be adjusted to use unsigned integer types. +let (>>>&) (x:int32) (n:int32) = int32 (uint32 x >>> n) + +let notlazy v = Lazy.CreateFromValue v + +let isSome x = match x with None -> false | _ -> true +let isNone x = match x with None -> true | _ -> false +let isNil x = match x with [] -> true | _ -> false +let nonNil x = match x with [] -> false | _ -> true +let isNull (x : 'T) = match (x :> obj) with null -> true | _ -> false +let isNonNull (x : 'T) = match (x :> obj) with null -> false | _ -> true +let nonNull msg x = if isNonNull x then x else failwith ("null: " ^ msg) +let (===) x y = LanguagePrimitives.PhysicalEquality x y + +//------------------------------------------------------------------------- +// Library: projections +//------------------------------------------------------------------------ + +let foldOn p f z x = f z (p x) + +let notFound() = raise (KeyNotFoundException()) + +module Order = + let orderBy (p : 'T -> 'U) = + { new IComparer<'T> with member __.Compare(x,xx) = compare (p x) (p xx) } + + let orderOn p (pxOrder: IComparer<'U>) = + { new IComparer<'T> with member __.Compare(x,xx) = pxOrder.Compare (p x, p xx) } + + let toFunction (pxOrder: IComparer<'U>) x y = pxOrder.Compare(x,y) + +//------------------------------------------------------------------------- +// Library: arrays,lists,options +//------------------------------------------------------------------------- + +module Array = + + let mapq f inp = + match inp with + | [| |] -> inp + | _ -> + let res = Array.map f inp + let len = inp.Length + let mutable eq = true + let mutable i = 0 + while eq && i < len do + if not (inp.[i] === res.[i]) then eq <- false; + i <- i + 1 + if eq then inp else res + + let forall2 f (arr1:'T array) (arr2:'T array) = + let len1 = arr1.Length + let len2 = arr2.Length + if len1 <> len2 then invalidArg "Array.forall2" "len1" + let rec loop i = (i >= len1) || (f arr1.[i] arr2.[i] && loop (i+1)) + loop 0 + + let lengthsEqAndForall2 p l1 l2 = + Array.length l1 = Array.length l2 && + Array.forall2 p l1 l2 + + let mapFold f s l = + let mutable acc = s + let n = Array.length l + let mutable res = Array.zeroCreate n + for i = 0 to n - 1 do + let h',s' = f acc l.[i] + res.[i] <- h'; + acc <- s' + res, acc + + + // REVIEW: systematically eliminate fmap/mapFold duplication. + // They only differ by the tuple returned by the function. + let fmap f s l = + let mutable acc = s + let n = Array.length l + let mutable res = Array.zeroCreate n + for i = 0 to n - 1 do + let s',h' = f acc l.[i] + res.[i] <- h' + acc <- s' + acc, res + + let order (eltOrder: IComparer<'T>) = + { new IComparer> with + member __.Compare(xs,ys) = + let c = compare xs.Length ys.Length + if c <> 0 then c else + let rec loop i = + if i >= xs.Length then 0 else + let c = eltOrder.Compare(xs.[i], ys.[i]) + if c <> 0 then c else + loop (i+1) + loop 0 } + + let existsOne p l = + let rec forallFrom p l n = + (n >= Array.length l) || (p l.[n] && forallFrom p l (n+1)) + + let rec loop p l n = + (n < Array.length l) && + (if p l.[n] then forallFrom (fun x -> not (p x)) l (n+1) else loop p l (n+1)) + + loop p l 0 + + + let findFirstIndexWhereTrue (arr: _[]) p = + let rec look lo hi = + assert ((lo >= 0) && (hi >= 0)) + assert ((lo <= arr.Length) && (hi <= arr.Length)) + if lo = hi then lo + else + let i = (lo+hi)/2 + if p arr.[i] then + if i = 0 then i + else + if p arr.[i-1] then + look lo i + else + i + else + // not true here, look after + look (i+1) hi + look 0 arr.Length + + +module Option = + let mapFold f s opt = + match opt with + | None -> None,s + | Some x -> let x',s' = f s x in Some x',s' + + let otherwise opt dflt = + match opt with + | None -> dflt + | Some x -> x + + // REVIEW: systematically eliminate fmap/mapFold duplication + let fmap f z l = + match l with + | None -> z,None + | Some x -> let z,x = f z x + z,Some x + + let fold f z x = + match x with + | None -> z + | Some x -> f z x + + +module List = + + let sortWithOrder (c: IComparer<'T>) elements = List.sortWith (Order.toFunction c) elements + + let splitAfter n l = + let rec split_after_acc n l1 l2 = if n <= 0 then List.rev l1,l2 else split_after_acc (n-1) ((List.head l2):: l1) (List.tail l2) + split_after_acc n [] l + + let existsi f xs = + let rec loop i xs = match xs with [] -> false | h::t -> f i h || loop (i+1) t + loop 0 xs + + let lengthsEqAndForall2 p l1 l2 = + List.length l1 = List.length l2 && + List.forall2 p l1 l2 + + let rec findi n f l = + match l with + | [] -> None + | h::t -> if f h then Some (h,n) else findi (n+1) f t + + let chop n l = + if n = List.length l then (l,[]) else // avoids allocation unless necessary + let rec loop n l acc = + if n <= 0 then (List.rev acc,l) else + match l with + | [] -> failwith "List.chop: overchop" + | (h::t) -> loop (n-1) t (h::acc) + loop n l [] + + let take n l = + if n = List.length l then l else + let rec loop acc n l = + match l with + | [] -> List.rev acc + | x::xs -> if n<=0 then List.rev acc else loop (x::acc) (n-1) xs + + loop [] n l + + let rec drop n l = + match l with + | [] -> [] + | _::xs -> if n=0 then l else drop (n-1) xs + + + let splitChoose select l = + let rec ch acc1 acc2 l = + match l with + | [] -> List.rev acc1,List.rev acc2 + | x::xs -> + match select x with + | Choice1Of2 sx -> ch (sx::acc1) acc2 xs + | Choice2Of2 sx -> ch acc1 (sx::acc2) xs + + ch [] [] l + + let mapq (f: 'T -> 'T) inp = + assert not (typeof<'T>.IsValueType) + match inp with + | [] -> inp + | _ -> + let res = List.map f inp + let rec check l1 l2 = + match l1,l2 with + | h1::t1,h2::t2 -> + System.Runtime.CompilerServices.RuntimeHelpers.Equals(h1,h2) && check t1 t2 + | _ -> true + if check inp res then inp else res + + let frontAndBack l = + let rec loop acc l = + match l with + | [] -> + System.Diagnostics.Debug.Assert(false, "empty list") + invalidArg "l" "empty list" + | [h] -> List.rev acc,h + | h::t -> loop (h::acc) t + loop [] l + + let tryRemove f inp = + let rec loop acc l = + match l with + | [] -> None + | h :: t -> if f h then Some (h, List.rev acc @ t) else loop (h::acc) t + loop [] inp + //tryRemove (fun x -> x = 2) [ 1;2;3] = Some (2, [1;3]) + //tryRemove (fun x -> x = 3) [ 1;2;3;4;5] = Some (3, [1;2;4;5]) + //tryRemove (fun x -> x = 3) [] = None + + let headAndTail l = + match l with + | [] -> + System.Diagnostics.Debug.Assert(false, "empty list") + failwith "List.headAndTail" + | h::t -> h,t + + let zip4 l1 l2 l3 l4 = + List.zip l1 (List.zip3 l2 l3 l4) |> List.map (fun (x1,(x2,x3,x4)) -> (x1,x2,x3,x4)) + + let unzip4 l = + let a,b,cd = List.unzip3 (List.map (fun (x,y,z,w) -> (x,y,(z,w))) l) + let c,d = List.unzip cd + a,b,c,d + + let rec iter3 f l1 l2 l3 = + match l1,l2,l3 with + | h1::t1, h2::t2, h3::t3 -> f h1 h2 h3; iter3 f t1 t2 t3 + | [], [], [] -> () + | _ -> failwith "iter3" + + let takeUntil p l = + let rec loop acc l = + match l with + | [] -> List.rev acc,[] + | x::xs -> if p x then List.rev acc, l else loop (x::acc) xs + loop [] l + + let order (eltOrder: IComparer<'T>) = + { new IComparer> with + member __.Compare(xs,ys) = + let rec loop xs ys = + match xs,ys with + | [],[] -> 0 + | [],_ -> -1 + | _,[] -> 1 + | x::xs,y::ys -> let cxy = eltOrder.Compare(x,y) + if cxy=0 then loop xs ys else cxy + loop xs ys } + + + let rec last l = match l with [] -> failwith "last" | [h] -> h | _::t -> last t + module FrontAndBack = + let (|NonEmpty|Empty|) l = match l with [] -> Empty | _ -> NonEmpty(frontAndBack l) + + let replicate x n = + Array.toList (Array.create x n) + + let range n m = [ n .. m ] + + let indexNotFound() = raise (new System.Collections.Generic.KeyNotFoundException("An index satisfying the predicate was not found in the collection")) + + let rec assoc x l = + match l with + | [] -> indexNotFound() + | ((h,r)::t) -> if x = h then r else assoc x t + + let rec memAssoc x l = + match l with + | [] -> false + | ((h,_)::t) -> x = h || memAssoc x t + + let rec contains x l = match l with [] -> false | h::t -> x = h || contains x t + + let rec memq x l = + match l with + | [] -> false + | h::t -> LanguagePrimitives.PhysicalEquality x h || memq x t + + let mem x l = contains x l + + // must be tail recursive + let mapFold f s l = + // microbenchmark suggested this implementation is faster than the simpler recursive one, and this function is called a lot + let mutable s = s + let mutable r = [] + let mutable l = l + let mutable finished = false + while not finished do + match l with + | x::xs -> let x',s' = f s x + s <- s' + r <- x' :: r + l <- xs + | _ -> finished <- true + List.rev r, s + + // note: not tail recursive + let rec mapfoldBack f l s = + match l with + | [] -> ([],s) + | h::t -> + let t',s = mapfoldBack f t s + let h',s = f h s + (h'::t', s) + + let mapNth n f xs = + let rec mn i = function + | [] -> [] + | x::xs -> if i=n then f x::xs else x::mn (i+1) xs + + mn 0 xs + + let rec until p l = match l with [] -> [] | h::t -> if p h then [] else h :: until p t + + let count pred xs = List.fold (fun n x -> if pred x then n+1 else n) 0 xs + + let rec private repeatA n x acc = if n <= 0 then acc else repeatA (n-1) x (x::acc) + let repeat n x = repeatA n x [] + + (* WARNING: not tail-recursive *) + let mapHeadTail fhead ftail = function + | [] -> [] + | [x] -> [fhead x] + | x::xs -> fhead x :: List.map ftail xs + + let collectFold f s l = + let l, s = mapFold f s l + List.concat l, s + + let singleton x = [x] + + // note: must be tail-recursive + let rec private fmapA f z l acc = + match l with + | [] -> z,List.rev acc + | x::xs -> let z,x = f z x + fmapA f z xs (x::acc) + + // note: must be tail-recursive + // REVIEW: systematically eliminate fmap/mapFold duplication + let fmap f z l = fmapA f z l [] + + let collect2 f xs ys = List.concat (List.map2 f xs ys) + + let iterSquared f xss = xss |> List.iter (List.iter f) + let collectSquared f xss = xss |> List.collect (List.collect f) + let mapSquared f xss = xss |> List.map (List.map f) + let mapfoldSquared f xss = xss |> mapFold (mapFold f) + let forallSquared f xss = xss |> List.forall (List.forall f) + let mapiSquared f xss = xss |> List.mapi (fun i xs -> xs |> List.mapi (fun j x -> f i j x)) + let existsSquared f xss = xss |> List.exists (fun xs -> xs |> List.exists (fun x -> f x)) + +module String = + let indexNotFound() = raise (new System.Collections.Generic.KeyNotFoundException("An index for the character was not found in the string")) + + let make (n: int) (c: char) : string = new System.String(c, n) + + let get (str:string) i = str.[i] + + let sub (s:string) (start:int) (len:int) = s.Substring(start,len) + + let index (s:string) (c:char) = + let r = s.IndexOf(c) + if r = -1 then indexNotFound() else r + + let rindex (s:string) (c:char) = + let r = s.LastIndexOf(c) + if r = -1 then indexNotFound() else r + + let contains (s:string) (c:char) = + s.IndexOf(c,0,String.length s) <> -1 + + let order = LanguagePrimitives.FastGenericComparer + + let lowercase (s:string) = + s.ToLowerInvariant() + + let uppercase (s:string) = + s.ToUpperInvariant() + + let isUpper (s:string) = + s.Length >= 1 && System.Char.IsUpper s.[0] && not (System.Char.IsLower s.[0]) + + let capitalize (s:string) = + if s.Length = 0 then s + else uppercase s.[0..0] + s.[ 1.. s.Length - 1 ] + + let uncapitalize (s:string) = + if s.Length = 0 then s + else lowercase s.[0..0] + s.[ 1.. s.Length - 1 ] + + + let tryDropPrefix (s:string) (t:string) = + if s.StartsWith t then + Some s.[t.Length..s.Length - 1] + else + None + + let tryDropSuffix (s:string) (t:string) = + if s.EndsWith t then + Some s.[0..s.Length - t.Length - 1] + else + None + + let hasPrefix s t = isSome (tryDropPrefix s t) + let dropPrefix s t = match (tryDropPrefix s t) with Some(res) -> res | None -> failwith "dropPrefix" + + let dropSuffix s t = match (tryDropSuffix s t) with Some(res) -> res | None -> failwith "dropSuffix" + +module Dictionary = + + let inline ofList l = + let dict = new System.Collections.Generic.Dictionary<_,_>(List.length l, HashIdentity.Structural) + l |> List.iter (fun (k,v) -> dict.Add(k,v)) + dict + + +// FUTURE CLEANUP: remove this adhoc collection +type Hashset<'T> = Dictionary<'T,int> +[] +module Hashset = + let create (n:int) = new Hashset<'T>(n, HashIdentity.Structural) + let add (t: Hashset<'T>) x = if not (t.ContainsKey x) then t.[x] <- 0 + let fold f (t:Hashset<'T>) acc = Seq.fold (fun z (KeyValue(x,_)) -> f x z) acc t + let ofList l = + let t = new Hashset<'T>(List.length l, HashIdentity.Structural) + l |> List.iter (fun x -> t.[x] <- 0) + t + +module Lazy = + let force (x: Lazy<'T>) = x.Force() + +//--------------------------------------------------- +// Lists as sets. This is almost always a bad data structure and should be eliminated from the compiler. + +module ListSet = + let insert e l = + if List.mem e l then l else e::l + +//--------------------------------------------------- +// Misc + +/// Get an initialization hole +let getHole r = match !r with None -> failwith "getHole" | Some x -> x + +module Map = + let tryFindMulti k map = match Map.tryFind k map with Some res -> res | None -> [] + +type ResultOrException<'TResult> = + | Result of 'TResult + | Exception of System.Exception + + +//------------------------------------------------------------------------- +// Library: extensions to flat list (immutable arrays) +//------------------------------------------------------------------------ +#if FLAT_LIST_AS_ARRAY_STRUCT +//#else +module FlatList = + + let order (eltOrder: IComparer<_>) = + { new IComparer> with + member __.Compare(xs,ys) = + match xs.array,ys.array with + | null,null -> 0 + | _,null -> 1 + | null,_ -> -1 + | arr1,arr2 -> Array.order eltOrder arr1 arr2 } + + let mapq f (x:FlatList<_>) = + match x.array with + | null -> x + | arr -> + let arr' = Array.map f arr in + let n = arr.Length in + let rec check i = if i >= n then true else arr.[i] === arr'.[i] && check (i+1) + if check 0 then x else FlatList(arr') + + let mapFold f acc (x:FlatList<_>) = + match x.array with + | null -> + FlatList.Empty,acc + | arr -> + let arr,acc = Array.mapFold f acc x.array + FlatList(arr),acc + + // REVIEW: systematically eliminate fmap/mapFold duplication + let fmap f acc (x:FlatList<_>) = + match x.array with + | null -> + acc,FlatList.Empty + | arr -> + let acc,arr = Array.fmap f acc x.array + acc,FlatList(arr) +#endif +#if FLAT_LIST_AS_LIST + +#else + +module FlatList = + let toArray xs = List.toArray xs + let choose f xs = List.choose f xs + let order eltOrder = List.order eltOrder + let mapq f (x:FlatList<_>) = List.mapq f x + let mapFold f acc (x:FlatList<_>) = List.mapFold f acc x + let fmap f acc (x:FlatList<_>) = List.fmap f acc x + +#endif + +#if FLAT_LIST_AS_ARRAY +//#else +module FlatList = + let order eltOrder = Array.order eltOrder + let mapq f x = Array.mapq f x + let mapFold f acc x = Array.mapFold f acc x + let fmap f acc x = Array.fmap f acc x +#endif + + + +/// Computations that can cooperatively yield by returning a continuation +/// +/// - Any yield of a NotYetDone should typically be "abandonable" without adverse consequences. No resource release +/// will be called when the computation is abandoned. +/// +/// - Computations suspend via a NotYetDone may use local state (mutables), where these are +/// captured by the NotYetDone closure. Computations do not need to be restartable. +/// +/// - The key thing is that you can take an Eventually value and run it with +/// Eventually.repeatedlyProgressUntilDoneOrTimeShareOver +type Eventually<'T> = + | Done of 'T + | NotYetDone of (unit -> Eventually<'T>) + +[] +module Eventually = + let rec box e = + match e with + | Done x -> Done (Operators.box x) + | NotYetDone (work) -> NotYetDone (fun () -> box (work())) + + let rec forceWhile check e = + match e with + | Done x -> Some(x) + | NotYetDone (work) -> + if not(check()) + then None + else forceWhile check (work()) + + let force e = Option.get (forceWhile (fun () -> true) e) + + /// Keep running the computation bit by bit until a time limit is reached. +#if SILVERLIGHT + // There is no Stopwatch on Silverlight, so use DateTime.Now. I'm not sure of the pros and cons of this. + // An alternative is just to always force the computation all the way to the end. + //let repeatedlyProgressUntilDoneOrTimeShareOver _timeShareInMilliseconds runner e = + // Done (runner (fun () -> force e)) + let repeatedlyProgressUntilDoneOrTimeShareOver (timeShareInMilliseconds:int64) runner e = + let rec runTimeShare e = + runner (fun () -> + let sw = System.DateTime.Now + let rec loop e = + match e with + | Done _ -> e + | NotYetDone (work) -> + let ts = System.DateTime.Now - sw + if ts.TotalMilliseconds > float timeShareInMilliseconds then + NotYetDone(fun () -> runTimeShare e) + else + loop(work()) + loop e) + runTimeShare e +#else + /// The runner gets called each time the computation is restarted + let repeatedlyProgressUntilDoneOrTimeShareOver timeShareInMilliseconds runner e = + let sw = new System.Diagnostics.Stopwatch() + let rec runTimeShare e = + runner (fun () -> + sw.Reset() + sw.Start(); + let rec loop(e) = + match e with + | Done _ -> e + | NotYetDone work -> + if sw.ElapsedMilliseconds > timeShareInMilliseconds then + sw.Stop(); + NotYetDone(fun () -> runTimeShare e) + else + loop(work()) + loop(e)) + runTimeShare e +#endif + + let rec bind k e = + match e with + | Done x -> k x + | NotYetDone work -> NotYetDone (fun () -> bind k (work())) + + let fold f acc seq = + (Done acc,seq) ||> Seq.fold (fun acc x -> acc |> bind (fun acc -> f acc x)) + + let rec catch e = + match e with + | Done x -> Done(Result x) + | NotYetDone work -> + NotYetDone (fun () -> + let res = try Result(work()) with | e -> Exception e + match res with + | Result cont -> catch cont + | Exception e -> Done(Exception e)) + + let delay f = NotYetDone (fun () -> f()) + + let tryFinally e compensation = + catch (e) + |> bind (fun res -> compensation(); + match res with + | Result v -> Eventually.Done v + | Exception e -> raise e) + + let tryWith e handler = + catch e + |> bind (function Result v -> Done v | Exception e -> handler e) + +type EventuallyBuilder() = + member x.Bind(e,k) = Eventually.bind k e + member x.Return(v) = Eventually.Done v + member x.ReturnFrom(v) = v + member x.Combine(e1,e2) = e1 |> Eventually.bind (fun () -> e2) + member x.TryWith(e,handler) = Eventually.tryWith e handler + member x.TryFinally(e,compensation) = Eventually.tryFinally e compensation + member x.Delay(f) = Eventually.delay f + member x.Zero() = Eventually.Done () + + +let eventually = new EventuallyBuilder() + +(* +let _ = eventually { return 1 } +let _ = eventually { let x = 1 in return 1 } +let _ = eventually { let! x = eventually { return 1 } in return 1 } +let _ = eventually { try return (failwith "") with _ -> return 1 } +let _ = eventually { use x = null in return 1 } +*) + +//--------------------------------------------------------------------------- +// generate unique stamps +//--------------------------------------------------------------------------- + +type UniqueStampGenerator<'T when 'T : equality>() = + let encodeTab = new Dictionary<'T,int>(HashIdentity.Structural) + let mutable nItems = 0 + let encode str = + if encodeTab.ContainsKey(str) + then + encodeTab.[str] + else + let idx = nItems + encodeTab.[str] <- idx + nItems <- nItems + 1 + idx + member this.Encode(str) = encode str + +//--------------------------------------------------------------------------- +// memoize tables (all entries cached, never collected) +//--------------------------------------------------------------------------- + +type MemoizationTable<'T,'U>(compute: 'T -> 'U, keyComparer: IEqualityComparer<'T>, ?canMemoize) = + + let table = new System.Collections.Generic.Dictionary<'T,'U>(keyComparer) + member t.Apply(x) = + if (match canMemoize with None -> true | Some f -> f x) then + let mutable res = Unchecked.defaultof<'U> + let ok = table.TryGetValue(x,&res) + if ok then res + else + lock table (fun () -> + let mutable res = Unchecked.defaultof<'U> + let ok = table.TryGetValue(x,&res) + if ok then res + else + let res = compute x + table.[x] <- res; + res) + else compute x + + +exception UndefinedException + +type LazyWithContextFailure(exn:exn) = + static let undefined = new LazyWithContextFailure(UndefinedException) + member x.Exception = exn + static member Undefined = undefined + +/// Just like "Lazy" but EVERY forcer must provide an instance of "ctxt", e.g. to help track errors +/// on forcing back to at least one sensible user location +[] +[] +type LazyWithContext<'T,'ctxt> = + { /// This field holds the result of a successful computation. It's initial value is Unchecked.defaultof + mutable value : 'T + /// This field holds either the function to run or a LazyWithContextFailure object recording the exception raised + /// from running the function. It is null if the thunk has been evaluated successfully. + mutable funcOrException: obj; + /// A helper to ensure we rethrow the "original" exception + findOriginalException : exn -> exn } + static member Create(f: ('ctxt->'T), findOriginalException) : LazyWithContext<'T,'ctxt> = + { value = Unchecked.defaultof<'T>; + funcOrException = box f; + findOriginalException = findOriginalException } + static member NotLazy(x:'T) : LazyWithContext<'T,'ctxt> = + { value = x; + funcOrException = null; + findOriginalException = id } + member x.IsDelayed = (match x.funcOrException with null -> false | :? LazyWithContextFailure -> false | _ -> true) + member x.IsForced = (match x.funcOrException with null -> true | _ -> false) + member x.Force(ctxt:'ctxt) = + match x.funcOrException with + | null -> x.value + | _ -> + // Enter the lock in case another thread is in the process of evaluting the result + System.Threading.Monitor.Enter(x); + try + x.UnsynchronizedForce(ctxt) + finally + System.Threading.Monitor.Exit(x) + + member x.UnsynchronizedForce(ctxt) = + match x.funcOrException with + | null -> x.value + | :? LazyWithContextFailure as res -> + // Re-raise the original exception + raise (x.findOriginalException res.Exception) + | :? ('ctxt -> 'T) as f -> + x.funcOrException <- box(LazyWithContextFailure.Undefined) + try + let res = f ctxt + x.value <- res; + x.funcOrException <- null; + res + with e -> + x.funcOrException <- box(new LazyWithContextFailure(e)); + reraise() + | _ -> + failwith "unreachable" + + + +// -------------------------------------------------------------------- +// Intern tables to save space. +// -------------------------------------------------------------------- + +module Tables = + let memoize f = + let t = new Dictionary<_,_>(1000, HashIdentity.Structural) + fun x -> + let mutable res = Unchecked.defaultof<_> + if t.TryGetValue(x, &res) then + res + else + res <- f x; t.[x] <- res; res + +//------------------------------------------------------------------------- +// Library: Name maps +//------------------------------------------------------------------------ + +type NameMap<'T> = Map +type NameMultiMap<'T> = NameMap<'T list> +type MultiMap<'T,'U when 'T : comparison> = Map<'T,'U list> + +[] +module NameMap = + + let empty = Map.empty + let range m = List.rev (Map.foldBack (fun _ x sofar -> x :: sofar) m []) + let foldBack f (m:NameMap<'T>) z = Map.foldBack f m z + let forall f m = Map.foldBack (fun x y sofar -> sofar && f x y) m true + let exists f m = Map.foldBack (fun x y sofar -> sofar || f x y) m false + let ofKeyedList f l = List.foldBack (fun x acc -> Map.add (f x) x acc) l Map.empty + let ofList l : NameMap<'T> = Map.ofList l + let ofFlatList (l:FlatList<_>) : NameMap<'T> = FlatList.toMap l + let toList (l: NameMap<'T>) = Map.toList l + let layer (m1 : NameMap<'T>) m2 = Map.foldBack Map.add m1 m2 + + (* not a very useful function - only called in one place - should be changed *) + let layerAdditive addf m1 m2 = + Map.foldBack (fun x y sofar -> Map.add x (addf (Map.tryFindMulti x sofar) y) sofar) m1 m2 + + // Union entries by identical key, using the provided function to union sets of values + let union unionf (ms: NameMap<_> seq) = + seq { for m in ms do yield! m } + |> Seq.groupBy (fun (KeyValue(k,_v)) -> k) + |> Seq.map (fun (k,es) -> (k,unionf (Seq.map (fun (KeyValue(_k,v)) -> v) es))) + |> Map.ofSeq + + (* For every entry in m2 find an entry in m1 and fold *) + let subfold2 errf f m1 m2 acc = + Map.foldBack (fun n x2 acc -> try f n (Map.find n m1) x2 acc with :? KeyNotFoundException -> errf n x2) m2 acc + + let suball2 errf p m1 m2 = subfold2 errf (fun _ x1 x2 acc -> p x1 x2 && acc) m1 m2 true + + let mapFold f s (l: NameMap<'T>) = + Map.foldBack (fun x y (l',s') -> let y',s'' = f s' x y in Map.add x y' l',s'') l (Map.empty,s) + + let foldBackRange f (l: NameMap<'T>) acc = Map.foldBack (fun _ y acc -> f y acc) l acc + + let filterRange f (l: NameMap<'T>) = Map.foldBack (fun x y acc -> if f y then Map.add x y acc else acc) l Map.empty + + let mapFilter f (l: NameMap<'T>) = Map.foldBack (fun x y acc -> match f y with None -> acc | Some y' -> Map.add x y' acc) l Map.empty + + let map f (l : NameMap<'T>) = Map.map (fun _ x -> f x) l + + let iter f (l : NameMap<'T>) = Map.iter (fun _k v -> f v) l + + let iteri f (l : NameMap<'T>) = Map.iter f l + + let mapi f (l : NameMap<'T>) = Map.map f l + + let partition f (l : NameMap<'T>) = Map.filter (fun _ x-> f x) l, Map.filter (fun _ x -> not (f x)) l + + let mem v (m: NameMap<'T>) = Map.containsKey v m + + let find v (m: NameMap<'T>) = Map.find v m + + let tryFind v (m: NameMap<'T>) = Map.tryFind v m + + let add v x (m: NameMap<'T>) = Map.add v x m + + let isEmpty (m: NameMap<'T>) = (Map.isEmpty m) + + let existsInRange p m = Map.foldBack (fun _ y acc -> acc || p y) m false + + let tryFindInRange p m = + Map.foldBack (fun _ y acc -> + match acc with + | None -> if p y then Some y else None + | _ -> acc) m None + +[] +module NameMultiMap = + let existsInRange f (m: NameMultiMap<'T>) = NameMap.exists (fun _ l -> List.exists f l) m + let find v (m: NameMultiMap<'T>) = match Map.tryFind v m with None -> [] | Some r -> r + let add v x (m: NameMultiMap<'T>) = NameMap.add v (x :: find v m) m + let range (m: NameMultiMap<'T>) = Map.foldBack (fun _ x sofar -> x @ sofar) m [] + let rangeReversingEachBucket (m: NameMultiMap<'T>) = Map.foldBack (fun _ x sofar -> List.rev x @ sofar) m [] + + let chooseRange f (m: NameMultiMap<'T>) = Map.foldBack (fun _ x sofar -> List.choose f x @ sofar) m [] + let map f (m: NameMultiMap<'T>) = NameMap.map (List.map f) m + let empty : NameMultiMap<'T> = Map.empty + let initBy f xs : NameMultiMap<'T> = xs |> Seq.groupBy f |> Seq.map (fun (k,v) -> (k,List.ofSeq v)) |> Map.ofSeq + let ofList (xs: (string * 'T) list) : NameMultiMap<'T> = xs |> Seq.groupBy fst |> Seq.map (fun (k,v) -> (k,List.ofSeq (Seq.map snd v))) |> Map.ofSeq + +[] +module MultiMap = + let existsInRange f (m: MultiMap<_,_>) = Map.exists (fun _ l -> List.exists f l) m + let find v (m: MultiMap<_,_>) = match Map.tryFind v m with None -> [] | Some r -> r + let add v x (m: MultiMap<_,_>) = Map.add v (x :: find v m) m + let range (m: MultiMap<_,_>) = Map.foldBack (fun _ x sofar -> x @ sofar) m [] + //let chooseRange f (m: MultiMap<_,_>) = Map.foldBack (fun _ x sofar -> List.choose f x @ sofar) m [] + let empty : MultiMap<_,_> = Map.empty + let initBy f xs : MultiMap<_,_> = xs |> Seq.groupBy f |> Seq.map (fun (k,v) -> (k,List.ofSeq v)) |> Map.ofSeq + +#if LAYERED_MAPS +/// State of immutable map collection, converted to a dictionary on first lookup. +[] +type LayeredMapState<'Key,'Value when 'Key : equality and 'Key : comparison> = + /// Collapsible(entries, size) + | Collapsible of list>> * int + /// Collapsed(frontMap, backingDict) + | Collapsed of (Map<'Key,'Value> * Dictionary<'Key,'Value>) + +/// Immutable map collection, with explicit flattening to a backing dictionary +/// +/// A layered map is still an immutable map containing a "front" +/// F# Map, but the layered map collapses its entries to a "backing" +/// dictionary at specific "add-and-collapse" points. +/// +/// For maps built from multiple "add-and-collapse" operations, +/// the process of building the collapsed maps is coalesced. +[] +type LayeredMap<'Key,'Value when 'Key : equality and 'Key : comparison>(state:LayeredMapState<'Key,'Value>) = + let mutable state = state + static let empty = LayeredMap<'Key,'Value>(LayeredMapState.Collapsible ([],0)) + + let entries() = + match state with + | LayeredMapState.Collapsible (el,n) -> (el,n) + | LayeredMapState.Collapsed (m,d) -> [(m :> seq<_>); (d :> seq<_>)], m.Count + d.Count + + let markAsCollapsible() = + match state with + | LayeredMapState.Collapsible _ -> () + | LayeredMapState.Collapsed _ -> state <- LayeredMapState.Collapsible (entries()) + + let collapse() = + match state with + | LayeredMapState.Collapsible (el, n) -> + let d = Dictionary<_,_>(n) + for e in List.rev el do + for (KeyValue(k,v)) in e do + d.[k] <- v + let p = (Map.empty, d) + state <- LayeredMapState.Collapsed p + p + | LayeredMapState.Collapsed p -> p + + let dict() = + markAsCollapsible() + let (_,dict) = collapse() + dict + + static member Empty : LayeredMap<'Key,'Value> = empty + + member x.TryGetValue (key,res:byref<'Value>) = + let (m,d) = collapse() + match m.TryFind key with + | None -> d.TryGetValue (key,&res) + | Some r -> res <- r; true + + member x.ContainsKey k = + let (map,dict) = collapse() + map.ContainsKey k || dict.ContainsKey k + + member x.Item + with get key = + // collapse on first lookup + let (map,dict) = collapse() + match map.TryFind key with + | None -> + let mutable res = Unchecked.defaultof<_> + if dict.TryGetValue (key, &res) then res + else raise <| KeyNotFoundException("the key was not found in the LayerdNameMap") + | Some v -> v + + member x.TryFind key = + let (map,dict) = collapse() + match map.TryFind key with + | None -> + let mutable res = Unchecked.defaultof<_> + if dict.TryGetValue (key, &res) then Some res else None + | res -> res + + member x.Values = dict().Values + + member x.Elements = dict() |> Seq.readonly + + member x.Add (key, value) = + match state with + | LayeredMapState.Collapsible (el,n) -> LayeredMap<_,_>(LayeredMapState.Collapsible ((([| KeyValuePair(key,value) |] :> seq<_>) :: el), n + 1)) + | LayeredMapState.Collapsed (map,dict) -> LayeredMap (LayeredMapState.Collapsed (map.Add (key,value), dict)) + + member x.AddAndMarkAsCollapsible (kvs: _[]) = + let el,n = entries() + LayeredMap<_,_>(LayeredMapState.Collapsible (((kvs :> seq<_>) :: el), n + kvs.Length)) + + member x.MarkAsCollapsible () = + markAsCollapsible() + x +#endif + +#if LAYERED_MULTI_MAP +/// State of immutable map collection, converted to a dictionary on first lookup. +[] +type LayeredMultiMapState<'Key,'Value when 'Key : equality and 'Key : comparison> = + /// Collapsible(entries, size) + | Collapsible of list>> * int + /// Collapsed(frontMap, backingDict) + | Collapsed of (MultiMap<'Key,'Value> * Dictionary<'Key,'Value list>) + +/// Immutable map collection, with explicit flattening to a backing dictionary +[] +type LayeredMultiMap<'Key,'Value when 'Key : equality and 'Key : comparison>(state:LayeredMultiMapState<'Key,'Value>) = + + let mutable state = state + static let empty = LayeredMultiMap<'Key,'Value>(LayeredMultiMapState.Collapsible ([],0)) + + let entries() = + match state with + | LayeredMultiMapState.Collapsible (el,n) -> (el,n) + | LayeredMultiMapState.Collapsed (m,d) -> [(m :> seq<_>); (d :> seq<_>)], m.Count + d.Count + + let markAsCollapsible() = + match state with + | LayeredMultiMapState.Collapsible _ -> () + | LayeredMultiMapState.Collapsed _ -> state <- LayeredMultiMapState.Collapsible (entries()) + + let collapse() = + match state with + | LayeredMultiMapState.Collapsible (el, n) -> + let d = Dictionary<_,_>(n) + for e in List.rev el do + for (KeyValue(k,vs)) in e do + for v in List.rev vs do + let prev = + let mutable res = Unchecked.defaultof<'Value list> + let ok = d.TryGetValue(k,&res) + if ok then res else [] + d.[k] <- v::prev + let p = (MultiMap.empty, d) + state <- LayeredMultiMapState.Collapsed p + p + | LayeredMultiMapState.Collapsed p -> p + + let dict() = + markAsCollapsible() + let (_,dict) = collapse() + dict + + static member Empty : LayeredMultiMap<'Key,'Value> = empty + + member x.TryGetValue (key,res:byref<'Value list>) = + let (m,d) = collapse() + match m.TryFind key with + | None -> d.TryGetValue (key,&res) + | Some res1 -> + let mutable res2 = Unchecked.defaultof<'Value list> + let ok = d.TryGetValue (key,&res2) + if ok then res <- (res1@res2); true + else res <- res1; true + + member x.ContainsKey k = + let (map,dict) = collapse() + map.ContainsKey k || dict.ContainsKey k + + member x.Item + with get key = + let mutable res = Unchecked.defaultof<_> + if x.TryGetValue (key, &res) then res + else [] + + member x.TryFind key = + let mutable res = Unchecked.defaultof<_> + if x.TryGetValue (key, &res) then Some res + else None + + member x.Values = dict().Values |> Seq.concat + + member x.Add (key, value) = + match state with + | LayeredMultiMapState.Collapsible (el,n) -> LayeredMultiMap<_,_>(LayeredMultiMapState.Collapsible ((([| KeyValuePair(key,[value]) |] :> seq<_>) :: el), n + 1)) + | LayeredMultiMapState.Collapsed (map,dict) -> LayeredMultiMap (LayeredMultiMapState.Collapsed (MultiMap.add key value map, dict)) + + member x.AddAndMarkAsCollapsible (kvs: _[]) = + let el,n = entries() + LayeredMultiMap<_,_>(LayeredMultiMapState.Collapsible ((([| for KeyValue(k,v) in kvs -> KeyValuePair(k,[v]) |] :> seq<_>) :: el), n + kvs.Length)) + + member x.MarkAsCollapsible () = + markAsCollapsible() + x + +#endif +//#if NEW_LAYERED_MAP + +/// Immutable map collection, with explicit flattening to a backing dictionary +/// +/// A layered map is still an immutable map containing a "front" +/// F# Map, but the layered map collapses its treeMap to a "backing" +/// dictionary at specific "add-and-tryCollapseToDictAndNothingElse" points. +/// +/// For maps built from multiple "add-and-tryCollapseToDictAndNothingElse" operations, +/// the process of building the collapsed maps is coalesced. +type LayeredMap<'Key,'Value when 'Key : equality and 'Key : comparison> + (// The queue of operations to build the full map, empty except during bulk-add operations + xqueue: list[], + ('Key * ('Value option -> 'Value))>>, + // The existing backing tree map (which is looked up in preference to the dictionary) + xentries: Map<'Key,'Value>, + // The existing backing dictionary (which may be null) + xdict: Dictionary<'Key,'Value>) = + static let empty = LayeredMap<'Key,'Value>([], Map.empty, null) + let mutable state = (xqueue,xentries,xdict) + + let tryCollapseToDictAndNothingElse force = + let (bulkQueue,treeMap,fastDict) = state + if not bulkQueue.IsEmpty || force then + // bulkQueue.Length + + let d = Dictionary<_,_>(treeMap.Count + (match fastDict with null -> 0 | _ -> fastDict.Count)) + begin + match fastDict with + | null -> () + | _ -> + for (KeyValue(k,v)) in fastDict do + d.[k] <- v + end + treeMap |> Map.iter (fun k v -> d.[k] <- v) + for kvsOrModify in List.rev bulkQueue do + match kvsOrModify with + | Choice1Of2 kvs -> + for (KeyValue(k,v)) in kvs do + d.[k] <- v + | Choice2Of2 (k,updatef) -> + let mutable prev = Unchecked.defaultof<_> + let n = updatef (if d.TryGetValue(k,&prev) then Some prev else None) + d.[k] <- n + + state <- ([], Map.empty, d) + d + elif treeMap.IsEmpty then fastDict + else null + + static member Empty : LayeredMap<'Key,'Value> = empty + + member x.TryGetValue (key,res:byref<'Value>) = + match tryCollapseToDictAndNothingElse false with + | null -> + let (_,treeMap,fastDict) = state + match treeMap.TryFind key with + | None -> + match fastDict with + | null -> false + | _ -> fastDict.TryGetValue (key,&res) + | Some r -> res <- r; true + | fastDict -> + //printfn "collapsed" + match fastDict with + | null -> false + | _ -> fastDict.TryGetValue (key, &res) + + member x.ContainsKey key = + let mutable res = Unchecked.defaultof<_> + x.TryGetValue(key, &res) + + member x.Item + with get key = + let mutable res = Unchecked.defaultof<_> + let ok = x.TryGetValue(key, &res) + if ok then res + else raise <| KeyNotFoundException("the key was not found in the LayerdNameMap") + + member x.TryFind key = + let mutable res = Unchecked.defaultof<_> + let ok = x.TryGetValue(key, &res) + if ok then Some res else None + + member x.Values = (tryCollapseToDictAndNothingElse true).Values + + member x.Elements = (tryCollapseToDictAndNothingElse true) |> Seq.readonly + + + member x.Add (key, value) = + let (bulkQueue,treeMap,fastDict) = state + if bulkQueue.IsEmpty then + let treeMap = treeMap.Add (key, value) + LayeredMap(bulkQueue, treeMap, fastDict) + else + // There are elements in the bulk queue, squash them down (mutating map "x"), + // then use a one-element treemap + let newFastDict = tryCollapseToDictAndNothingElse false + match newFastDict with + | null -> failwith "unreachable, bulkQueue was non empty, newFastDict should not be null" + | _ -> LayeredMap([], Map.empty.Add(key,value), newFastDict) + + member x.AddAndMarkAsCollapsible (kvs: _[]) = + if kvs.Length = 0 then x else + let (bulkQueue,treeMap,fastDict) = state + let state = (Choice1Of2 kvs::bulkQueue,treeMap,fastDict) + LayeredMap state + + /// Push an item that transforms a possible existing entry. This is used for the bulk updates + /// in nameres.fs, where, for each type we push during an "open", we must combine the + /// type with any existing entries for types in the eUnqualifiedItems table. + member x.LinearTryModifyThenLaterFlatten (key, f: 'Value option -> 'Value) = + let (bulkQueue,treeMap,fastDict) = state + let state = (Choice2Of2 (key,f)::bulkQueue,treeMap,fastDict) + LayeredMap state + + + member x.MarkAsCollapsible () = //x.AddAndMarkAsCollapsible [| |] + let (bulkQueue,treeMap,fastDict) = state + let state = (Choice1Of2 [| |]::bulkQueue,treeMap,fastDict) + LayeredMap state + + +//#endif + +//#if NEW_LAYERED_MULTI_MAP +type LayeredMultiMap<'Key,'Value when 'Key : equality and 'Key : comparison> + (xqueue: list[]>, + xentries: Map<'Key,'Value list>, + xdict: Dictionary<'Key,'Value list>) = + static let empty = LayeredMultiMap<'Key,'Value>([], Map.empty, null) + let mutable state = (xqueue,xentries,xdict) + + let tryCollapseToDictAndNothingElse force = + let (bulkQueue,treeMap,fastDict) = state + if not bulkQueue.IsEmpty || force then + // bulkQueue.Length + + let d = Dictionary<_,_>(treeMap.Count + (match fastDict with null -> 0 | _ -> fastDict.Count)) + begin + match fastDict with + | null -> () + | _ -> + for (KeyValue(k,vs)) in fastDict do + d.[k] <- vs + end + treeMap |> Map.iter (fun k vs -> + let mutable prev = Unchecked.defaultof<_> + if d.TryGetValue(k,&prev) then + d.[k] <- vs@prev + else + d.[k] <- vs) + //printfn "collapsing, bulkQueue = %A" bulkQueue + for kvs in List.rev bulkQueue do + //printfn "collapsing, bulkQueue.i] = %A" bulkQueue.[i] + for (KeyValue(k,v)) in kvs do + let mutable prev = Unchecked.defaultof<_> + if d.TryGetValue(k,&prev) then + d.[k] <- (v::prev) + else + d.[k] <- [v] + state <- ([], Map.empty, d) + d + elif treeMap.IsEmpty then fastDict + else null + + static member Empty : LayeredMultiMap<'Key,'Value> = empty + + member x.TryGetValue (key,res:byref<'Value list>) = + match tryCollapseToDictAndNothingElse false with + | null -> + let (_,treeMap,fastDict) = state + match treeMap.TryFind key with + | None -> + match fastDict with + | null -> false + | _ -> fastDict.TryGetValue (key,&res) + | Some r -> + match fastDict with + | null -> + res <- r + true + | _ -> + let mutable res2 = Unchecked.defaultof<_> + if fastDict.TryGetValue (key,&res2) then + res <- r@res2 + else + res <- r + true + | fastDict -> + //printfn "collapsed" + match fastDict with + | null -> false + | _ -> fastDict.TryGetValue (key, &res) + + member x.ContainsKey key = + let mutable res = Unchecked.defaultof<_> + x.TryGetValue(key, &res) + + member x.Item + with get key = + let mutable res = Unchecked.defaultof<_> + let ok = x.TryGetValue(key, &res) + if ok then res else [] + + member x.TryFind key = + let mutable res = Unchecked.defaultof<_> + let ok = x.TryGetValue(key, &res) + if ok then Some res else None + + member x.Values = (tryCollapseToDictAndNothingElse true).Values |> Seq.concat + + member x.Elements = (tryCollapseToDictAndNothingElse true) |> Seq.readonly + + member x.Add (key, value) = + let (bulkQueue,treeMap,fastDict) = state + if bulkQueue.IsEmpty then + let prev = match treeMap.TryFind key with None -> [] | Some vs -> vs + let treeMap = treeMap.Add (key, value::prev) + LayeredMultiMap(bulkQueue, treeMap, fastDict) + else + // There are elements in the bulk queue, squash them down (mutating map "x"), + // then use a one-element treemap + let newFastDict = tryCollapseToDictAndNothingElse false + match newFastDict with + | null -> failwith "unreachable, bulkQueue was non empty, newFastDict should not be null" + | _ -> LayeredMultiMap([], Map.empty.Add(key,[value]), newFastDict) + + member x.AddAndMarkAsCollapsible (kvs: _[]) = + if kvs.Length = 0 then x else + let (bulkQueue,treeMap,fastDict) = state + let state = (kvs::bulkQueue,treeMap,fastDict) + LayeredMultiMap state + + member x.MarkAsCollapsible () = //x.AddAndMarkAsCollapsible [| |] + let (bulkQueue,treeMap,fastDict) = state + let state = ([| |]::bulkQueue,treeMap,fastDict) + LayeredMultiMap state + +//#endif + +#if NO_LAYERED_MAP +type LayeredMap<'Key,'Value when 'Key : comparison> = Map<'Key,'Value> + +type Map<'Key,'Value when 'Key : comparison> with + static member Empty : Map<'Key,'Value> = Map.empty + + member m.TryGetValue (key,res:byref<'Value>) = + match m.TryFind key with + | None -> false + | Some r -> res <- r; true + + member x.Values = [ for (KeyValue(_,v)) in x -> v ] + member x.Elements = [ for kvp in x -> kvp ] + member x.AddAndMarkAsCollapsible (kvs: _[]) = (x,kvs) ||> Array.fold (fun x (KeyValue(k,v)) -> x.Add(k,v)) + member x.LinearTryModifyThenLaterFlatten (key, f: 'Value option -> 'Value) = x.Add (key, f (x.TryFind key)) + + member x.MarkAsCollapsible () = x + +//#endif + + +//#if NO_LAYERED_MULTI_MAP +/// Immutable map collection, with explicit flattening to a backing dictionary +[] +type LayeredMultiMap<'Key,'Value when 'Key : equality and 'Key : comparison>(contents : Map<'Key,'Value list>) = + static let empty : LayeredMultiMap<'Key,'Value> = LayeredMultiMap Map.empty + member x.Add (k,v) = LayeredMultiMap(contents.Add(k,v :: x.[k])) + member x.Item with get k = match contents.TryFind k with None -> [] | Some l -> l + member x.AddAndMarkAsCollapsible (kvs: _[]) = + let x = (x,kvs) ||> Array.fold (fun x (KeyValue(k,v)) -> x.Add(k,v)) + x.MarkAsCollapsible() + member x.MarkAsCollapsible() = x //LayeredMultiMap(contents) + member x.TryFind k = contents.TryFind k + member x.Values = [ for (KeyValue(_,v)) in contents -> v ] |> Seq.concat + static member Empty : LayeredMultiMap<'Key,'Value> = empty + +#endif + +[] +module Shim = + + open System.IO + [] + type FileSystem() = + abstract ReadAllBytesShim: fileName:string -> byte[] + default this.ReadAllBytesShim (fileName:string) = + use stream = this.FileStreamReadShim fileName + let len = stream.Length + let buf = Array.zeroCreate (int len) + stream.Read(buf, 0, (int len)) |> ignore + buf + + abstract FileStreamReadShim: fileName:string -> System.IO.Stream + abstract FileStreamCreateShim: fileName:string -> System.IO.Stream + abstract GetFullPathShim: fileName:string -> string + /// Take in a filename with an absolute path, and return the same filename + /// but canonicalized with respect to extra path separators (e.g. C:\\\\foo.txt) + /// and '..' portions + abstract SafeGetFullPath: fileName:string -> string + abstract IsPathRootedShim: path:string -> bool + + abstract IsInvalidFilename: filename:string -> bool + abstract GetTempPathShim : unit -> string + abstract GetLastWriteTimeShim: fileName:string -> System.DateTime + abstract SafeExists: fileName:string -> bool + abstract FileDelete: fileName:string -> unit + abstract AssemblyLoadFrom: fileName:string -> System.Reflection.Assembly + abstract AssemblyLoad: assemblyName:System.Reflection.AssemblyName -> System.Reflection.Assembly + +#if SILVERLIGHT + default this.AssemblyLoadFrom(fileName:string) = + let load() = + let assemblyPart = System.Windows.AssemblyPart() + let assemblyStream = this.FileStreamReadShim(fileName) + assemblyPart.Load(assemblyStream) + if System.Windows.Deployment.Current.Dispatcher.CheckAccess() then + load() + else + let resultTask = System.Threading.Tasks.TaskCompletionSource() + System.Windows.Deployment.Current.Dispatcher.BeginInvoke(Action(fun () -> resultTask.SetResult (load()))) |> ignore + resultTask.Task.Result + + default this.AssemblyLoad(assemblyName:System.Reflection.AssemblyName) = + try + System.Reflection.Assembly.Load(assemblyName.FullName) + with e -> + this.AssemblyLoadFrom(assemblyName.Name + ".dll") +#else + default this.AssemblyLoadFrom(fileName:string) = System.Reflection.Assembly.LoadFrom fileName + default this.AssemblyLoad(assemblyName:System.Reflection.AssemblyName) = System.Reflection.Assembly.Load assemblyName +#endif + + +#if SILVERLIGHT + open System.IO.IsolatedStorage + open System.Windows + open System + + let mutable FileSystem = + { new FileSystem() with + member __.FileStreamReadShim (fileName:string) = + match Application.GetResourceStream(System.Uri(fileName,System.UriKind.Relative)) with + | null -> IsolatedStorageFile.GetUserStoreForApplication().OpenFile(fileName, System.IO.FileMode.Open) :> System.IO.Stream + | resStream -> resStream.Stream + + member __.FileStreamCreateShim (fileName:string) = + System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForApplication().CreateFile(fileName) :> Stream + + member __.GetFullPathShim (fileName:string) = fileName + member __.IsPathRootedShim (pathName:string) = true + member __.SafeGetFullPath (fileName:string) = fileName + member __.IsInvalidFilename(filename:string) = + String.IsNullOrEmpty(filename) || filename.IndexOfAny(System.IO.Path.GetInvalidPathChars()) <> -1 + + member __.GetTempPathShim() = "." + + member __.GetLastWriteTimeShim (fileName:string) = + match Application.GetResourceStream(System.Uri(fileName,System.UriKind.Relative)) with + | null -> IsolatedStorageFile.GetUserStoreForApplication().GetLastAccessTime(fileName).LocalDateTime + | _resStream -> System.DateTime.Today.Date + member __.SafeExists (fileName:string) = + match Application.GetResourceStream(System.Uri(fileName,System.UriKind.Relative)) with + | null -> IsolatedStorageFile.GetUserStoreForApplication().FileExists fileName + | resStream -> resStream.Stream <> null + member __.FileDelete (fileName:string) = + match Application.GetResourceStream(System.Uri(fileName,System.UriKind.Relative)) with + | null -> IsolatedStorageFile.GetUserStoreForApplication().DeleteFile fileName + | _resStream -> () + + } +#else + + let mutable FileSystem = + { new FileSystem() with + override __.ReadAllBytesShim (fileName:string) = File.ReadAllBytes fileName + member __.FileStreamReadShim (fileName:string) = new FileStream(fileName,FileMode.Open,FileAccess.Read,FileShare.ReadWrite) :> Stream + member __.FileStreamCreateShim (fileName:string) = new FileStream(fileName,FileMode.Create,FileAccess.Write,FileShare.Read ,0x1000,false) :> Stream + member __.GetFullPathShim (fileName:string) = System.IO.Path.GetFullPath fileName + member __.SafeGetFullPath (fileName:string) = + //System.Diagnostics.Debug.Assert(Path.IsPathRooted(fileName), sprintf "SafeGetFullPath: '%s' is not absolute" fileName) + Path.GetFullPath fileName + + member __.IsPathRootedShim (path:string) = Path.IsPathRooted path + + member __.IsInvalidFilename(filename:string) = + String.IsNullOrEmpty(filename) || filename.IndexOfAny(Path.GetInvalidFileNameChars()) <> -1 + + member __.GetTempPathShim() = System.IO.Path.GetTempPath() + + member __.GetLastWriteTimeShim (fileName:string) = File.GetLastWriteTime fileName + member __.SafeExists (fileName:string) = System.IO.File.Exists fileName + member __.FileDelete (fileName:string) = System.IO.File.Delete fileName } + +#endif + + type System.Text.Encoding with + static member GetEncodingShim(n:int) = +#if SILVERLIGHT + System.Text.Encoding.GetEncoding(n.ToString()) +#else + System.Text.Encoding.GetEncoding(n) +#endif + diff --git a/src/absil/ilmorph.fs b/src/absil/ilmorph.fs new file mode 100644 index 0000000..2c4d485 --- /dev/null +++ b/src/absil/ilmorph.fs @@ -0,0 +1,540 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +module Microsoft.FSharp.Compiler.AbstractIL.Morphs + +open Internal.Utilities +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library +open Microsoft.FSharp.Compiler.AbstractIL.Diagnostics +open Microsoft.FSharp.Compiler.AbstractIL.Extensions.ILX.Types +open Microsoft.FSharp.Compiler.AbstractIL.IL + +type 'T morph = 'T -> 'T + +type EnclosingTypeDefs = ILTypeDef list * ILTypeDef + +let checking = false +let notlazy v = Lazy.CreateFromValue v + +// REVIEW: Consider removing Post-Dev11 M3 +let mutable morphCustomAttributeData = false + +let enablemorphCustomAttributeData() = + morphCustomAttributeData <- true + +let disablemorphCustomAttributeData() = + morphCustomAttributeData <- false + +let mdef_code2code f md = + let code = + match md.mdBody.Contents with + | MethodBody.IL il-> il + | _ -> failwith "mdef_code2code - method not IL" + let code' = MethodBody.IL {code with Code = f code.Code} + {md with mdBody= mkMethBodyAux code'} + +let code_block2block f (c:ILCode) = checkILCode (f c) + +let bblock_instr2instr f bb = + let instrs = bb.Instructions + let len = Array.length instrs + let res = Array.zeroCreate len + for i = 0 to len - 1 do + res.[i] <- f instrs.[i] + {bb with Instructions=res} + +// This is quite performance critical +let nonNil x = match x with [] -> false | _ -> true +let bblock_instr2instrs f bb = + let instrs = bb.Instructions + let codebuf = ref (Array.zeroCreate (Array.length instrs)) + let codebuf_size = ref 0 + for i = 0 to Array.length instrs - 1 do + let instr = instrs.[i] + let instrs = f instr + let curr = ref instrs + while nonNil !curr do + match !curr with + | instr2::t -> + let sz = !codebuf_size + let old_buf_size = Array.length !codebuf + let new_size = sz + 1 + if new_size > old_buf_size then begin + let old = !codebuf + let new' = Array.zeroCreate (max new_size (old_buf_size * 4)) + Array.blit old 0 new' 0 sz; + codebuf := new'; + end; + (!codebuf).[sz] <- instr2; + incr codebuf_size; + curr := t; + | [] -> () + {bb with Instructions = Array.sub !codebuf 0 !codebuf_size} + +// Map each instruction in a basic block to a more complicated block that +// may involve internal branching, but which will still have one entry +// label and one exit label. This is used, for example, when macro-expanding +// complicated high-level ILX instructions. +// The morphing function is told the name of the input and output labels +// that must be used for the generated block. +// Optimize the case where an instruction gets mapped to a +// straightline sequence of instructions by allowing the morphing +// function to return a special result for this case. +// +// Let [i] be the instruction being morphed. If [i] is a control-flow +// then instruction then [f] must return either a control-flow terminated +// sequence of instructions or a block both of which must targets the same labels +// (or a subset of the labels) targeted in [i]. If [i] +// is not a if not a control-flow instruction then [f] +// must return a block targeting the given output label. + +let rec countAccInstrs (xss:ILInstr list list) acc = + match xss with + | [] -> acc + | xs :: rest -> countAccInstrs rest (acc + List.length xs) + +let rec commitAccInstrsAux (xs:ILInstr list) (arr:ILInstr[]) i = + match xs with + | [] -> () + | x :: rest -> arr.[i] <- x; commitAccInstrsAux rest arr (i+1) + +// Fill in the array chunk by chunk from the end and work backwards +let rec commitAccInstrs xss arr i = + match xss with + | [] -> assert (i = 0) + | xs :: rest -> + let n = List.length xs + commitAccInstrsAux xs arr (i - n) + commitAccInstrs rest arr (i - n) + +// Write the accumulated instructions into an array. The fragments come in in reverse order. +let commitAccBasicBlock (sofar: ILInstr list list) = + let n = countAccInstrs sofar 0 + let arr = Array.zeroCreate n + commitAccInstrs sofar arr n + arr + +[] +type InstrMorph(isInstrs:bool, instrs:ILInstr list, code: ILCode) = + new (instrs:ILInstr list) = InstrMorph(true,instrs,Unchecked.defaultof<_>) + new (code:ILCode) = InstrMorph(false,Unchecked.defaultof<_>,code) + member x.IsInstrs = isInstrs + member x.Instrs = instrs + member x.Code = code + +let rec bblockLoop f bb currBBlockInpLabel currInpLabel currOutLabel sofar instrs = + match instrs with + | (i::rest) -> + let res : InstrMorph = f currInpLabel currOutLabel i + if res.IsInstrs then + // First possibility: return a list of instructions. No addresses get consumed. + bblockLoop f bb currBBlockInpLabel currInpLabel currOutLabel (res.Instrs :: sofar) rest + else + let middle_bblock = res.Code + let before_bblock = + let instrs = commitAccBasicBlock ([I_br currInpLabel] :: sofar) + mkBasicBlock {Label=currBBlockInpLabel;Instructions=instrs} + if checking && uniqueEntryOfCode middle_bblock <> currInpLabel then + dprintn ("*** warning when transforming bblock "^formatCodeLabel bb.Label^": bblock2code_instr2code: input label of returned block does not match the expected label while converting an instruction to a block."); + let afterBlocks = + match rest with + | [] -> [] // the bblock has already been transformed + | _ -> + let newInLab = generateCodeLabel () + let newOutLab = generateCodeLabel () + [ bblockLoop f bb currOutLabel newInLab newOutLab [] rest ] + + checkILCode + (mkGroupBlock + ( currInpLabel :: (match rest with [] -> [] | _ -> [ currOutLabel ]), + before_bblock :: middle_bblock :: afterBlocks)) + | [] -> + let instrs = commitAccBasicBlock sofar + mkBasicBlock {Label=currBBlockInpLabel;Instructions=instrs} + +let bblock2code_instr2code (f:ILCodeLabel -> ILCodeLabel -> ILInstr -> InstrMorph) bb = + bblockLoop f bb bb.Label (generateCodeLabel ()) (generateCodeLabel ()) [] (Array.toList bb.Instructions) + +let rec block_bblock2code_typ2typ ((fbb,fty) as f) x = + match x with + | ILBasicBlock bblock -> fbb bblock + | GroupBlock (locs,l) -> GroupBlock(locs,List.map (code_bblock2code_typ2typ f) l) + | TryBlock (tryb,seh) -> + let seh = + match seh with + | FaultBlock b -> FaultBlock (code_bblock2code_typ2typ f b) + | FinallyBlock b -> FinallyBlock (code_bblock2code_typ2typ f b) + | FilterCatchBlock clsl -> + FilterCatchBlock + (List.map (fun (flt,ctch) -> + (match flt with + CodeFilter fltcode -> CodeFilter (code_bblock2code_typ2typ f fltcode) + | TypeFilter ty -> TypeFilter (fty ty)), + code_bblock2code_typ2typ f ctch) clsl) + TryBlock (code_bblock2code_typ2typ f tryb,seh) + | RestrictBlock (ls,c) -> RestrictBlock (ls,code_bblock2code_typ2typ f c) + +and code_bblock2code_typ2typ f (c:ILCode) = checkILCode (block_bblock2code_typ2typ f c) +let topcode_bblock2code_typ2typ f (c:ILCode) = code_bblock2code_typ2typ f c + +let rec block_bblock2code f x = + match x with + | ILBasicBlock bblock -> f bblock + | GroupBlock (locs,l) -> GroupBlock(locs,List.map (code_bblock2code f) l) + | TryBlock (tryb,seh) -> + TryBlock (code_bblock2code f tryb, + begin match seh with + | FaultBlock b -> FaultBlock (code_bblock2code f b) + | FinallyBlock b -> FinallyBlock (code_bblock2code f b) + | FilterCatchBlock clsl -> + FilterCatchBlock + (List.map (fun (flt,ctch) -> + (match flt with + |CodeFilter fltcode -> CodeFilter (code_bblock2code f fltcode) + | TypeFilter _ty -> flt), + code_bblock2code f ctch) clsl) + end) + | RestrictBlock (ls,c) -> RestrictBlock (ls,code_bblock2code f c) + +and code_bblock2code f (c:ILCode) = checkILCode (block_bblock2code f c) +let topcode_bblock2code f (c:ILCode) = code_bblock2code f c + +// -------------------------------------------------------------------- +// Standard morphisms - mapping types etc. +// -------------------------------------------------------------------- + +let rec typ_tref2tref f x = + match x with + | ILType.Ptr t -> ILType.Ptr (typ_tref2tref f t) + | ILType.FunctionPointer x -> + ILType.FunctionPointer + { x with + ArgTypes=ILList.map (typ_tref2tref f) x.ArgTypes; + ReturnType=typ_tref2tref f x.ReturnType} + | ILType.Byref t -> ILType.Byref (typ_tref2tref f t) + | ILType.Boxed cr -> mkILBoxedType (tspec_tref2tref f cr) + | ILType.Value ir -> ILType.Value (tspec_tref2tref f ir) + | ILType.Array (s,ty) -> ILType.Array (s,typ_tref2tref f ty) + | ILType.TypeVar v -> ILType.TypeVar v + | ILType.Modified (req,tref,ty) -> ILType.Modified (req, f tref, typ_tref2tref f ty) + | ILType.Void -> ILType.Void +and tspec_tref2tref f (x:ILTypeSpec) = + mkILTySpecRaw(f x.TypeRef, ILList.map (typ_tref2tref f) x.GenericArgs) + +let rec typ_scoref2scoref_tyvar2typ ((_fscope,ftyvar) as fs)x = + match x with + | ILType.Ptr t -> ILType.Ptr (typ_scoref2scoref_tyvar2typ fs t) + | ILType.FunctionPointer t -> ILType.FunctionPointer (callsig_scoref2scoref_tyvar2typ fs t) + | ILType.Byref t -> ILType.Byref (typ_scoref2scoref_tyvar2typ fs t) + | ILType.Boxed cr -> mkILBoxedType (tspec_scoref2scoref_tyvar2typ fs cr) + | ILType.Value ir -> ILType.Value (tspec_scoref2scoref_tyvar2typ fs ir) + | ILType.Array (s,ty) -> ILType.Array (s,typ_scoref2scoref_tyvar2typ fs ty) + | ILType.TypeVar v -> ftyvar v + | x -> x +and tspec_scoref2scoref_tyvar2typ fs (x:ILTypeSpec) = + ILTypeSpec.Create(morphILScopeRefsInILTypeRef (fst fs) x.TypeRef,typs_scoref2scoref_tyvar2typ fs x.GenericArgs) +and callsig_scoref2scoref_tyvar2typ f x = + { x with + ArgTypes=ILList.map (typ_scoref2scoref_tyvar2typ f) x.ArgTypes; + ReturnType=typ_scoref2scoref_tyvar2typ f x.ReturnType} +and typs_scoref2scoref_tyvar2typ f i = ILList.map (typ_scoref2scoref_tyvar2typ f) i +and gparams_scoref2scoref_tyvar2typ f i = List.map (gparam_scoref2scoref_tyvar2typ f) i +and gparam_scoref2scoref_tyvar2typ _f i = i +and morphILScopeRefsInILTypeRef fscope (x:ILTypeRef) = + ILTypeRef.Create(scope=fscope x.Scope, enclosing=x.Enclosing, name = x.Name) + + +let callsig_typ2typ f (x: ILCallingSignature) = + { CallingConv=x.CallingConv; + ArgTypes=ILList.map f x.ArgTypes; + ReturnType=f x.ReturnType} + +let gparam_typ2typ f gf = {gf with Constraints = ILList.map f gf.Constraints} +let gparams_typ2typ f gfs = List.map (gparam_typ2typ f) gfs +let typs_typ2typ (f: ILType -> ILType) x = ILList.map f x +let mref_typ2typ (f: ILType -> ILType) (x:ILMethodRef) = + ILMethodRef.Create(enclosingTypeRef= (f (mkILBoxedType (mkILNonGenericTySpec x.EnclosingTypeRef))).TypeRef, + callingConv=x.CallingConv, + name=x.Name, + genericArity=x.GenericArity, + argTypes= ILList.map f x.ArgTypes, + returnType= f x.ReturnType) + + +type formal_scopeCtxt = Choice + +let mspec_typ2typ (((factualty : ILType -> ILType) , (fformalty: formal_scopeCtxt -> ILType -> ILType))) (x: ILMethodSpec) = + mkILMethSpecForMethRefInTyRaw(mref_typ2typ (fformalty (Choice1Of3 x)) x.MethodRef, + factualty x.EnclosingType, + typs_typ2typ factualty x.GenericArgs) + +let fref_typ2typ (f: ILType -> ILType) x = + { x with EnclosingTypeRef = (f (mkILBoxedType (mkILNonGenericTySpec x.EnclosingTypeRef))).TypeRef; + Type= f x.Type } + +let fspec_typ2typ ((factualty,(fformalty : formal_scopeCtxt -> ILType -> ILType))) x = + { FieldRef=fref_typ2typ (fformalty (Choice2Of3 x)) x.FieldRef; + EnclosingType= factualty x.EnclosingType } + +let rec celem_typ2typ f celem = + match celem with + | ILAttribElem.Type (Some ty) -> ILAttribElem.Type (Some (f ty)) + | ILAttribElem.TypeRef (Some tref) -> ILAttribElem.TypeRef (Some (f (mkILBoxedType (mkILNonGenericTySpec tref))).TypeRef) + | ILAttribElem.Array (elemTy,elems) -> ILAttribElem.Array (f elemTy, List.map (celem_typ2typ f) elems) + | _ -> celem + +let cnamedarg_typ2typ f ((nm, ty, isProp, elem) : ILAttributeNamedArg) = + (nm, f ty, isProp, celem_typ2typ f elem) + +let cattr_typ2typ ilg f c = + let meth = mspec_typ2typ (f, (fun _ -> f)) c.Method + // dev11 M3 defensive coding: if anything goes wrong with attribute decoding or encoding, then back out. + if morphCustomAttributeData then + try + let elems,namedArgs = IL.decodeILAttribData ilg c (Some(meth.MethodRef.EnclosingTypeRef.Scope)) + let elems = elems |> List.map (celem_typ2typ f) + let namedArgs = namedArgs |> List.map (cnamedarg_typ2typ f) + IL.mkILCustomAttribMethRef ilg (meth, elems, namedArgs) + with _ -> + { c with Method = meth } + else + { c with Method = meth } + + +let cattrs_typ2typ ilg f (cs: ILAttributes) = + mkILCustomAttrs (List.map (cattr_typ2typ ilg f) cs.AsList) + +let fdef_typ2typ ilg ftype (fd: ILFieldDef) = + {fd with Type=ftype fd.Type; + CustomAttrs=cattrs_typ2typ ilg ftype fd.CustomAttrs} +let altfdef_typ2typ ilg ftype (fd: IlxUnionField) = + IlxUnionField( fdef_typ2typ ilg ftype fd.ILField) + +let alts_typ2typ ilg f alts = + Array.map (fun alt -> { alt with altFields = Array.map (altfdef_typ2typ ilg f) alt.altFields; + altCustomAttrs = cattrs_typ2typ ilg f alt.altCustomAttrs }) alts + +let curef_typ2typ ilg f (IlxUnionRef(s,alts,nullPermitted,helpers)) = + IlxUnionRef(s,alts_typ2typ ilg f alts,nullPermitted,helpers) + +let local_typ2typ f (l: ILLocal) = {l with Type = f l.Type} +let freevar_typ2typ f l = {l with fvType = f l.fvType} +let varargs_typ2typ f (varargs: ILVarArgs) = Option.map (ILList.map f) varargs +(* REVIEW: convert varargs *) +let morphILTypesInILInstr ((factualty,fformalty)) i = + let factualty = factualty (Some i) + let conv_fspec fr = fspec_typ2typ (factualty,fformalty (Some i)) fr + let conv_mspec mr = mspec_typ2typ (factualty,fformalty (Some i)) mr + match i with + | I_calli (a,mref,varargs) -> I_calli (a,callsig_typ2typ (factualty) mref,varargs_typ2typ factualty varargs) + | I_call (a,mr,varargs) -> I_call (a,conv_mspec mr,varargs_typ2typ factualty varargs) + | I_callvirt (a,mr,varargs) -> I_callvirt (a,conv_mspec mr,varargs_typ2typ factualty varargs) + | I_callconstraint (a,ty,mr,varargs) -> I_callconstraint (a,factualty ty,conv_mspec mr,varargs_typ2typ factualty varargs) + | I_newobj (mr,varargs) -> I_newobj (conv_mspec mr,varargs_typ2typ factualty varargs) + | I_ldftn mr -> I_ldftn (conv_mspec mr) + | I_ldvirtftn mr -> I_ldvirtftn (conv_mspec mr) + | I_ldfld (a,b,fr) -> I_ldfld (a,b,conv_fspec fr) + | I_ldsfld (a,fr) -> I_ldsfld (a,conv_fspec fr) + | I_ldsflda (fr) -> I_ldsflda (conv_fspec fr) + | I_ldflda fr -> I_ldflda (conv_fspec fr) + | I_stfld (a,b,fr) -> I_stfld (a,b,conv_fspec fr) + | I_stsfld (a,fr) -> I_stsfld (a,conv_fspec fr) + | I_castclass typ -> I_castclass (factualty typ) + | I_isinst typ -> I_isinst (factualty typ) + | I_initobj typ -> I_initobj (factualty typ) + | I_cpobj typ -> I_cpobj (factualty typ) + | I_stobj (al,vol,typ) -> I_stobj (al,vol,factualty typ) + | I_ldobj (al,vol,typ) -> I_ldobj (al,vol,factualty typ) + | I_box typ -> I_box (factualty typ) + | I_unbox typ -> I_unbox (factualty typ) + | I_unbox_any typ -> I_unbox_any (factualty typ) + | I_ldelem_any (shape,typ) -> I_ldelem_any (shape,factualty typ) + | I_stelem_any (shape,typ) -> I_stelem_any (shape,factualty typ) + | I_newarr (shape,typ) -> I_newarr (shape,factualty typ) + | I_ldelema (ro,isNativePtr,shape,typ) -> I_ldelema (ro,isNativePtr,shape,factualty typ) + | I_sizeof typ -> I_sizeof (factualty typ) + | I_ldtoken tok -> + match tok with + | ILToken.ILType typ -> I_ldtoken (ILToken.ILType (factualty typ)) + | ILToken.ILMethod mr -> I_ldtoken (ILToken.ILMethod (conv_mspec mr)) + | ILToken.ILField fr -> I_ldtoken (ILToken.ILField (conv_fspec fr)) + | x -> x + +let return_typ2typ ilg f (r:ILReturn) = {r with Type=f r.Type; CustomAttrs=cattrs_typ2typ ilg f r.CustomAttrs} +let param_typ2typ ilg f (p: ILParameter) = {p with Type=f p.Type; CustomAttrs=cattrs_typ2typ ilg f p.CustomAttrs} + +let morphILMethodDefs f (m:ILMethodDefs) = mkILMethods (List.map f m.AsList) +let fdefs_fdef2fdef f (m:ILFieldDefs) = mkILFields (List.map f m.AsList) + +(* use this when the conversion produces just one type... *) +let morphILTypeDefs f (m: ILTypeDefs) = mkILTypeDefs (List.map f m.AsList) + +let morphExpandILTypeDefs f (m:ILTypeDefs) = + mkILTypeDefs (List.foldBack (fun x y -> f x @ y) m.AsList []) + +let morphILTypeDefsInILModule typesf m = + {m with TypeDefs=typesf m.TypeDefs} + +let locals_typ2typ f ls = ILList.map (local_typ2typ f) ls +let freevars_typ2typ f ls = Array.map (freevar_typ2typ f) ls + +let ilmbody_bblock2code_typ2typ_maxstack2maxstack fs il = + let (finstr,ftype,fmaxstack) = fs + {il with Code=topcode_bblock2code_typ2typ (finstr,ftype) il.Code; + Locals = locals_typ2typ ftype il.Locals; + MaxStack = fmaxstack il.MaxStack } + +let morphILMethodBody (filmbody) (x: ILLazyMethodBody) = + let c = + match x.Contents with + | MethodBody.IL il -> MethodBody.IL (filmbody il) + | x -> x + mkMethBodyAux c + +let ospec_typ2typ f (OverridesSpec(mref,ty)) = OverridesSpec(mref_typ2typ f mref, f ty) + +let mdef_typ2typ_ilmbody2ilmbody ilg fs md = + let (ftype,filmbody) = fs + let ftype' = ftype (Some md) + let body' = morphILMethodBody (filmbody (Some md)) md.mdBody + {md with + GenericParams=gparams_typ2typ ftype' md.GenericParams; + mdBody= body'; + Parameters = ILList.map (param_typ2typ ilg ftype') md.Parameters; + Return = return_typ2typ ilg ftype' md.Return; + CustomAttrs=cattrs_typ2typ ilg ftype' md.CustomAttrs } + +let fdefs_typ2typ ilg f x = fdefs_fdef2fdef (fdef_typ2typ ilg f) x + +let mdefs_typ2typ_ilmbody2ilmbody ilg fs x = morphILMethodDefs (mdef_typ2typ_ilmbody2ilmbody ilg fs) x + +let cuinfo_typ2typ ilg ftype cud = + { cud with cudAlternatives = alts_typ2typ ilg ftype cud.cudAlternatives; } + + +let cloinfo_typ2typ_ilmbody2ilmbody fs clo = + let (ftype,filmbody) = fs + let c' = filmbody None (Lazy.force clo.cloCode) + { clo with cloFreeVars = freevars_typ2typ ftype clo.cloFreeVars; + cloCode=notlazy c' } + +let morphIlxClosureInfo f clo = + let c' = f (Lazy.force clo.cloCode) + { clo with cloCode=notlazy c' } + +let mimpl_typ2typ f e = + { Overrides = ospec_typ2typ f e.Overrides; + OverrideBy = mspec_typ2typ (f,(fun _ -> f)) e.OverrideBy; } + +let edef_typ2typ ilg f e = + { e with + Type = Option.map f e.Type; + AddMethod = mref_typ2typ f e.AddMethod; + RemoveMethod = mref_typ2typ f e.RemoveMethod; + FireMethod = Option.map (mref_typ2typ f) e.FireMethod; + OtherMethods = List.map (mref_typ2typ f) e.OtherMethods; + CustomAttrs = cattrs_typ2typ ilg f e.CustomAttrs } + +let pdef_typ2typ ilg f p = + { p with + SetMethod = Option.map (mref_typ2typ f) p.SetMethod; + GetMethod = Option.map (mref_typ2typ f) p.GetMethod; + Type = f p.Type; + Args = ILList.map f p.Args; + CustomAttrs = cattrs_typ2typ ilg f p.CustomAttrs } + +let pdefs_typ2typ ilg f (pdefs: ILPropertyDefs) = mkILProperties (List.map (pdef_typ2typ ilg f) pdefs.AsList) +let edefs_typ2typ ilg f (edefs: ILEventDefs) = mkILEvents (List.map (edef_typ2typ ilg f) edefs.AsList) + +let mimpls_typ2typ f (mimpls : ILMethodImplDefs) = mkILMethodImpls (List.map (mimpl_typ2typ f) mimpls.AsList) + +let rec tdef_typ2typ_ilmbody2ilmbody_mdefs2mdefs ilg enc fs td = + let (ftype,filmbody,fmdefs) = fs + let ftype' = ftype (Some (enc,td)) None + let mdefs' = fmdefs (enc,td) td.Methods + let fdefs' = fdefs_typ2typ ilg ftype' td.Fields + {td with Implements= ILList.map ftype' td.Implements; + GenericParams= gparams_typ2typ ftype' td.GenericParams; + Extends = Option.map ftype' td.Extends; + Methods=mdefs'; + NestedTypes=tdefs_typ2typ_ilmbody2ilmbody_mdefs2mdefs ilg (enc@[td]) fs td.NestedTypes; + Fields=fdefs'; + MethodImpls = mimpls_typ2typ ftype' td.MethodImpls; + Events = edefs_typ2typ ilg ftype' td.Events; + Properties = pdefs_typ2typ ilg ftype' td.Properties; + CustomAttrs = cattrs_typ2typ ilg ftype' td.CustomAttrs; + tdKind = + match td.tdKind with + | ILTypeDefKind.Other e when isIlxExtTypeDefKind e -> + match destIlxExtTypeDefKind e with + | IlxTypeDefKind.Closure i -> mkIlxTypeDefKind (IlxTypeDefKind.Closure (cloinfo_typ2typ_ilmbody2ilmbody (ftype',filmbody (enc,td)) i)) + | IlxTypeDefKind.Union i -> mkIlxTypeDefKind (IlxTypeDefKind.Union (cuinfo_typ2typ ilg ftype' i)) + | _ -> td.tdKind + } + +and tdefs_typ2typ_ilmbody2ilmbody_mdefs2mdefs ilg enc fs tdefs = + morphILTypeDefs (tdef_typ2typ_ilmbody2ilmbody_mdefs2mdefs ilg enc fs) tdefs + +// -------------------------------------------------------------------- +// Derived versions of the above, e.g. with defaults added +// -------------------------------------------------------------------- + +let manifest_typ2typ ilg f (m : ILAssemblyManifest) = + { m with CustomAttrs = cattrs_typ2typ ilg f m.CustomAttrs } + +let morphILTypeInILModule_ilmbody2ilmbody_mdefs2mdefs ilg + ((ftype: ILModuleDef -> (ILTypeDef list * ILTypeDef) option -> ILMethodDef option -> ILType -> ILType), + (filmbody: ILModuleDef -> ILTypeDef list * ILTypeDef -> ILMethodDef option -> ILMethodBody -> ILMethodBody), + fmdefs) m = + + let ftdefs = + tdefs_typ2typ_ilmbody2ilmbody_mdefs2mdefs ilg [] + (ftype m, + filmbody m, + fmdefs m) + + { m with TypeDefs=ftdefs m.TypeDefs; + CustomAttrs=cattrs_typ2typ ilg (ftype m None None) m.CustomAttrs; + Manifest=Option.map (manifest_typ2typ ilg (ftype m None None)) m.Manifest } + +let module_bblock2code_typ2typ_maxstack2maxstack ilg fs x = + let (fbblock,ftype,fmaxstack) = fs + let filmbody modCtxt tdefCtxt mdefCtxt = + ilmbody_bblock2code_typ2typ_maxstack2maxstack + (fbblock modCtxt tdefCtxt mdefCtxt, + ftype modCtxt (Some tdefCtxt) mdefCtxt, + fmaxstack modCtxt tdefCtxt mdefCtxt) + let fmdefs modCtxt tdefCtxt = mdefs_typ2typ_ilmbody2ilmbody ilg (ftype modCtxt (Some tdefCtxt), filmbody modCtxt tdefCtxt) + morphILTypeInILModule_ilmbody2ilmbody_mdefs2mdefs ilg (ftype, filmbody, fmdefs) x + +let module_bblock2code_typ2typ ilg (f1,f2) x = + module_bblock2code_typ2typ_maxstack2maxstack ilg (f1, f2, (fun _modCtxt _tdefCtxt _mdefCtxt x -> x)) x +let morphILInstrsAndILTypesInILModule ilg (f1,f2) x = + module_bblock2code_typ2typ ilg ((fun modCtxt tdefCtxt mdefCtxt i -> mkBasicBlock (bblock_instr2instr (f1 modCtxt tdefCtxt mdefCtxt) i)), f2) x + +let morphILInstrsInILCode f x = topcode_bblock2code (fun i -> mkBasicBlock (bblock_instr2instrs f i)) x +let morphExpandILInstrsInILCode f x = topcode_bblock2code (bblock2code_instr2code f) x + +let morphILTypeInILModule ilg ftype y = + let finstr modCtxt tdefCtxt mdefCtxt = + let fty = ftype modCtxt (Some tdefCtxt) mdefCtxt + morphILTypesInILInstr ((fun _instrCtxt -> fty), (fun _instrCtxt _formalCtxt -> fty)) + morphILInstrsAndILTypesInILModule ilg (finstr,ftype) y + +let morphILTypeRefsInILModuleMemoized ilg f modul = + let fty = Tables.memoize (typ_tref2tref f) + morphILTypeInILModule ilg (fun _ _ _ ty -> fty ty) modul + +let morphILScopeRefsInILModuleMemoized ilg f modul = + morphILTypeRefsInILModuleMemoized ilg (morphILScopeRefsInILTypeRef f) modul diff --git a/src/absil/ilmorph.fsi b/src/absil/ilmorph.fsi new file mode 100644 index 0000000..073f0c7 --- /dev/null +++ b/src/absil/ilmorph.fsi @@ -0,0 +1,59 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +/// A set of "IL rewrites" ("morphs"). These map each sub-construct +/// of particular ILTypeDefs. The morphing functions are passed +/// some details about the context in which the item being +/// morphed occurs, e.g. the module being morphed itself, the +/// ILTypeDef (possibly nested) where the item occurs, +/// the ILMethodDef (if any) where the item occurs. etc. +module Microsoft.FSharp.Compiler.AbstractIL.Morphs + +open Internal.Utilities +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Extensions.ILX.Types +open Microsoft.FSharp.Compiler.AbstractIL.IL + +type 'T morph = 'T -> 'T + +/// Morph each scope reference inside a type signature +val morphILScopeRefsInILTypeRef: ILScopeRef morph -> ILTypeRef -> ILTypeRef + +val morphILMethodDefs: ILMethodDef morph -> ILMethodDefs -> ILMethodDefs +/// nb. does not do nested tdefs +val morphILTypeDefs: ILTypeDef morph -> ILTypeDefs -> ILTypeDefs + +val morphExpandILTypeDefs: (ILTypeDef -> ILTypeDef list) -> ILTypeDefs -> ILTypeDefs + +/// Morph all tables of ILTypeDefs in "ILModuleDef" +val morphILTypeDefsInILModule: ILTypeDefs morph -> ILModuleDef -> ILModuleDef + +/// Morph all type references throughout an entire module. +val morphILTypeRefsInILModuleMemoized: ILGlobals -> ILTypeRef morph -> ILModuleDef -> ILModuleDef + +val morphILScopeRefsInILModuleMemoized: ILGlobals -> ILScopeRef morph -> ILModuleDef -> ILModuleDef + +val morphILMethodBody: ILMethodBody morph -> ILLazyMethodBody -> ILLazyMethodBody +val morphIlxClosureInfo: ILMethodBody morph -> IlxClosureInfo -> IlxClosureInfo +val morphILInstrsInILCode: (ILInstr -> ILInstr list) -> ILCode -> ILCode + +[] +type InstrMorph = + new : ILInstr list -> InstrMorph + new : ILCode -> InstrMorph + +val morphExpandILInstrsInILCode: (ILCodeLabel -> ILCodeLabel -> ILInstr -> InstrMorph) -> ILCode -> ILCode + +// REVIEW: Consider removing Post-Dev11 M3 +val enablemorphCustomAttributeData : unit -> unit +val disablemorphCustomAttributeData : unit -> unit diff --git a/src/absil/ilpars.fsy b/src/absil/ilpars.fsy new file mode 100644 index 0000000..71545cc --- /dev/null +++ b/src/absil/ilpars.fsy @@ -0,0 +1,449 @@ +%{ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +#nowarn "1182" // the generated code often has unused variable "parseState" + +open Internal.Utilities +open Internal.Utilities.Text + +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiConstants +open Microsoft.FSharp.Compiler.AbstractIL.Diagnostics +open Microsoft.FSharp.Compiler.AbstractIL.Extensions.ILX.Types +open Microsoft.FSharp.Compiler.AbstractIL.IL +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library + + +let pfailwith s = + stderr.WriteLine ("*** error: "+s); + raise Parsing.RecoverableParseError + +/// vararg sentinels +type SigArg = SigArg of (string option * ILType) | Sentinel + +let decodeVarargs args = + let rec normals = function + | [] -> ([],None) + | Sentinel :: t -> ([],Some (ILList.ofList (varargs t))) + | SigArg (_,p)::t -> let (n,r) = normals t in (p::n, r) + and varargs = function + | [] -> [] + | SigArg (_,ty):: t -> let l = varargs t in ty::l + | Sentinel :: t -> pfailwith "two sentinels in vararg call" + normals args + + +type ResolvedAtMethodSpecScope<'T> = + ResolvedAtMethodSpecScope of (ILGenericParameterDefs -> 'T) + +let noMethodSpecScope x = ResolvedAtMethodSpecScope (fun _cgparams -> x) +let resolveMethodSpecScope (ResolvedAtMethodSpecScope f) x = f x +let resolveMethodSpecScopeThen (ResolvedAtMethodSpecScope f) g = + ResolvedAtMethodSpecScope (fun x -> resolveMethodSpecScope (g(f x)) x) + +let resolveFormalMethodSpecScope tspeco obj = + match tspeco with + None -> resolveMethodSpecScope obj mkILEmptyGenericParams + | Some (tspec:ILTypeSpec) -> resolveMethodSpecScope obj (mkILFormalTyparsRaw tspec.GenericArgs) + +let resolveCurrentMethodSpecScope obj = + resolveMethodSpecScope obj mkILEmptyGenericParams + + +let findMscorlibAssemblyRef() = + match (!parseILGlobals).mscorlibScopeRef with + | ILScopeRef.Assembly aref -> aref + | _ -> pfailwith "mscorlibScopeRef not set to valid assembly reference in parseILGlobals" + +let findAssemblyRef nm = + if nm = "mscorlib" then findMscorlibAssemblyRef() else + pfailwith ("Undefined assembly ref '" + nm + "'") + +%} + +/*----------------------------------------------------------------------- + * The YACC Grammar + *----------------------------------------------------------------------*/ + +%token VAL_INT64 /* 342534523534534 0x34FA434644554 */ +%token VAL_INT32_ELIPSES /* 342534523534534... */ +%token VAL_FLOAT64 /* -334234 24E-34 */ +%token INSTR_I +%token INSTR_I32_I32 +%token INSTR_I8 +%token INSTR_R +%token INSTR_METHOD +%token INSTR_NONE +%token INSTR_STRING +%token INSTR_TOK +%token INSTR_TYPE +%token INSTR_INT_TYPE +%token INSTR_VALUETYPE +%token VAL_HEXBYTE /* 05 1A FA */ +%token VAL_ID /* testing343 */ +%token VAL_DOTTEDNAME /* testing343.abd */ +%token VAL_QSTRING /* "Hello World\n" */ +%token VAL_SQSTRING /* 'Hello World\n' */ +%token AMP +%token BANG +%token BOOL +%token BYTEARRAY +%token CHAR +%token CLASS +%token COMMA +%token DCOLON +%token DEFAULT +%token DOT +%token ELIPSES +%token EOF +%token EXPLICIT +%token FIELD +%token FLOAT32 +%token FLOAT64 +%token GREATER +%token INSTANCE +%token INT +%token INT16 +%token INT32 +%token INT64 +%token INT8 +%token LBRACK +%token LESS +%token LPAREN +%token METHOD +%token NATIVE +%token OBJECT +%token PLUS +%token RBRACK +%token RPAREN +%token SLASH +%token STAR +%token STRING +%token UINT +%token UINT16 +%token UINT32 +%token UINT64 +%token UINT8 +%token UNMANAGED +%token UNSIGNED +%token VALUE +%token VALUETYPE +%token VARARG +%token VOID + +%type name1 +%type typ +%type ilInstrs +%type ilType +%start ilInstrs ilType + +/**************************************************************************/ +%% + +/* ENTRYPOINT */ +ilType: typ EOF + { resolveMethodSpecScope $1 [] } + +/* ENTRYPOINT */ +ilInstrs: instrs2 EOF + { Array.ofList $1 } + + +compQstring: + VAL_QSTRING { $1 } + | compQstring PLUS VAL_QSTRING { $1 + $3 } + +methodName: name1 { $1 } + +instrs2: + | instr instrs2 + { $1 :: $2 } + | { [] } + + + +methodSpecMaybeArrayMethod: + callConv typ typSpec DCOLON methodName opt_actual_tyargs LPAREN sigArgs0 RPAREN + { let callee_class_typ : ILType = resolveCurrentMethodSpecScope $3 + let gscope = (if isILArrTy callee_class_typ then None else Some callee_class_typ.TypeSpec) + let argtys_n_varargs = resolveFormalMethodSpecScope gscope $8 + let (argtys,varargs) = decodeVarargs argtys_n_varargs + let minst = resolveCurrentMethodSpecScope $6 + let callee_retty = resolveFormalMethodSpecScope gscope $2 + (callee_class_typ, $1, $5, argtys, callee_retty, minst), varargs } + +instr: + INSTR_NONE + { ($1 ()) } + | INSTR_I int32 + { ($1 $2) } + | INSTR_I32_I32 int32 int32 + { ($1 ($2,$3)) } + | INSTR_I8 int64 + { ($1 $2) } + | INSTR_R float64 + { ($1 (ILConst.R8 $2)) } + | INSTR_R int64 + { ($1 (ILConst.R8 (float $2))) } + | INSTR_METHOD methodSpecMaybeArrayMethod + { + let ((encl_typ, _cc, nm, _argtys, _retty, _minst) as data),varargs = $2 + if isILArrTy encl_typ then + let (shape,ty) = destILArrTy encl_typ + match nm with + | "Get" -> I_ldelem_any(shape,ty) + | "Set" -> I_stelem_any(shape,ty) + | "Address" -> I_ldelema(NormalAddress,false,shape,ty) + | ".ctor" -> I_newarr(shape,ty) + | _ -> failwith "bad method on array type" + else + $1 (mkILMethSpecInTy data, varargs) } + | INSTR_TYPE typSpec + { $1 (resolveCurrentMethodSpecScope $2) } + | INSTR_INT_TYPE int32 typSpec + { $1 ( $2,resolveCurrentMethodSpecScope $3) } + | INSTR_VALUETYPE typSpec + { $1 (resolveCurrentMethodSpecScope $2) } + | INSTR_TOK typSpec + { ($1 (ILToken.ILType (resolveCurrentMethodSpecScope $2))) } + +/*----------------------------------------------- + * Formal signatures of methods etc. + *---------------------------------------------*/ + +sigArgs0: + { noMethodSpecScope [] } + | sigArgs1 { $1 } + +sigArgs1: + sigArgs1a + { ResolvedAtMethodSpecScope (fun c -> List.map (fun obj -> resolveMethodSpecScope obj c) (List.rev $1)) } + +sigArgs1a: + sigArg + { [$1] } + | sigArgs1a COMMA sigArg + { $3:: $1 } + +sigArg: + | typ opt_id + { resolveMethodSpecScopeThen $1 (fun ty -> + noMethodSpecScope (SigArg($2, ty))) } + + + +opt_id: { None } | id { Some $1 } + + +/*----------------------------------------------- + * Type names + *---------------------------------------------*/ +name1: + | id + { $1 } + | VAL_DOTTEDNAME + { $1 } + | name1 DOT id + { $1 + "." + $3 } + +className: + LBRACK name1 RBRACK slashedName + { let (enc,nm) = $4 + let aref = findAssemblyRef $2 + ILScopeRef.Assembly aref, enc, nm } + | slashedName + { let enc, nm = $1 in (ILScopeRef.Local, enc, nm) } + +slashedName: + name1 + { ([],$1) } + | name1 SLASH slashedName + { let (enc,nm) = $3 in ($1::enc, nm) } + +typeNameInst: + className opt_actual_tyargs + { let (a,b,c) = $1 + resolveMethodSpecScopeThen $2 (fun inst -> + noMethodSpecScope ( (mkILTySpec ( (mkILNestedTyRef (a,b,c)), inst)))) } + + +typeName: + className + { let (a,b,c) = $1 + noMethodSpecScope ( (mkILTySpec ( (mkILNestedTyRef (a,b,c)), []))) } + + +typSpec: + typeName + { resolveMethodSpecScopeThen $1 (fun tref -> + noMethodSpecScope (mkILBoxedType tref)) } + | typ + { $1 } + | LPAREN typ RPAREN + { $2 } + + +callConv: + INSTANCE callKind + { Callconv (ILThisConvention.Instance,$2) } + | EXPLICIT callKind + { Callconv (ILThisConvention.InstanceExplicit,$2) } + | callKind + { Callconv (ILThisConvention.Static,$1) } + +callKind: + /* EMPTY */ + { ILArgConvention.Default } + | DEFAULT + { ILArgConvention.Default } + | VARARG + { ILArgConvention.VarArg } + +/*----------------------------------------------- + * The full algebra of types, typically producing results + * awaiting further info about how to fix up type + * variable numbers etc. + *---------------------------------------------*/ + +typ: STRING + { noMethodSpecScope (!parseILGlobals).typ_String } + | OBJECT + { noMethodSpecScope (!parseILGlobals).typ_Object } + | CLASS typeNameInst + { resolveMethodSpecScopeThen $2 (fun tspec -> + noMethodSpecScope (mkILBoxedType tspec)) } + | VALUE CLASS typeNameInst + { resolveMethodSpecScopeThen $3 (fun tspec -> + noMethodSpecScope (ILType.Value tspec)) } + | VALUETYPE typeNameInst + { resolveMethodSpecScopeThen $2 (fun tspec -> + noMethodSpecScope (ILType.Value tspec)) } + | typ LBRACK RBRACK + { resolveMethodSpecScopeThen $1 (fun ty -> noMethodSpecScope (mkILArr1DTy ty)) } + | typ LBRACK bounds1 RBRACK + { resolveMethodSpecScopeThen $1 (fun ty -> noMethodSpecScope (mkILArrTy (ty,ILArrayShape $3))) } + | typ AMP + { resolveMethodSpecScopeThen $1 (fun ty -> noMethodSpecScope (ILType.Byref ty)) } + | typ STAR + { resolveMethodSpecScopeThen $1 (fun ty -> noMethodSpecScope (ILType.Ptr ty)) } + | CHAR + { noMethodSpecScope (!parseILGlobals).typ_char } + | VOID + { noMethodSpecScope ILType.Void } + | BOOL + { noMethodSpecScope (!parseILGlobals).typ_bool } + | INT8 + { noMethodSpecScope (!parseILGlobals).typ_int8 } + | INT16 + { noMethodSpecScope (!parseILGlobals).typ_int16 } + | INT32 + { noMethodSpecScope (!parseILGlobals).typ_int32 } + | INT64 + { noMethodSpecScope (!parseILGlobals).typ_int64 } + | FLOAT32 + { noMethodSpecScope (!parseILGlobals).typ_float32 } + | FLOAT64 + { noMethodSpecScope (!parseILGlobals).typ_float64 } + | UNSIGNED INT8 + { noMethodSpecScope (!parseILGlobals).typ_uint8 } + | UNSIGNED INT16 + { noMethodSpecScope (!parseILGlobals).typ_uint16 } + | UNSIGNED INT32 + { noMethodSpecScope (!parseILGlobals).typ_uint32 } + | UNSIGNED INT64 + { noMethodSpecScope (!parseILGlobals).typ_uint64 } + | UINT8 + { noMethodSpecScope (!parseILGlobals).typ_uint8 } + | UINT16 + { noMethodSpecScope (!parseILGlobals).typ_uint16 } + | UINT32 + { noMethodSpecScope (!parseILGlobals).typ_uint32 } + | UINT64 + { noMethodSpecScope (!parseILGlobals).typ_uint64 } + | NATIVE INT + { noMethodSpecScope (!parseILGlobals).typ_IntPtr } + | NATIVE UNSIGNED INT + { noMethodSpecScope (!parseILGlobals).typ_UIntPtr } + | NATIVE UINT + { noMethodSpecScope (!parseILGlobals).typ_UIntPtr } + + | BANG int32 + { noMethodSpecScope (ILType.TypeVar (uint16 ( $2))) } + + +bounds1: + bound + { [$1] } + | bounds1 COMMA bound + { $1 @ [$3] } + +bound: + /*EMPTY*/ + { (None, None) } + | int32 + { (None, Some $1) } + | int32 ELIPSES int32 + { (Some $1, Some ($3 - $1 + 1)) } + | int32 ELIPSES + { (Some $1, None) } +/* We need to be able to parse all of */ +/* ldc.r8 0. */ +/* float64(-657435.) */ +/* and int32[0...,0...] */ +/* The problem is telling an integer-followed-by-ellipses from a floating-point-nubmer-followed-by-dots */ + | VAL_INT32_ELIPSES int32 + { (Some $1, Some ($2 - $1 + 1)) } + | VAL_INT32_ELIPSES + { (Some $1, None) } + +id: + VAL_ID + { $1 } + | VAL_SQSTRING + { $1 } + +int32: + VAL_INT64 + { int32 $1 } + +int64: + VAL_INT64 + { $1 } + +float64: + VAL_FLOAT64 + { $1 } + | FLOAT64 LPAREN int64 RPAREN + { System.BitConverter.Int64BitsToDouble $3 } + +opt_actual_tyargs: + /* EMPTY */ + { noMethodSpecScope [] } + | actual_tyargs + { resolveMethodSpecScopeThen $1 (fun res -> + noMethodSpecScope res) } + +actual_tyargs: + LESS actualTypSpecs GREATER + { $2 } + +actualTypSpecs: + typSpec + { resolveMethodSpecScopeThen $1 (fun res -> + noMethodSpecScope [ res]) } + | actualTypSpecs COMMA typSpec + { resolveMethodSpecScopeThen $1 (fun x -> + resolveMethodSpecScopeThen $3 (fun y -> + noMethodSpecScope (x @ [ y]))) } + diff --git a/src/absil/ilprint.fs b/src/absil/ilprint.fs new file mode 100644 index 0000000..eea4095 --- /dev/null +++ b/src/absil/ilprint.fs @@ -0,0 +1,1258 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + + +module Microsoft.FSharp.Compiler.AbstractIL.ILAsciiWriter + +open Internal.Utilities +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library +open Microsoft.FSharp.Compiler.AbstractIL.Diagnostics +open Microsoft.FSharp.Compiler.AbstractIL.Extensions.ILX.Types +open Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiConstants +open Microsoft.FSharp.Compiler.AbstractIL.IL + +open System.Text +open System.IO + +#if DEBUG +let pretty () = true + +// -------------------------------------------------------------------- +// Pretty printing +// -------------------------------------------------------------------- + + +let tyvar_generator = + let i = ref 0 + fun n -> + incr i; n^string !i + +// Carry an environment because the way we print method variables +// depends on the gparams of the current scope. +type ppenv = + { ppenvClassFormals: int; + ppenvMethodFormals: int } +let ppenv_enter_method mgparams env = + {env with ppenvMethodFormals=mgparams} +let ppenv_enter_tdef gparams env = + {env with ppenvClassFormals=List.length gparams; ppenvMethodFormals=0} +let mk_ppenv = { ppenvClassFormals=0; ppenvMethodFormals=0 } +let debug_ppenv = mk_ppenv +let ppenv_enter_modul env = { env with ppenvClassFormals=0; ppenvMethodFormals=0 } + +// -------------------------------------------------------------------- +// Pretty printing - output streams +// -------------------------------------------------------------------- + +let output_string (os: TextWriter) (s:string) = os.Write s +let output_char (os: TextWriter) (c:char) = os.Write c +let output_int os (i:int) = output_string os (string i) +let output_hex_digit os i = + assert (i >= 0 && i < 16); + if i > 9 then output_char os (char (int32 'A' + (i-10))) + else output_char os (char (int32 '0' + i)) + +let output_qstring os s = + output_char os '"'; + for i = 0 to String.length s - 1 do + let c = String.get s i + if (c >= '\000' && c <= '\031') || (c >= '\127' && c <= '\255') then + let c' = int32 c + output_char os '\\'; + output_int os (c'/64); + output_int os ((c' % 64) / 8); + output_int os (c' % 8) + else if (c = '"') then + (output_char os '\\'; output_char os '"') + else if (c = '\\') then + (output_char os '\\'; output_char os '\\') + else + output_char os c + done; + output_char os '"' +let output_sqstring os s = + output_char os '\''; + for i = 0 to String.length s - 1 do + let c = s.[i] + if (c >= '\000' && c <= '\031') || (c >= '\127' && c <= '\255') then + let c' = int32 c + output_char os '\\'; + output_int os (c'/64); + output_int os ((c' % 64) / 8); + output_int os (c' % 8) + else if (c = '\\') then + (output_char os '\\'; output_char os '\\') + else if (c = '\'') then + (output_char os '\\'; output_char os '\'') + else + output_char os c + done; + output_char os '\'' + +let output_seq sep f os (a:seq<_>) = + use e = a.GetEnumerator() + if e.MoveNext() then + f os e.Current; + while e.MoveNext() do + output_string os sep; + f os e.Current + +let output_parens f os a = output_string os "("; f os a; output_string os ")" +let output_angled f os a = output_string os "<"; f os a; output_string os ">" +let output_bracks f os a = output_string os "["; f os a; output_string os "]" + +let output_id os n = output_sqstring os n + +let output_label os n = output_string os n + +let output_lid os lid = output_seq "." output_string os lid +let string_of_type_name (_,n) = n + +let output_byte os i = + output_hex_digit os (i / 16); + output_hex_digit os (i % 16) + +let output_bytes os (bytes:byte[]) = + for i = 0 to bytes.Length - 1 do + output_byte os (Bytes.get bytes i); + output_string os " " + + +let bits_of_float32 (x:float32) = System.BitConverter.ToInt32(System.BitConverter.GetBytes(x),0) +let bits_of_float (x:float) = System.BitConverter.DoubleToInt64Bits(x) + +let output_u8 os (x:byte) = output_string os (string (int x)) +let output_i8 os (x:sbyte) = output_string os (string (int x)) +let output_u16 os (x:uint16) = output_string os (string (int x)) +let output_i16 os (x:int16) = output_string os (string (int x)) +let output_u32 os (x:uint32) = output_string os (string (int64 x)) +let output_i32 os (x:int32) = output_string os (string x) +let output_u64 os (x:uint64) = output_string os (string (int64 x)) +let output_i64 os (x:int64) = output_string os (string x) +let output_ieee32 os (x:float32) = (output_string os "float32 ("; output_string os (string (bits_of_float32 x)); output_string os ")") +let output_ieee64 os (x:float) = (output_string os "float64 ("; output_string os (string (bits_of_float x)); output_string os ")") + +let rec goutput_scoref _env os = function + | ILScopeRef.Local -> () + | ILScopeRef.Assembly aref -> + output_string os "["; output_sqstring os aref.Name; output_string os "]" + | ILScopeRef.Module mref -> + output_string os "[.module "; output_sqstring os mref.Name; output_string os "]" + +and goutput_type_name_ref env os (scoref,enc,n) = + goutput_scoref env os scoref; + output_seq "/" output_sqstring os (enc@[n]) +and goutput_tref env os (x:ILTypeRef) = + goutput_type_name_ref env os (x.Scope,x.Enclosing,x.Name) + +and goutput_typ env os ty = + match ty with + | ILType.Boxed tr -> goutput_tspec env os tr + | ILType.TypeVar tv -> + // Special rule to print method type variables in Generic EE preferred form + // when an environment is available to help us do this. + let cgparams = env.ppenvClassFormals + let mgparams = env.ppenvMethodFormals + if int tv < cgparams then + output_string os "!"; + output_tyvar os tv + elif int tv - cgparams < mgparams then + output_string os "!!"; + output_int os (int tv - cgparams); + else + output_string os "!"; + output_tyvar os tv; + output_int os (int tv) + + | ILType.Byref typ -> goutput_typ env os typ; output_string os "&" + | ILType.Ptr typ -> goutput_typ env os typ; output_string os "*" + | ILType.Value tspec when tspec.Name = ecmaILGlobals.tspec_SByte.Name -> output_string os "int8" + | ILType.Value tspec when tspec.Name = ecmaILGlobals.tspec_Int16.Name -> output_string os "int16" + | ILType.Value tspec when tspec.Name = ecmaILGlobals.tspec_Int32.Name -> output_string os "int32" + | ILType.Value tspec when tspec.Name = ecmaILGlobals.tspec_Int64.Name -> output_string os "int64" + | ILType.Value tspec when tspec.Name = ecmaILGlobals.tspec_IntPtr.Name -> output_string os "native int" + | ILType.Value tspec when tspec.Name = ecmaILGlobals.tspec_Byte.Name -> output_string os "unsigned int8" + | ILType.Value tspec when tspec.Name = ecmaILGlobals.tspec_UInt16.Name -> output_string os "unsigned int16" + | ILType.Value tspec when tspec.Name = ecmaILGlobals.tspec_UInt32.Name -> output_string os "unsigned int32" + | ILType.Value tspec when tspec.Name = ecmaILGlobals.tspec_UInt64.Name -> output_string os "unsigned int64" + | ILType.Value tspec when tspec.Name = ecmaILGlobals.tspec_UIntPtr.Name -> output_string os "native unsigned int" + | ILType.Value tspec when tspec.Name = ecmaILGlobals.tspec_Double.Name -> output_string os "float64" + | ILType.Value tspec when tspec.Name = ecmaILGlobals.tspec_Single.Name -> output_string os "float32" + | ILType.Value tspec when tspec.Name = ecmaILGlobals.tspec_Bool.Name -> output_string os "bool" + | ILType.Value tspec when tspec.Name = ecmaILGlobals.tspec_Char.Name -> output_string os "char" + | ILType.Value tspec when tspec.Name = ecmaILGlobals.tspec_TypedReference.Name -> output_string os "refany" + | ILType.Value tspec -> + output_string os "value class "; + goutput_tref env os tspec.TypeRef; + output_string os " "; + goutput_gactuals env os tspec.GenericArgs + | ILType.Void -> output_string os "void" + | ILType.Array (bounds,ty) -> + goutput_typ env os ty; + output_string os "["; + output_arr_bounds os bounds; + output_string os "]"; + | ILType.FunctionPointer csig -> + output_string os "method "; + goutput_typ env os csig.ReturnType; + output_string os " *("; + output_seq "," (goutput_typ env) os csig.ArgTypes; + output_string os ")" + | _ -> output_string os "NaT" + +and output_tyvar os d = + output_u16 os d; () + +and goutput_ldtoken_info env os = function + | ILToken.ILType x -> goutput_typ env os x + | ILToken.ILMethod x -> output_string os "method "; goutput_mspec env os x + | ILToken.ILField x -> output_string os "field "; goutput_fspec env os x + +and goutput_typ_with_shortened_class_syntax env os = function + ILType.Boxed tspec when tspec.GenericArgs = emptyILGenericArgs -> + goutput_tref env os tspec.TypeRef + | typ2 -> goutput_typ env os typ2 + +and goutput_gactuals env os inst = + if inst.Length = 0 then () + else + output_string os "<"; + output_seq ", " (goutput_gactual env) os inst + output_string os ">"; + +and goutput_gactual env os ty = goutput_typ env os ty + +and goutput_tspec env os tspec = + output_string os "class "; + goutput_tref env os tspec.TypeRef; + output_string os " "; + goutput_gactuals env os tspec.GenericArgs; + +and output_arr_bounds os = function + | bounds when bounds = ILArrayShape.SingleDimensional -> () + | ILArrayShape l -> + output_seq "," + (fun os -> function + | (None,None) -> output_string os "" + | (None,Some sz) -> + output_int os sz + | (Some lower,None) -> + output_int os lower; + output_string os " ... " + | (Some lower,Some d) -> + output_int os lower; + output_string os " ... "; + output_int os d) + os + l + +and goutput_permission _env os p = + let output_security_action os x = + output_string os + (match x with + | ILSecurityAction.Request -> "request" + | ILSecurityAction.Demand -> "demand" + | ILSecurityAction.Assert-> "assert" + | ILSecurityAction.Deny-> "deny" + | ILSecurityAction.PermitOnly-> "permitonly" + | ILSecurityAction.LinkCheck-> "linkcheck" + | ILSecurityAction.InheritCheck-> "inheritcheck" + | ILSecurityAction.ReqMin-> "reqmin" + | ILSecurityAction.ReqOpt-> "reqopt" + | ILSecurityAction.ReqRefuse-> "reqrefuse" + | ILSecurityAction.PreJitGrant-> "prejitgrant" + | ILSecurityAction.PreJitDeny-> "prejitdeny" + | ILSecurityAction.NonCasDemand-> "noncasdemand" + | ILSecurityAction.NonCasLinkDemand-> "noncaslinkdemand" + | ILSecurityAction.NonCasInheritance-> "noncasinheritance" + | ILSecurityAction.LinkDemandChoice -> "linkdemandchoice" + | ILSecurityAction.InheritanceDemandChoice -> "inheritancedemandchoice" + | ILSecurityAction.DemandChoice -> "demandchoice") + + + + match p with + | PermissionSet (sa,b) -> + output_string os " .permissionset "; + output_security_action os sa ; + output_string os " = (" ; + output_bytes os b ; + output_string os ")" ; + +and goutput_security_decls env os (ps: ILPermissions) = output_seq " " (goutput_permission env) os ps.AsList + +and goutput_gparam env os (gf: ILGenericParameterDef) = + output_string os (tyvar_generator gf.Name); + output_parens (output_seq "," (goutput_typ env)) os gf.Constraints + +and goutput_gparams env os b = + if nonNil b then + output_string os "<"; output_seq "," (goutput_gparam env) os b; output_string os ">"; () + +and output_bcc os bcc = + output_string os + (match bcc with + | ILArgConvention.FastCall -> "fastcall " + | ILArgConvention.StdCall -> "stdcall " + | ILArgConvention.ThisCall -> "thiscall " + | ILArgConvention.CDecl -> "cdecl " + | ILArgConvention.Default -> " " + | ILArgConvention.VarArg -> "vararg ") + +and output_callconv os (Callconv (hasthis,cc)) = + output_string os + (match hasthis with + ILThisConvention.Instance -> "instance " + | ILThisConvention.InstanceExplicit -> "explicit " + | ILThisConvention.Static -> "") ; + output_bcc os cc + +and goutput_dlocref env os (dref:ILType) = + match dref with + | dref when + dref.IsNominal && + isTypeNameForGlobalFunctions dref.TypeRef.Name && + dref.TypeRef.Scope = ILScopeRef.Local -> + () + | dref when + dref.IsNominal && + isTypeNameForGlobalFunctions dref.TypeRef.Name -> + goutput_scoref env os dref.TypeRef.Scope; + output_string os "::" + | ty ->goutput_typ_with_shortened_class_syntax env os ty; output_string os "::" + +and goutput_callsig env os (csig:ILCallingSignature) = + output_callconv os csig.CallingConv; + output_string os " "; + goutput_typ env os csig.ReturnType; + output_parens (output_seq "," (goutput_typ env)) os csig.ArgTypes + +and goutput_mref env os (mref:ILMethodRef) = + output_callconv os mref.CallingConv; + output_string os " "; + goutput_typ_with_shortened_class_syntax env os mref.ReturnType; + output_string os " "; + // no quotes for ".ctor" + let name = mref.Name + if name = ".ctor" || name = ".cctor" then output_string os name else output_id os name; + output_parens (output_seq "," (goutput_typ env)) os mref.ArgTypes + +and goutput_mspec env os (mspec:ILMethodSpec) = + let fenv = + ppenv_enter_method mspec.GenericArity + (ppenv_enter_tdef (mkILFormalTyparsRaw mspec.EnclosingType.GenericArgs) env) + output_callconv os mspec.CallingConv; + output_string os " "; + goutput_typ fenv os mspec.FormalReturnType; + output_string os " "; + goutput_dlocref env os mspec.EnclosingType; + output_string os " "; + let name = mspec.Name + if name = ".ctor" || name = ".cctor" then output_string os name else output_id os name; + goutput_gactuals env os mspec.GenericArgs; + output_parens (output_seq "," (goutput_typ fenv)) os mspec.FormalArgTypes; + +and goutput_vararg_mspec env os (mspec, varargs) = + match varargs with + | None -> goutput_mspec env os mspec + | Some varargs' -> + let fenv = + ppenv_enter_method mspec.GenericArity + (ppenv_enter_tdef (mkILFormalTyparsRaw mspec.EnclosingType.GenericArgs) env) + output_callconv os mspec.CallingConv; + output_string os " "; + goutput_typ fenv os mspec.FormalReturnType; + output_string os " "; + goutput_dlocref env os mspec.EnclosingType; + let name = mspec.Name + if name = ".ctor" || name = ".cctor" then output_string os name else output_id os name + goutput_gactuals env os mspec.GenericArgs; + output_string os "("; + output_seq "," (goutput_typ fenv) os mspec.FormalArgTypes; + output_string os ",...,"; + output_seq "," (goutput_typ fenv) os varargs'; + output_string os ")"; + +and goutput_vararg_sig env os (csig:ILCallingSignature,varargs:ILVarArgs) = + match varargs with + | None -> goutput_callsig env os csig; () + | Some varargs' -> + goutput_typ env os csig.ReturnType; + output_string os " ("; + let argtys = csig.ArgTypes + if argtys.Length <> 0 then + output_seq ", " (goutput_typ env) os argtys + output_string os ",...,"; + output_seq "," (goutput_typ env) os varargs'; + output_string os ")"; + +and goutput_fspec env os (x:ILFieldSpec) = + let fenv = ppenv_enter_tdef (mkILFormalTyparsRaw x.EnclosingType.GenericArgs) env + goutput_typ fenv os x.FormalType; + output_string os " "; + goutput_dlocref env os x.EnclosingType; + output_id os x.Name + +let output_member_access os access = + output_string os + (match access with + | ILMemberAccess.Public -> "public" + | ILMemberAccess.Private -> "private" + | ILMemberAccess.CompilerControlled -> "privatescope" + | ILMemberAccess.Family -> "family" + | ILMemberAccess.FamilyAndAssembly -> "famandassem" + | ILMemberAccess.FamilyOrAssembly -> "famorassem" + | ILMemberAccess.Assembly -> "assembly") + +let output_type_access os access = + match access with + | ILTypeDefAccess.Public -> output_string os "public" + | ILTypeDefAccess.Private -> output_string os "private" + | ILTypeDefAccess.Nested ilMemberAccess -> output_string os "nested "; output_member_access os ilMemberAccess + +let output_encoding os e = + match e with + | ILDefaultPInvokeEncoding.Ansi -> output_string os " ansi " + | ILDefaultPInvokeEncoding.Auto -> output_string os " autochar " + | ILDefaultPInvokeEncoding.Unicode -> output_string os " unicode " +let output_field_init os = function + | ILFieldInit.String s -> output_string os "= "; output_string os s + | ILFieldInit.Bool x-> output_string os "= bool"; output_parens output_string os (if x then "true" else "false") + | ILFieldInit.Char x-> output_string os "= char"; output_parens output_u16 os x + | ILFieldInit.Int8 x-> output_string os "= int8"; output_parens output_i8 os x + | ILFieldInit.Int16 x-> output_string os "= int16"; output_parens output_i16 os x + | ILFieldInit.Int32 x-> output_string os "= int32"; output_parens output_i32 os x + | ILFieldInit.Int64 x-> output_string os "= int64"; output_parens output_i64 os x + | ILFieldInit.UInt8 x-> output_string os "= uint8"; output_parens output_u8 os x + | ILFieldInit.UInt16 x-> output_string os "= uint16"; output_parens output_u16 os x + | ILFieldInit.UInt32 x-> output_string os "= uint32"; output_parens output_u32 os x + | ILFieldInit.UInt64 x-> output_string os "= uint64"; output_parens output_u64 os x + | ILFieldInit.Single x-> output_string os "= float32"; output_parens output_ieee32 os x + | ILFieldInit.Double x-> output_string os "= float64"; output_parens output_ieee64 os x + | ILFieldInit.Null-> output_string os "= nullref" + +let output_at os b = + Printf.fprintf os " at (* no labels for data available, data = %a *)" (output_parens output_bytes) b + +let output_option f os = function None -> () | Some x -> f os x + +let goutput_alternative_ref env os (alt: IlxUnionAlternative) = + output_id os alt.Name; + alt.FieldDefs |> Array.toList |> output_parens (output_seq "," (fun os fdef -> goutput_typ env os fdef.Type)) os + +let goutput_curef env os (IlxUnionRef(tref,alts,_,_)) = + output_string os " .classunion import "; + goutput_tref env os tref; + output_parens (output_seq "," (goutput_alternative_ref env)) os (Array.toList alts) + +let goutput_cuspec env os (IlxUnionSpec(IlxUnionRef(tref,_,_,_),i)) = + output_string os "class /* classunion */ "; + goutput_tref env os tref; + goutput_gactuals env os i + +let output_basic_type os x = + output_string os + (match x with + | DT_I1 -> "i1" + | DT_U1 -> "u1" + | DT_I2 -> "i2" + | DT_U2 -> "u2" + | DT_I4 -> "i4" + | DT_U4 -> "u4" + | DT_I8 -> "i8" + | DT_U8 -> "u8" + | DT_R4 -> "r4" + | DT_R8 -> "r8" + | DT_R -> "r" + | DT_I -> "i" + | DT_U -> "u" + | DT_REF -> "ref") + +let output_custom_attr_data os data = + output_string os " = "; output_parens output_bytes os data + +let goutput_custom_attr env os attr = + output_string os " .custom "; + goutput_mspec env os attr.Method; + output_custom_attr_data os attr.Data + +let goutput_custom_attrs env os (attrs : ILAttributes) = + List.iter (fun attr -> goutput_custom_attr env os attr; output_string os "\n" ) attrs.AsList + +let goutput_fdef _tref env os fd = + output_string os " .field "; + match fd.Offset with Some i -> output_string os "["; output_i32 os i; output_string os "] " | None -> () + match fd.Marshal with Some _i -> output_string os "// marshal attribute not printed\n"; | None -> () + output_member_access os fd.Access; + output_string os " "; + if fd.IsStatic then output_string os " static "; + if fd.IsLiteral then output_string os " literal "; + if fd.IsSpecialName then output_string os " specialname rtspecialname "; + if fd.IsInitOnly then output_string os " initonly "; + if fd.NotSerialized then output_string os " notserialized "; + goutput_typ env os fd.Type; + output_string os " "; + output_id os fd.Name; + output_option output_at os fd.Data; + output_option output_field_init os fd.LiteralValue; + output_string os "\n"; + goutput_custom_attrs env os fd.CustomAttrs + + +let output_alignment os = function + Aligned -> () + | Unaligned1 -> output_string os "unaligned. 1 " + | Unaligned2 -> output_string os "unaligned. 2 " + | Unaligned4 -> output_string os "unaligned. 4 " + +let output_volatility os = function + Nonvolatile -> () + | Volatile -> output_string os "volatile. " +let output_tailness os = function + | Tailcall -> output_string os "tail. " + | _ -> () +let output_after_tailcall os = function + | Tailcall -> output_string os " ret " + | _ -> () +let rec goutput_apps env os = function + | Apps_tyapp (actual,cs) -> + output_angled (goutput_gactual env) os actual; + output_string os " "; + output_angled (goutput_gparam env) os (mkILSimpleTypar "T") ; + output_string os " "; + goutput_apps env os cs + | Apps_app(ty,cs) -> + output_parens (goutput_typ env) os ty; + output_string os " "; + goutput_apps env os cs + | Apps_done ty -> + output_string os "--> "; + goutput_typ env os ty + +/// utilities to help print out short forms of instructions +let output_short_u16 os (x:uint16) = + if int x < 256 then (output_string os ".s "; output_u16 os x) + else (output_string os " "; output_u16 os x) +let output_short_i32 os i32 = + if i32 < 256 && 0 >= i32 then (output_string os ".s "; output_i32 os i32) + else (output_string os " "; output_i32 os i32 ) + +let output_code_label os lab = + output_string os (formatCodeLabel lab) + +let goutput_local env os (l: ILLocal) = + goutput_typ env os l.Type; + if l.IsPinned then output_string os " pinned" + +let goutput_param env os (l: ILParameter) = + match l.Name with + None -> goutput_typ env os l.Type; + | Some n -> goutput_typ env os l.Type; output_string os " "; output_sqstring os n + +let goutput_params env os ps = + output_parens (output_seq "," (goutput_param env)) os ps + +let goutput_freevar env os l = + goutput_typ env os l.fvType; output_string os " "; output_sqstring os l.fvName + +let goutput_freevars env os ps = + output_parens (output_seq "," (goutput_freevar env)) os ps + +let output_source os (s:ILSourceMarker) = + if s.Document.File <> "" then + output_string os " .line "; + output_int os s.Line; + if s.Column <> -1 then + output_string os " : "; + output_int os s.Column; + output_string os " /* - "; + output_int os s.EndLine; + if s.Column <> -1 then + output_string os " : "; + output_int os s.EndColumn; + output_string os "*/ "; + output_sqstring os s.Document.File + + +let rec goutput_instr env os inst = + match inst with + | si when isNoArgInstr si -> + output_lid os (wordsOfNoArgInstr si) + | I_brcmp (cmp,tg1,_tg2) -> + output_string os + (match cmp with + | BI_beq -> "beq" + | BI_bgt -> "bgt" + | BI_bgt_un -> "bgt.un" + | BI_bge -> "bge" + | BI_bge_un -> "bge.un" + | BI_ble -> "ble" + | BI_ble_un -> "ble.un" + | BI_blt -> "blt" + | BI_blt_un -> "blt.un" + | BI_bne_un -> "bne.un" + | BI_brfalse -> "brfalse" + | BI_brtrue -> "brtrue"); + output_string os " "; + output_code_label os tg1 + | I_br tg -> output_string os "/* br "; output_code_label os tg; output_string os "*/"; + | I_leave tg -> output_string os "leave "; output_code_label os tg + | I_call (tl,mspec,varargs) -> + output_tailness os tl; + output_string os "call "; + goutput_vararg_mspec env os (mspec,varargs); + output_after_tailcall os tl; + | I_calli (tl,mref,varargs) -> + output_tailness os tl; + output_string os "calli "; + goutput_vararg_sig env os (mref,varargs); + output_after_tailcall os tl; + | I_ldarg u16 -> output_string os "ldarg"; output_short_u16 os u16 + | I_ldarga u16 -> output_string os "ldarga "; output_u16 os u16 + | (AI_ldc (dt, ILConst.I4 x)) -> + output_string os "ldc."; output_basic_type os dt; output_short_i32 os x + | (AI_ldc (dt, ILConst.I8 x)) -> + output_string os "ldc."; output_basic_type os dt; output_string os " "; output_i64 os x + | (AI_ldc (dt, ILConst.R4 x)) -> + output_string os "ldc."; output_basic_type os dt; output_string os " "; output_ieee32 os x + | (AI_ldc (dt, ILConst.R8 x)) -> + output_string os "ldc."; output_basic_type os dt; output_string os " "; output_ieee64 os x + | I_ldftn mspec -> output_string os "ldftn "; goutput_mspec env os mspec + | I_ldvirtftn mspec -> output_string os "ldvirtftn "; goutput_mspec env os mspec + | I_ldind (al,vol,dt) -> + output_alignment os al; + output_volatility os vol; + output_string os "ldind."; + output_basic_type os dt + | I_cpblk (al,vol) -> + output_alignment os al; + output_volatility os vol; + output_string os "cpblk" + | I_initblk (al,vol) -> + output_alignment os al; + output_volatility os vol; + output_string os "initblk" + | I_ldloc u16 -> output_string os "ldloc"; output_short_u16 os u16 + | I_ldloca u16 -> output_string os "ldloca "; output_u16 os u16 + | I_starg u16 -> output_string os "starg "; output_u16 os u16 + | I_stind (al,vol,dt) -> + output_alignment os al; + output_volatility os vol; + output_string os "stind."; + output_basic_type os dt + | I_stloc u16 -> output_string os "stloc"; output_short_u16 os u16 + | I_switch (l,_dflt) -> output_string os "switch "; output_parens (output_seq "," output_code_label) os l + | I_callvirt (tl,mspec,varargs) -> + output_tailness os tl; + output_string os "callvirt "; + goutput_vararg_mspec env os (mspec,varargs); + output_after_tailcall os tl; + | I_callconstraint (tl,ty,mspec,varargs) -> + output_tailness os tl; + output_string os "constraint. "; + goutput_typ env os ty; + output_string os " callvirt "; + goutput_vararg_mspec env os (mspec,varargs); + output_after_tailcall os tl; + | I_castclass ty -> output_string os "castclass "; goutput_typ env os ty + | I_isinst ty -> output_string os "isinst "; goutput_typ env os ty + | I_ldfld (al,vol,fspec) -> + output_alignment os al; + output_volatility os vol; + output_string os "ldfld "; + goutput_fspec env os fspec + | I_ldflda fspec -> + output_string os "ldflda " ; + goutput_fspec env os fspec + | I_ldsfld (vol,fspec) -> + output_volatility os vol; + output_string os "ldsfld "; + goutput_fspec env os fspec + | I_ldsflda fspec -> + output_string os "ldsflda "; + goutput_fspec env os fspec + | I_stfld (al,vol,fspec) -> + output_alignment os al; + output_volatility os vol; + output_string os "stfld "; + goutput_fspec env os fspec + | I_stsfld (vol,fspec) -> + output_volatility os vol; + output_string os "stsfld "; + goutput_fspec env os fspec + | I_ldtoken tok -> output_string os "ldtoken "; goutput_ldtoken_info env os tok + | I_refanyval ty -> output_string os "refanyval "; goutput_typ env os ty + | I_refanytype -> output_string os "refanytype" + | I_mkrefany typ -> output_string os "mkrefany "; goutput_typ env os typ + | I_ldstr s -> + output_string os "ldstr "; + output_string os s + | I_newobj (mspec,varargs) -> + // newobj: IL has a special rule that the CC is always implicitly "instance" and need + // not be mentioned explicitly + output_string os "newobj "; + goutput_vararg_mspec env os (mspec,varargs) + | I_stelem dt -> output_string os "stelem."; output_basic_type os dt + | I_ldelem dt -> output_string os "ldelem."; output_basic_type os dt + + | I_newarr (shape,typ) -> + if shape = ILArrayShape.SingleDimensional then + output_string os "newarr "; + goutput_typ_with_shortened_class_syntax env os typ + else + output_string os "newobj void "; + goutput_dlocref env os (mkILArrTy(typ,shape)); + output_string os ".ctor"; + let rank = shape.Rank + output_parens (output_seq "," (goutput_typ env)) os (Array.toList (Array.create ( rank) ecmaILGlobals.typ_int32)) + | I_stelem_any (shape,dt) -> + if shape = ILArrayShape.SingleDimensional then + output_string os "stelem.any "; goutput_typ env os dt + else + output_string os "call instance void "; + goutput_dlocref env os (mkILArrTy(dt,shape)); + output_string os "Set"; + let rank = shape.Rank + output_parens (output_seq "," (goutput_typ env)) os (Array.toList (Array.create ( rank) ecmaILGlobals.typ_int32) @ [dt]) + | I_ldelem_any (shape,tok) -> + if shape = ILArrayShape.SingleDimensional then + output_string os "ldelem.any "; goutput_typ env os tok + else + output_string os "call instance "; + goutput_typ env os tok; + output_string os " "; + goutput_dlocref env os (mkILArrTy(tok,shape)); + output_string os "Get"; + let rank = shape.Rank + output_parens (output_seq "," (goutput_typ env)) os (Array.toList (Array.create ( rank) ecmaILGlobals.typ_int32)) + | I_ldelema (ro,_,shape,tok) -> + if ro = ReadonlyAddress then output_string os "readonly. "; + if shape = ILArrayShape.SingleDimensional then + output_string os "ldelema "; goutput_typ env os tok + else + output_string os "call instance "; + goutput_typ env os (ILType.Byref tok); + output_string os " "; + goutput_dlocref env os (mkILArrTy(tok,shape)); + output_string os "Address"; + let rank = shape.Rank + output_parens (output_seq "," (goutput_typ env)) os (Array.toList (Array.create ( rank) ecmaILGlobals.typ_int32)) + + | I_box tok -> output_string os "box "; goutput_typ env os tok + | I_unbox tok -> output_string os "unbox "; goutput_typ env os tok + | I_unbox_any tok -> output_string os "unbox.any "; goutput_typ env os tok + | I_initobj tok -> output_string os "initobj "; goutput_typ env os tok + | I_ldobj (al,vol,tok) -> + output_alignment os al; + output_volatility os vol; + output_string os "ldobj "; + goutput_typ env os tok + | I_stobj (al,vol,tok) -> + output_alignment os al; + output_volatility os vol; + output_string os "stobj "; + goutput_typ env os tok + | I_cpobj tok -> output_string os "cpobj "; goutput_typ env os tok + | I_sizeof tok -> output_string os "sizeof "; goutput_typ env os tok + | I_seqpoint s -> output_source os s + | (EI_ilzero ty) -> output_string os "ilzero "; goutput_typ env os ty + | I_other e when isIlxExtInstr e -> + match (destIlxExtInstr e) with + | EI_castdata (check,ty,n) -> + if not check then output_string os "/* unchecked. */ "; + output_string os "castdata "; + goutput_cuspec env os ty; + output_string os ","; + output_int os n + | (EI_isdata (_,ty,n)) -> + output_string os "isdata "; + goutput_cuspec env os ty; + output_string os ","; + output_int os n + | (EI_brisdata (_,ty,n,tg1,_)) -> + output_string os "brisdata "; + goutput_cuspec env os ty; + output_string os ","; + output_string os "("; + output_int os n; + output_string os ","; + output_code_label os tg1; + output_string os ")" + | (EI_lddata (_,ty,n,m)) -> + output_string os "lddata "; + goutput_cuspec env os ty; + output_string os ","; + output_int os n; + output_string os ","; + output_int os m + | (EI_lddatatag (_,ty)) -> + output_string os "lddatatag "; + goutput_cuspec env os ty + | (EI_stdata (ty,n,m)) -> + output_string os "stdata "; + goutput_cuspec env os ty; + output_string os ","; + output_int os n; + output_string os ","; + output_int os m + | (EI_newdata (ty,n)) -> + output_string os "newdata "; + goutput_cuspec env os ty; + output_string os ","; + output_int os n + | (EI_datacase (_,ty,l,_)) -> + output_string os "datacase"; + output_string os " "; + goutput_cuspec env os ty; + output_string os ","; + output_parens (output_seq "," (fun os (x,y) -> output_int os x; output_string os ","; output_code_label os y)) os l + | (EI_callfunc (tl,cs)) -> + output_tailness os tl; + output_string os "callfunc "; + goutput_apps env os cs; + output_after_tailcall os tl; + | _ -> + output_string os "" + + +let goutput_ilmbody env os il = + if il.IsZeroInit then output_string os " .zeroinit\n"; + output_string os " .maxstack "; + output_i32 os il.MaxStack; + output_string os "\n"; + let output_susp os susp = + match susp with + | Some s -> + output_string os "\nbr "; output_code_label os s; output_string os "\n" + | _ -> () + let commit_susp os susp lab = + match susp with + | Some s when s <> lab -> output_susp os susp + | _ -> () + if il.Locals.Length <> 0 then + output_string os " .locals("; + output_seq ",\n " (goutput_local env) os il.Locals + output_string os ")\n" + + // Print the code by left-to-right traversal + let rec goutput_block env os (susp,block) = + match block with + | ILBasicBlock bb -> + commit_susp os susp bb.Label; + output_code_label os bb.Label; output_string os ": \n" ; + Array.iter (fun i -> goutput_instr env os i; output_string os "\n") bb.Instructions; + bb.Fallthrough + | GroupBlock (_,l) -> + let new_susp = ref susp + List.iter (fun c -> new_susp := goutput_code env os (!new_susp,c)) l; + !new_susp + | RestrictBlock (_,c) -> goutput_code env os (susp,c) + | TryBlock (c,seh) -> + + commit_susp os susp (uniqueEntryOfCode c); + output_string os " .try {\n"; + let susp = goutput_code env os (None,c) + if (susp <> None) then output_string os "// warning: fallthrough at end of try\n"; + output_string os "\n}"; + match seh with + | FaultBlock flt -> + output_string os "fault {\n"; + output_susp os (goutput_code env os (None,flt)); + output_string os "\n}" + | FinallyBlock flt -> + output_string os "finally {\n"; + output_susp os (goutput_code env os (None,flt)); + output_string os "\n}"; + | FilterCatchBlock clauses -> + List.iter + (fun (flt,ctch) -> + match flt with + | TypeFilter typ -> + output_string os " catch "; + goutput_typ_with_shortened_class_syntax env os typ; + output_string os "{\n"; + output_susp os (goutput_code env os (None,ctch)); + output_string os "\n}" + | CodeFilter fltcode -> + output_string os "filter {\n"; + output_susp os (goutput_code env os (None,fltcode)); + output_string os "\n} catch {\n"; + output_susp os (goutput_code env os (None,ctch)); + output_string os "\n}";) + clauses + None + + and goutput_code env os (susp,code) = + goutput_block env os (susp,code) + + let goutput_topcode env os code = + let final_susp = goutput_code env os (Some (uniqueEntryOfCode code),code) + (match final_susp with Some s -> output_string os "\nbr "; output_code_label os s; output_string os "\n" | _ -> ()) + + goutput_topcode env os il.Code; + +let goutput_mbody is_entrypoint env os md = + match md.mdCodeKind with + | MethodCodeKind.Native -> output_string os "native " + | MethodCodeKind.IL -> output_string os "cil " + | MethodCodeKind.Runtime -> output_string os "runtime " + + output_string os (if md.IsInternalCall then "internalcall " else " "); + output_string os (if md.IsManaged then "managed " else " "); + output_string os (if md.IsForwardRef then "forwardref " else " "); + output_string os " \n{ \n" ; + goutput_security_decls env os md.SecurityDecls; + goutput_custom_attrs env os md.CustomAttrs; + match md.mdBody.Contents with + | MethodBody.IL il -> goutput_ilmbody env os il + | _ -> () + if is_entrypoint then output_string os " .entrypoint"; + output_string os "\n"; + output_string os "}\n" + +let goutput_mdef env os md = + let attrs = + match md.mdKind with + | MethodKind.Virtual vinfo -> + "virtual "^ + (if vinfo.IsFinal then "final " else "")^ + (if vinfo.IsNewSlot then "newslot " else "")^ + (if vinfo.IsCheckAccessOnOverride then " strict " else "")^ + (if vinfo.IsAbstract then " abstract " else "")^ + " " + | MethodKind.NonVirtual -> "" + | MethodKind.Ctor -> "rtspecialname" + | MethodKind.Static -> + "static "^ + (match md.mdBody.Contents with + MethodBody.PInvoke (attr) -> + "pinvokeimpl(\""^ attr.Where.Name^"\" as \""^ attr.Name ^"\""^ + (match attr.CallingConv with + | PInvokeCallingConvention.None -> "" + | PInvokeCallingConvention.Cdecl -> " cdecl" + | PInvokeCallingConvention.Stdcall -> " stdcall" + | PInvokeCallingConvention.Thiscall -> " thiscall" + | PInvokeCallingConvention.Fastcall -> " fastcall" + | PInvokeCallingConvention.WinApi -> " winapi" ) + + + (match attr.CharEncoding with + | PInvokeCharEncoding.None -> "" + | PInvokeCharEncoding.Ansi -> " ansi" + | PInvokeCharEncoding.Unicode -> " unicode" + | PInvokeCharEncoding.Auto -> " autochar") + + + (if attr.NoMangle then " nomangle" else "") + + (if attr.LastError then " lasterr" else "") + + ")" + | _ -> + "") + | MethodKind.Cctor -> "specialname rtspecialname static" + let is_entrypoint = md.IsEntryPoint + let menv = ppenv_enter_method (List.length md.GenericParams) env + output_string os " .method "; + if md.IsHideBySig then output_string os "hidebysig "; + if md.IsReqSecObj then output_string os "reqsecobj "; + if md.IsSpecialName then output_string os "specialname "; + if md.IsUnmanagedExport then output_string os "unmanagedexp "; + output_member_access os md.Access; + output_string os " "; + output_string os attrs; + output_string os " "; + output_callconv os md.CallingConv; + output_string os " "; + (goutput_typ menv) os md.Return.Type; + output_string os " "; + output_id os md.Name ; + output_string os " "; + (goutput_gparams env) os md.GenericParams; + output_string os " "; + (goutput_params menv) os md.Parameters; + output_string os " "; + if md.IsSynchronized then output_string os "synchronized "; + if md.IsMustRun then output_string os "/* mustrun */ "; + if md.IsPreserveSig then output_string os "preservesig "; + if md.IsNoInline then output_string os "noinlining "; + (goutput_mbody is_entrypoint menv) os md; + output_string os "\n" + +let goutput_pdef env os pd = + output_string os "property\n\tgetter: "; + (match pd.GetMethod with None -> () | Some mref -> goutput_mref env os mref); + output_string os "\n\tsetter: "; + (match pd.SetMethod with None -> () | Some mref -> goutput_mref env os mref) + +let goutput_superclass env os = function + None -> () + | Some typ -> output_string os "extends "; (goutput_typ_with_shortened_class_syntax env) os typ + +let goutput_superinterfaces env os imp = + if imp = [] then () else + output_string os "implements "; + output_seq "," (goutput_typ_with_shortened_class_syntax env) os imp + +let goutput_implements env os (imp:ILTypes) = + if imp.Length = 0 then () else + output_string os "implements "; + output_seq "," (goutput_typ_with_shortened_class_syntax env) os imp + +let the = function Some x -> x | None -> failwith "the" + +let output_type_layout_info os info = + if info.Size <> None then (output_string os " .size "; output_i32 os (the info.Size)); + if info.Pack <> None then (output_string os " .pack "; output_u16 os (the info.Pack)) + +let splitTypeLayout = function + | ILTypeDefLayout.Auto -> "auto",(fun _os () -> ()) + | ILTypeDefLayout.Sequential info -> "sequential", (fun os () -> output_type_layout_info os info) + | ILTypeDefLayout.Explicit info -> "explicit", (fun os () -> output_type_layout_info os info) + + +let goutput_fdefs tref env os (fdefs: ILFieldDefs) = + List.iter (fun f -> (goutput_fdef tref env) os f; output_string os "\n" ) fdefs.AsList +let goutput_mdefs env os (mdefs: ILMethodDefs) = + List.iter (fun f -> (goutput_mdef env) os f; output_string os "\n" ) mdefs.AsList +let goutput_pdefs env os (pdefs: ILPropertyDefs) = + List.iter (fun f -> (goutput_pdef env) os f; output_string os "\n" ) pdefs.AsList + +let rec goutput_tdef (enc) env contents os cd = + let env = ppenv_enter_tdef cd.GenericParams env + let layout_attr,pp_layout_decls = splitTypeLayout cd.Layout + if isTypeNameForGlobalFunctions cd.Name then + if contents then + let tref = (mkILNestedTyRef (ILScopeRef.Local,enc,cd.Name)) + goutput_mdefs env os cd.Methods; + goutput_fdefs tref env os cd.Fields; + goutput_pdefs env os cd.Properties; + else + let isclo = + match cd.tdKind with + | ILTypeDefKind.Other e when isIlxExtTypeDefKind e -> + match destIlxExtTypeDefKind e with + | IlxTypeDefKind.Closure _ -> true + | _ -> false + | _ -> false + let isclassunion = + match cd.tdKind with + | ILTypeDefKind.Other e when isIlxExtTypeDefKind e -> + match destIlxExtTypeDefKind e with + | IlxTypeDefKind.Union _ -> true + | _ -> false + | _ -> false + if not (isclo || isclassunion) || contents then + output_string os "\n"; + match cd.tdKind with + | ILTypeDefKind.Class | ILTypeDefKind.Enum | ILTypeDefKind.Delegate | ILTypeDefKind.ValueType -> output_string os ".class " + | ILTypeDefKind.Interface -> output_string os ".class interface " + | ILTypeDefKind.Other e when isIlxExtTypeDefKind e -> + match destIlxExtTypeDefKind e with + | IlxTypeDefKind.Closure _ -> output_string os ".closure " + | IlxTypeDefKind.Union _ -> output_string os ".classunion " + | ILTypeDefKind.Other _ -> failwith "unknown extension" + output_init_semantics os cd.InitSemantics; + output_string os " "; + output_type_access os cd.Access; + output_string os " "; + output_encoding os cd.Encoding; + output_string os " "; + output_string os layout_attr; + output_string os " "; + if cd.IsSealed then output_string os "sealed "; + if cd.IsAbstract then output_string os "abstract "; + if cd.IsSerializable then output_string os "serializable "; + if cd.IsComInterop then output_string os "import "; + output_sqstring os cd.Name ; + goutput_gparams env os cd.GenericParams; + output_string os "\n\t"; + if isclo then + match cd.tdKind with + | ILTypeDefKind.Other e when isIlxExtTypeDefKind e -> + match destIlxExtTypeDefKind e with + | IlxTypeDefKind.Closure _cloinfo -> + () //goutput_freevars env os cloinfo.cloFreeVars + | _ -> () + | _ -> () + else + goutput_superclass env os cd.Extends; + output_string os "\n\t"; + goutput_implements env os cd.Implements; + output_string os "\n{\n "; + if contents then + let tref = (mkILNestedTyRef (ILScopeRef.Local,enc,cd.Name)) + goutput_custom_attrs env os cd.CustomAttrs; + goutput_security_decls env os cd.SecurityDecls; + pp_layout_decls os (); + goutput_fdefs tref env os cd.Fields; + goutput_mdefs env os cd.Methods; + match cd.tdKind with + | ILTypeDefKind.Other e when isIlxExtTypeDefKind e -> + match destIlxExtTypeDefKind e with + | IlxTypeDefKind.Closure x -> + output_string os "\n.apply "; + (goutput_lambdas env) os x.cloStructure; + output_string os "\n { "; + (goutput_ilmbody env) os (Lazy.force x.cloCode); + output_string os "}\n"; + | IlxTypeDefKind.Union x -> + Array.iter (fun x -> output_string os " .alternative "; + goutput_alternative_ref env os x) x.cudAlternatives; + | _ -> () + goutput_tdefs contents (enc@[cd.Name]) env os cd.NestedTypes; + output_string os "\n}"; + +and output_init_semantics os f = + match f with + ILTypeInit.BeforeField -> output_string os "beforefieldinit"; + | ILTypeInit.OnAny -> () + +and goutput_lambdas env os lambdas = + match lambdas with + | Lambdas_forall (gf,l) -> + output_angled (goutput_gparam env) os gf; + output_string os " "; + (goutput_lambdas env) os l + | Lambdas_lambda (ps,l) -> + output_parens (goutput_param env) os ps; + output_string os " "; + (goutput_lambdas env) os l + | Lambdas_return typ -> output_string os "--> "; (goutput_typ env) os typ + +and goutput_tdefs contents (enc) env os (td: ILTypeDefs) = + List.iter (goutput_tdef enc env contents os) td.AsList + +let output_ver os (a,b,c,d) = + output_string os " .ver "; + output_u16 os a; + output_string os " : "; + output_u16 os b; + output_string os " : "; + output_u16 os c; + output_string os " : "; + output_u16 os d + +let output_locale os s = output_string os " .Locale "; output_qstring os s + +let output_hash os x = + output_string os " .hash = "; output_parens output_bytes os x +let output_publickeytoken os x = + output_string os " .publickeytoken = "; output_parens output_bytes os x +let output_publickey os x = + output_string os " .publickey = "; output_parens output_bytes os x + +let output_publickeyinfo os = function + | PublicKey k -> output_publickey os k + | PublicKeyToken k -> output_publickeytoken os k + +let output_assref os (aref:ILAssemblyRef) = + output_string os " .assembly extern "; + output_sqstring os aref.Name; + if aref.Retargetable then output_string os " retargetable "; + output_string os " { "; + (output_option output_hash) os aref.Hash; + (output_option output_publickeyinfo) os aref.PublicKey; + (output_option output_ver) os aref.Version; + (output_option output_locale) os aref.Locale; + output_string os " } " + +let output_modref os (modref:ILModuleRef) = + output_string os (if modref.HasMetadata then " .module extern " else " .file nometadata " ); + output_sqstring os modref.Name; + (output_option output_hash) os modref.Hash + +let goutput_resource env os r = + output_string os " .mresource "; + output_string os (match r.Access with ILResourceAccess.Public -> " public " | ILResourceAccess.Private -> " private "); + output_sqstring os r.Name; + output_string os " { "; + goutput_custom_attrs env os r.CustomAttrs; + match r.Location with + | ILResourceLocation.Local _ -> + output_string os " /* loc nyi */ "; + | ILResourceLocation.File (mref,off) -> + output_string os " .file "; + output_sqstring os mref.Name; + output_string os " at "; + output_i32 os off + | ILResourceLocation.Assembly aref -> + output_string os " .assembly extern "; + output_sqstring os aref.Name + output_string os " }\n " + +let goutput_manifest env os m = + output_string os " .assembly "; + match m.AssemblyLongevity with + | ILAssemblyLongevity.Unspecified -> () + | ILAssemblyLongevity.Library -> output_string os "library "; + | ILAssemblyLongevity.PlatformAppDomain -> output_string os "platformappdomain "; + | ILAssemblyLongevity.PlatformProcess -> output_string os "platformprocess "; + | ILAssemblyLongevity.PlatformSystem -> output_string os "platformmachine "; + output_sqstring os m.Name; + output_string os " { \n"; + output_string os ".hash algorithm "; output_i32 os m.AuxModuleHashAlgorithm; output_string os "\n"; + goutput_custom_attrs env os m.CustomAttrs; + goutput_security_decls env os m.SecurityDecls; + (output_option output_publickey) os m.PublicKey; + (output_option output_ver) os m.Version; + (output_option output_locale) os m.Locale; + output_string os " } \n" + + +let output_module_fragment_aux _refs os modul = + try + let env = mk_ppenv + let env = ppenv_enter_modul env + goutput_tdefs false ([]) env os modul.TypeDefs; + goutput_tdefs true ([]) env os modul.TypeDefs; + with e -> + output_string os "*** Error during printing : "; output_string os (e.ToString()); os.Flush(); + reraise() + raise e + +let output_module_fragment os modul = + let refs = computeILRefs modul + output_module_fragment_aux refs os modul; + refs + +let output_module_refs os refs = + List.iter (fun x -> output_assref os x; output_string os "\n") refs.AssemblyReferences; + List.iter (fun x -> output_modref os x; output_string os "\n") refs.ModuleReferences + +let goutput_module_manifest env os modul = + output_string os " .module "; output_sqstring os modul.Name; + goutput_custom_attrs env os modul.CustomAttrs; + output_string os " .imagebase "; output_i32 os modul.ImageBase; + output_string os " .file alignment "; output_i32 os modul.PhysicalAlignment; + output_string os " .subsystem "; output_i32 os modul.SubSystemFlags; + output_string os " .corflags "; output_i32 os ((if modul.IsILOnly then 0x0001 else 0) ||| (if modul.Is32Bit then 0x0002 else 0) ||| (if modul.Is32BitPreferred then 0x00020003 else 0)); + List.iter (fun r -> goutput_resource env os r) modul.Resources.AsList; + output_string os "\n"; + (output_option (goutput_manifest env)) os modul.Manifest + +let output_module os modul = + try + let refs = computeILRefs modul + let env = mk_ppenv + let env = ppenv_enter_modul env + output_module_refs os refs; + goutput_module_manifest env os modul; + output_module_fragment_aux refs os modul; + with e -> + output_string os "*** Error during printing : "; output_string os (e.ToString()); os.Flush(); + raise e + + +#endif + + + + diff --git a/src/absil/ilprint.fsi b/src/absil/ilprint.fsi new file mode 100644 index 0000000..7ef17c2 --- /dev/null +++ b/src/absil/ilprint.fsi @@ -0,0 +1,24 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +/// Printer for the abstract syntax. +module Microsoft.FSharp.Compiler.AbstractIL.ILAsciiWriter + +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.IL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open System.IO + +#if DEBUG +val public output_module : TextWriter -> ILModuleDef -> unit +#endif + diff --git a/src/absil/ilread.fs b/src/absil/ilread.fs new file mode 100644 index 0000000..501e621 --- /dev/null +++ b/src/absil/ilread.fs @@ -0,0 +1,4157 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +//--------------------------------------------------------------------- +// The big binary reader +// +//--------------------------------------------------------------------- + +module Microsoft.FSharp.Compiler.AbstractIL.ILBinaryReader + +#nowarn "42" // This construct is deprecated: it is only for use in the F# library + +open System +open System.IO +open System.Runtime.InteropServices +open System.Collections.Generic +open Internal.Utilities +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Support +open Microsoft.FSharp.Compiler.AbstractIL.Diagnostics +open Microsoft.FSharp.Compiler.AbstractIL.Internal.BinaryConstants +open Microsoft.FSharp.Compiler.AbstractIL.IL +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library +open Microsoft.FSharp.Compiler.ErrorLogger +open Microsoft.FSharp.Compiler.Range +open Microsoft.FSharp.NativeInterop + +type ILReaderOptions = + { pdbPath: string option; + ilGlobals: ILGlobals; + optimizeForMemory: bool } + +#if STATISTICS +let reportRef = ref (fun _oc -> ()) +let addReport f = let old = !reportRef in reportRef := (fun oc -> old oc; f oc) +let report (oc:TextWriter) = !reportRef oc ; reportRef := ref (fun _oc -> ()) +#endif + +let checking = false +let logging = false +let _ = if checking then dprintn "warning : Ilread.checking is on" + +/// Read file into cached memory blocks to avoid taking any kind of a +/// lock on the file, and avoid needing any cleanup of files. +type MemChannel = + { mutable mcPos: int; + mcBlocks: byte[] } + + static member OpenIn f = + let mcBlocks = FileSystem.ReadAllBytesShim f + { mcPos = 0; mcBlocks = mcBlocks } + + static member OpenBytes f = + let mcBlocks = f + { mcPos = 0; mcBlocks = mcBlocks } + + member mc.InputByte() = + let p = mc.mcPos + let res = mc.mcBlocks.[p] + mc.mcPos <- p + 1; + res + + member mc.InputBytes len = + let p = mc.mcPos + let res = Array.sub mc.mcBlocks p len + mc.mcPos <- p + len; + res + + member mc.InputInt32() = + let b0 = mc.InputByte() + let b1 = mc.InputByte() + let b2 = mc.InputByte() + let b3 = mc.InputByte() + int b0 ||| (int b1 <<< 8) ||| (int b2 <<< 16) ||| (int b3 <<< 24) + + member mc.InputUInt16() = + let b0 = mc.InputByte() + let b1 = mc.InputByte() + uint16 b0 ||| (uint16 b1 <<< 8) + + member mc.Seek addr = + mc.mcPos <- addr + + member mc.Close() = () + +#if SILVERLIGHT +type MMapChannel = MemChannel + +#else + +/// Read file from memory mapped files +module MemoryMapping = + + type HANDLE = nativeint + type ADDR = nativeint + type SIZE_T = nativeint + + [] + extern bool CloseHandle (HANDLE _handler) + + [] + extern HANDLE CreateFile (string _lpFileName, + int _dwDesiredAccess, + int _dwShareMode, + HANDLE _lpSecurityAttributes, + int _dwCreationDisposition, + int _dwFlagsAndAttributes, + HANDLE _hTemplateFile) + + [] + extern HANDLE CreateFileMapping (HANDLE _hFile, + HANDLE _lpAttributes, + int _flProtect, + int _dwMaximumSizeLow, + int _dwMaximumSizeHigh, + string _lpName) + + [] + extern ADDR MapViewOfFile (HANDLE _hFileMappingObject, + int _dwDesiredAccess, + int _dwFileOffsetHigh, + int _dwFileOffsetLow, + SIZE_T _dwNumBytesToMap) + + [] + extern bool UnmapViewOfFile (ADDR _lpBaseAddress) + + let INVALID_HANDLE = new IntPtr(-1) + let MAP_READ = 0x0004 + let GENERIC_READ = 0x80000000 + let NULL_HANDLE = IntPtr.Zero + let FILE_SHARE_NONE = 0x0000 + let FILE_SHARE_READ = 0x0001 + let FILE_SHARE_WRITE = 0x0002 + let FILE_SHARE_READ_WRITE = 0x0003 + let CREATE_ALWAYS = 0x0002 + let OPEN_EXISTING = 0x0003 + let OPEN_ALWAYS = 0x0004 + +let derefByte (p:nativeint) = + NativePtr.read (NativePtr.ofNativeInt p) + +type MemoryMappedFile(hMap: MemoryMapping.HANDLE, start:nativeint) = + + static member Create fileName = + //printf "fileName = %s\n" fileName; + let hFile = MemoryMapping.CreateFile (fileName, MemoryMapping.GENERIC_READ, MemoryMapping.FILE_SHARE_READ_WRITE, IntPtr.Zero, MemoryMapping.OPEN_EXISTING, 0, IntPtr.Zero ) + //printf "hFile = %Lx\n" (hFile.ToInt64()); + if ( hFile.Equals(MemoryMapping.INVALID_HANDLE) ) then + failwithf "CreateFile(0x%08x)" ( Marshal.GetHRForLastWin32Error() ); + let protection = 0x00000002 (* ReadOnly *) + //printf "OK! hFile = %Lx\n" (hFile.ToInt64()); + let hMap = MemoryMapping.CreateFileMapping (hFile, IntPtr.Zero, protection, 0,0, null ) + ignore(MemoryMapping.CloseHandle(hFile)); + if hMap.Equals(MemoryMapping.NULL_HANDLE) then + failwithf "CreateFileMapping(0x%08x)" ( Marshal.GetHRForLastWin32Error() ); + + let start = MemoryMapping.MapViewOfFile (hMap, MemoryMapping.MAP_READ,0,0,0n) + + if start.Equals(IntPtr.Zero) then + failwithf "MapViewOfFile(0x%08x)" ( Marshal.GetHRForLastWin32Error() ); + MemoryMappedFile(hMap, start) + + member m.Addr (i:int) : nativeint = + start + nativeint i + + member m.ReadByte i = + derefByte (m.Addr i) + + member m.ReadBytes i len = + let res = Bytes.zeroCreate len + Marshal.Copy(m.Addr i, res, 0,len); + res + + member m.ReadInt32 i = + NativePtr.read (NativePtr.ofNativeInt (m.Addr i)) + + member m.ReadUInt16 i = + NativePtr.read (NativePtr.ofNativeInt (m.Addr i)) + + member m.Close() = + ignore(MemoryMapping.UnmapViewOfFile start); + ignore(MemoryMapping.CloseHandle hMap) + + member m.CountUtf8String i = + let start = m.Addr i + let mutable p = start + while derefByte p <> 0uy do + p <- p + 1n + int (p - start) + + member m.ReadUTF8String i = + let n = m.CountUtf8String i + new System.String(NativePtr.ofNativeInt (m.Addr i), 0, n, System.Text.Encoding.UTF8) + + +type MMapChannel = + { mutable mmPos: int; + mmMap: MemoryMappedFile } + + static member OpenIn f = + let mmap = MemoryMappedFile.Create f + { mmPos = 0; mmMap = mmap } + + member mc.InputByte() = + let res = mc.mmMap.ReadByte mc.mmPos + mc.mmPos <- mc.mmPos + 1; + res + + member mc.InputInt32() = + let res = mc.mmMap.ReadInt32 mc.mmPos + mc.mmPos <- mc.mmPos + 4; + res + + member mc.InputUInt16() = + let res = mc.mmMap.ReadUInt16 mc.mmPos + mc.mmPos <- mc.mmPos + 2; + res + + member mc.InputBytes len = + let res = mc.mmMap.ReadBytes mc.mmPos len + mc.mmPos <- mc.mmPos + len; + res + + member mc.PeekUTF8String () = + mc.mmMap.ReadUTF8String mc.mmPos + + member mc.Seek addr = mc.mmPos <- addr + + member mc.Close() = mc.mmMap.Close() +#endif + +//--------------------------------------------------------------------- +// Read file from cached memory blocks or via 'seek' +//--------------------------------------------------------------------- + +type InputChannel = + | Chan of string * System.IO.BinaryReader option ref + | Mem of MemChannel + | MMap of MMapChannel + +let readByte is = + match is with + | Chan (_,{contents=Some ic}) -> ic.ReadByte() + | Chan (s,_) -> failwith ("readByte: input channel "+s+" was closed" ) + | Mem mc -> mc.InputByte() + | MMap mc -> mc.InputByte () + +let readByteAsInt32 is = int32 (readByte is) + +let seek is addr = + match is with + | Chan (_,{contents=Some ic}) -> ic.BaseStream.Seek(int64 addr,SeekOrigin.Begin) |> ignore + | Chan (s,_) -> failwith ("seek: input channel "+s+" was closed" ) + | Mem mc -> mc.Seek addr + | MMap mc -> mc.Seek addr + +let readBytes is len = + match is with + | Chan (_,{contents=Some ic}) -> ic.ReadBytes len + | Chan (s,_) -> failwith ("readBytes: input channel "+s+" was closed" ) + | Mem mc -> mc.InputBytes len + | MMap mc -> mc.InputBytes len + +let readInt64 is = + let b0 = readByte is + let b1 = readByte is + let b2 = readByte is + let b3 = readByte is + let b4 = readByte is + let b5 = readByte is + let b6 = readByte is + let b7 = readByte is + int64 b0 ||| (int64 b1 <<< 8) ||| (int64 b2 <<< 16) ||| (int64 b3 <<< 24) ||| + (int64 b4 <<< 32) ||| (int64 b5 <<< 40) ||| (int64 b6 <<< 48) ||| (int64 b7 <<< 56) + +let readInt32 is = + match is with + | Chan (_,{contents=Some ic}) -> ic.ReadInt32() + | Chan (s,_) -> failwith ("readBytes: input channel "+s+" was closed" ) + | MMap mm -> mm.InputInt32() + | Mem mm -> mm.InputInt32() + + +//--------------------------------------------------------------------- +// Derived reading +//--------------------------------------------------------------------- + +let readUInt16 is = + match is with + | MMap mm -> mm.InputUInt16() + | _ -> + let b0 = readByte is + let b1 = readByte is + uint16 b0 ||| (uint16 b1 <<< 8) + +let readUInt16AsInt32 is = int32 (readUInt16 is) + +let readSByte is = sbyte (readByte is) + +let singleOfBits (x:int32) = System.BitConverter.ToSingle(System.BitConverter.GetBytes(x),0) +let doubleOfBits (x:int64) = System.BitConverter.Int64BitsToDouble(x) + +let readSingle is = singleOfBits (readInt32 is) +let readDouble is = doubleOfBits (readInt64 is) + +let readCompressedUInt32 is = + let b0 = readByte is + if b0 <= 0x7Fuy then int b0 + elif b0 <= 0xBFuy then + let b0 = b0 &&& 0x7Fuy + let b1 = readByteAsInt32 is + (int b0 <<< 8) ||| int b1 + else + let b0 = b0 &&& 0x3Fuy + let b1 = readByte is + let b2 = readByte is + let b3 = readByte is + (int b0 <<< 24) ||| (int b1 <<< 16) ||| (int b2 <<< 8) ||| int b3 + +let seekReadInt32 is addr = seek is addr; readInt32 is +let seekReadInt64 is addr = seek is addr; readInt64 is +let seekReadUInt16AsInt32 is addr = seek is addr; readUInt16AsInt32 is +let seekReadUInt16 is addr = seek is addr; readUInt16 is +let seekReadByte is addr = seek is addr; readByte is +let seekReadByteAsInt32 is addr = seek is addr; readByteAsInt32 is +let seekReadSByte is addr = seek is addr; readSByte is +let seekReadSingle is addr = seek is addr; readSingle is +let seekReadDouble is addr = seek is addr; readDouble is +let seekReadBytes is addr len = seek is addr; readBytes is len + +let rec countUtf8String is n = + let c = readByteAsInt32 is + if c = 0 then n + else countUtf8String is (n+1) + +let seekReadUTF8String is addr = + seek is addr; +#if SILVERLIGHT +#else + match is with + | MMap mc -> + // optimized implementation + mc.PeekUTF8String() + | _ -> +#endif + let n = countUtf8String is 0 + let bytes = seekReadBytes is addr (n) + System.Text.Encoding.UTF8.GetString (bytes, 0, bytes.Length) + +let readBlob is = + let len = readCompressedUInt32 is + readBytes is len + +let seekReadBlob is addr = + seek is addr; + readBlob is + +let readUserString is = + let len = readCompressedUInt32 is + let bytes = readBytes is (len - 1) + System.Text.Encoding.Unicode.GetString(bytes, 0, bytes.Length) + +let seekReadUserString is addr = + seek is addr; + readUserString is + +let readGuid is = + readBytes is 0x10 + +let seekReadGuid is addr = + seek is addr; + readGuid is + +//--------------------------------------------------------------------- +// Utilities. +//--------------------------------------------------------------------- + +let align alignment n = ((n + alignment - 0x1) / alignment) * alignment + +let uncodedToken (tab:TableName) idx = ((tab.Index <<< 24) ||| idx) + +let i32ToUncodedToken tok = + let idx = tok &&& 0xffffff + let tab = tok >>>& 24 + (TableName.FromIndex tab, idx) + +let readUncodedToken is = i32ToUncodedToken (readInt32 is) + +[] +type TaggedIndex<'T> = + val tag: 'T + val index : int32 + new(tag,index) = { tag=tag; index=index } + +let uncodedTokenToTypeDefOrRefOrSpec (tab,tok) = + let tag = + if tab = TableNames.TypeDef then tdor_TypeDef + elif tab = TableNames.TypeRef then tdor_TypeRef + elif tab = TableNames.TypeSpec then tdor_TypeSpec + else failwith "bad table in uncodedTokenToTypeDefOrRefOrSpec" + TaggedIndex(tag,tok) + +let uncodedTokenToMethodDefOrRef (tab,tok) = + let tag = + if tab = TableNames.Method then mdor_MethodDef + elif tab = TableNames.MemberRef then mdor_MemberRef + else failwith "bad table in uncodedTokenToMethodDefOrRef" + TaggedIndex(tag,tok) + +let seekReadUncodedToken is addr = + seek is addr; + readUncodedToken is + +let (|TaggedIndex|) (x:TaggedIndex<'T>) = x.tag, x.index +let readTaggedIdx f nbits big is = + let tok = if big then readInt32 is else readUInt16AsInt32 is + let tagmask = + if nbits = 1 then 1 + elif nbits = 2 then 3 + elif nbits = 3 then 7 + elif nbits = 4 then 15 + elif nbits = 5 then 31 + else failwith "too many nbits" + let tag = tok &&& tagmask + let idx = tok >>>& nbits + TaggedIndex(f tag, idx) + +//--------------------------------------------------------------------- +// Primitives to help read signatures. These do not use the file cursor +//--------------------------------------------------------------------- + +let sigptrCheck (bytes:byte[]) sigptr = + if checking && sigptr >= bytes.Length then failwith "read past end of sig. " + +// All this code should be moved to use a mutable index into the signature +// +//type SigPtr(bytes:byte[], sigptr:int) = +// let mutable curr = sigptr +// member x.GetByte() = let res = bytes.[curr] in curr <- curr + 1; res + +let sigptrGetByte (bytes:byte[]) sigptr = + sigptrCheck bytes sigptr; + bytes.[sigptr], sigptr + 1 + +let sigptrGetBool bytes sigptr = + let b0,sigptr = sigptrGetByte bytes sigptr + (b0 = 0x01uy) ,sigptr + +let sigptrGetSByte bytes sigptr = + let i,sigptr = sigptrGetByte bytes sigptr + sbyte i,sigptr + +let sigptrGetUInt16 bytes sigptr = + let b0,sigptr = sigptrGetByte bytes sigptr + let b1,sigptr = sigptrGetByte bytes sigptr + uint16 (int b0 ||| (int b1 <<< 8)),sigptr + +let sigptrGetInt16 bytes sigptr = + let u,sigptr = sigptrGetUInt16 bytes sigptr + int16 u,sigptr + +let sigptrGetInt32 bytes sigptr = + sigptrCheck bytes sigptr; + let b0 = bytes.[sigptr] + let b1 = bytes.[sigptr+1] + let b2 = bytes.[sigptr+2] + let b3 = bytes.[sigptr+3] + let res = int b0 ||| (int b1 <<< 8) ||| (int b2 <<< 16) ||| (int b3 <<< 24) + res, sigptr + 4 + +let sigptrGetUInt32 bytes sigptr = + let u,sigptr = sigptrGetInt32 bytes sigptr + uint32 u,sigptr + +let sigptrGetUInt64 bytes sigptr = + let u0,sigptr = sigptrGetUInt32 bytes sigptr + let u1,sigptr = sigptrGetUInt32 bytes sigptr + (uint64 u0 ||| (uint64 u1 <<< 32)),sigptr + +let sigptrGetInt64 bytes sigptr = + let u,sigptr = sigptrGetUInt64 bytes sigptr + int64 u,sigptr + +let sigptrGetSingle bytes sigptr = + let u,sigptr = sigptrGetInt32 bytes sigptr + singleOfBits u,sigptr + +let sigptrGetDouble bytes sigptr = + let u,sigptr = sigptrGetInt64 bytes sigptr + doubleOfBits u,sigptr + +let sigptrGetZInt32 bytes sigptr = + let b0,sigptr = sigptrGetByte bytes sigptr + if b0 <= 0x7Fuy then int b0, sigptr + elif b0 <= 0xBFuy then + let b0 = b0 &&& 0x7Fuy + let b1,sigptr = sigptrGetByte bytes sigptr + (int b0 <<< 8) ||| int b1, sigptr + else + let b0 = b0 &&& 0x3Fuy + let b1,sigptr = sigptrGetByte bytes sigptr + let b2,sigptr = sigptrGetByte bytes sigptr + let b3,sigptr = sigptrGetByte bytes sigptr + (int b0 <<< 24) ||| (int b1 <<< 16) ||| (int b2 <<< 8) ||| int b3, sigptr + +let rec sigptrFoldAcc f n (bytes:byte[]) (sigptr:int) i acc = + if i < n then + let x,sp = f bytes sigptr + sigptrFoldAcc f n bytes sp (i+1) (x::acc) + else + List.rev acc, sigptr + +let sigptrFold f n (bytes:byte[]) (sigptr:int) = + sigptrFoldAcc f n bytes sigptr 0 [] + + +let sigptrGetBytes n (bytes:byte[]) sigptr = + if checking && sigptr + n >= bytes.Length then + dprintn "read past end of sig. in sigptrGetString"; + Bytes.zeroCreate 0, sigptr + else + let res = Bytes.zeroCreate n + for i = 0 to (n - 1) do + res.[i] <- bytes.[sigptr + i] + res, sigptr + n + +let sigptrGetString n bytes sigptr = + let bytearray,sigptr = sigptrGetBytes n bytes sigptr + (System.Text.Encoding.UTF8.GetString(bytearray, 0, bytearray.Length)),sigptr + + +// -------------------------------------------------------------------- +// Now the tables of instructions +// -------------------------------------------------------------------- + +[] +type ILInstrPrefixesRegister = + { mutable al: ILAlignment; + mutable tl: ILTailcall; + mutable vol: ILVolatility; + mutable ro: ILReadonly; + mutable constrained: ILType option} + +let noPrefixes mk prefixes = + if prefixes.al <> Aligned then failwith "an unaligned prefix is not allowed here"; + if prefixes.vol <> Nonvolatile then failwith "a volatile prefix is not allowed here"; + if prefixes.tl <> Normalcall then failwith "a tailcall prefix is not allowed here"; + if prefixes.ro <> NormalAddress then failwith "a readonly prefix is not allowed here"; + if prefixes.constrained <> None then failwith "a constrained prefix is not allowed here"; + mk + +let volatileOrUnalignedPrefix mk prefixes = + if prefixes.tl <> Normalcall then failwith "a tailcall prefix is not allowed here"; + if prefixes.constrained <> None then failwith "a constrained prefix is not allowed here"; + if prefixes.ro <> NormalAddress then failwith "a readonly prefix is not allowed here"; + mk (prefixes.al,prefixes.vol) + +let volatilePrefix mk prefixes = + if prefixes.al <> Aligned then failwith "an unaligned prefix is not allowed here"; + if prefixes.tl <> Normalcall then failwith "a tailcall prefix is not allowed here"; + if prefixes.constrained <> None then failwith "a constrained prefix is not allowed here"; + if prefixes.ro <> NormalAddress then failwith "a readonly prefix is not allowed here"; + mk prefixes.vol + +let tailPrefix mk prefixes = + if prefixes.al <> Aligned then failwith "an unaligned prefix is not allowed here"; + if prefixes.vol <> Nonvolatile then failwith "a volatile prefix is not allowed here"; + if prefixes.constrained <> None then failwith "a constrained prefix is not allowed here"; + if prefixes.ro <> NormalAddress then failwith "a readonly prefix is not allowed here"; + mk prefixes.tl + +let constraintOrTailPrefix mk prefixes = + if prefixes.al <> Aligned then failwith "an unaligned prefix is not allowed here"; + if prefixes.vol <> Nonvolatile then failwith "a volatile prefix is not allowed here"; + if prefixes.ro <> NormalAddress then failwith "a readonly prefix is not allowed here"; + mk (prefixes.constrained,prefixes.tl ) + +let readonlyPrefix mk prefixes = + if prefixes.al <> Aligned then failwith "an unaligned prefix is not allowed here"; + if prefixes.vol <> Nonvolatile then failwith "a volatile prefix is not allowed here"; + if prefixes.tl <> Normalcall then failwith "a tailcall prefix is not allowed here"; + if prefixes.constrained <> None then failwith "a constrained prefix is not allowed here"; + mk prefixes.ro + + +[] +type ILInstrDecoder = + | I_u16_u8_instr of (ILInstrPrefixesRegister -> uint16 -> ILInstr) + | I_u16_u16_instr of (ILInstrPrefixesRegister -> uint16 -> ILInstr) + | I_none_instr of (ILInstrPrefixesRegister -> ILInstr) + | I_i64_instr of (ILInstrPrefixesRegister -> int64 -> ILInstr) + | I_i32_i32_instr of (ILInstrPrefixesRegister -> int32 -> ILInstr) + | I_i32_i8_instr of (ILInstrPrefixesRegister -> int32 -> ILInstr) + | I_r4_instr of (ILInstrPrefixesRegister -> single -> ILInstr) + | I_r8_instr of (ILInstrPrefixesRegister -> double -> ILInstr) + | I_field_instr of (ILInstrPrefixesRegister -> ILFieldSpec -> ILInstr) + | I_method_instr of (ILInstrPrefixesRegister -> ILMethodSpec * ILVarArgs -> ILInstr) + | I_unconditional_i32_instr of (ILInstrPrefixesRegister -> ILCodeLabel -> ILInstr) + | I_unconditional_i8_instr of (ILInstrPrefixesRegister -> ILCodeLabel -> ILInstr) + | I_conditional_i32_instr of (ILInstrPrefixesRegister -> ILCodeLabel * ILCodeLabel -> ILInstr) + | I_conditional_i8_instr of (ILInstrPrefixesRegister -> ILCodeLabel * ILCodeLabel -> ILInstr) + | I_string_instr of (ILInstrPrefixesRegister -> string -> ILInstr) + | I_switch_instr of (ILInstrPrefixesRegister -> ILCodeLabel list * ILCodeLabel -> ILInstr) + | I_tok_instr of (ILInstrPrefixesRegister -> ILToken -> ILInstr) + | I_sig_instr of (ILInstrPrefixesRegister -> ILCallingSignature * ILVarArgs -> ILInstr) + | I_type_instr of (ILInstrPrefixesRegister -> ILType -> ILInstr) + | I_invalid_instr + +let mkStind dt = volatileOrUnalignedPrefix (fun (x,y) -> I_stind(x,y,dt)) +let mkLdind dt = volatileOrUnalignedPrefix (fun (x,y) -> I_ldind(x,y,dt)) + +let instrs () = + [ i_ldarg_s, I_u16_u8_instr (noPrefixes mkLdarg); + i_starg_s, I_u16_u8_instr (noPrefixes I_starg); + i_ldarga_s, I_u16_u8_instr (noPrefixes I_ldarga); + i_stloc_s, I_u16_u8_instr (noPrefixes mkStloc); + i_ldloc_s, I_u16_u8_instr (noPrefixes mkLdloc); + i_ldloca_s, I_u16_u8_instr (noPrefixes I_ldloca); + i_ldarg, I_u16_u16_instr (noPrefixes mkLdarg); + i_starg, I_u16_u16_instr (noPrefixes I_starg); + i_ldarga, I_u16_u16_instr (noPrefixes I_ldarga); + i_stloc, I_u16_u16_instr (noPrefixes mkStloc); + i_ldloc, I_u16_u16_instr (noPrefixes mkLdloc); + i_ldloca, I_u16_u16_instr (noPrefixes I_ldloca); + i_stind_i, I_none_instr (mkStind DT_I); + i_stind_i1, I_none_instr (mkStind DT_I1); + i_stind_i2, I_none_instr (mkStind DT_I2); + i_stind_i4, I_none_instr (mkStind DT_I4); + i_stind_i8, I_none_instr (mkStind DT_I8); + i_stind_r4, I_none_instr (mkStind DT_R4); + i_stind_r8, I_none_instr (mkStind DT_R8); + i_stind_ref, I_none_instr (mkStind DT_REF); + i_ldind_i, I_none_instr (mkLdind DT_I); + i_ldind_i1, I_none_instr (mkLdind DT_I1); + i_ldind_i2, I_none_instr (mkLdind DT_I2); + i_ldind_i4, I_none_instr (mkLdind DT_I4); + i_ldind_i8, I_none_instr (mkLdind DT_I8); + i_ldind_u1, I_none_instr (mkLdind DT_U1); + i_ldind_u2, I_none_instr (mkLdind DT_U2); + i_ldind_u4, I_none_instr (mkLdind DT_U4); + i_ldind_r4, I_none_instr (mkLdind DT_R4); + i_ldind_r8, I_none_instr (mkLdind DT_R8); + i_ldind_ref, I_none_instr (mkLdind DT_REF); + i_cpblk, I_none_instr (volatileOrUnalignedPrefix I_cpblk); + i_initblk, I_none_instr (volatileOrUnalignedPrefix I_initblk); + i_ldc_i8, I_i64_instr (noPrefixes (fun x ->(AI_ldc (DT_I8, ILConst.I8 x)))); + i_ldc_i4, I_i32_i32_instr (noPrefixes mkLdcInt32); + i_ldc_i4_s, I_i32_i8_instr (noPrefixes mkLdcInt32); + i_ldc_r4, I_r4_instr (noPrefixes (fun x -> (AI_ldc (DT_R4, ILConst.R4 x)))); + i_ldc_r8, I_r8_instr (noPrefixes (fun x -> (AI_ldc (DT_R8, ILConst.R8 x)))); + i_ldfld, I_field_instr (volatileOrUnalignedPrefix(fun (x,y) fspec -> I_ldfld(x,y,fspec))); + i_stfld, I_field_instr (volatileOrUnalignedPrefix(fun (x,y) fspec -> I_stfld(x,y,fspec))); + i_ldsfld, I_field_instr (volatilePrefix (fun x fspec -> I_ldsfld (x, fspec))); + i_stsfld, I_field_instr (volatilePrefix (fun x fspec -> I_stsfld (x, fspec))); + i_ldflda, I_field_instr (noPrefixes I_ldflda); + i_ldsflda, I_field_instr (noPrefixes I_ldsflda); + i_call, I_method_instr (tailPrefix (fun tl (mspec,y) -> I_call (tl,mspec,y))); + i_ldftn, I_method_instr (noPrefixes (fun (mspec,_y) -> I_ldftn mspec)); + i_ldvirtftn, I_method_instr (noPrefixes (fun (mspec,_y) -> I_ldvirtftn mspec)); + i_newobj, I_method_instr (noPrefixes I_newobj); + i_callvirt, I_method_instr (constraintOrTailPrefix (fun (c,tl) (mspec,y) -> match c with Some ty -> I_callconstraint(tl,ty,mspec,y) | None -> I_callvirt (tl,mspec,y))); + i_leave_s, I_unconditional_i8_instr (noPrefixes (fun x -> I_leave x)); + i_br_s, I_unconditional_i8_instr (noPrefixes I_br); + i_leave, I_unconditional_i32_instr (noPrefixes (fun x -> I_leave x)); + i_br, I_unconditional_i32_instr (noPrefixes I_br); + i_brtrue_s, I_conditional_i8_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_brtrue,x,y))); + i_brfalse_s, I_conditional_i8_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_brfalse,x,y))); + i_beq_s, I_conditional_i8_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_beq,x,y))); + i_blt_s, I_conditional_i8_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_blt,x,y))); + i_blt_un_s, I_conditional_i8_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_blt_un,x,y))); + i_ble_s, I_conditional_i8_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_ble,x,y))); + i_ble_un_s, I_conditional_i8_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_ble_un,x,y))); + i_bgt_s, I_conditional_i8_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_bgt,x,y))); + i_bgt_un_s, I_conditional_i8_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_bgt_un,x,y))); + i_bge_s, I_conditional_i8_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_bge,x,y))); + i_bge_un_s, I_conditional_i8_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_bge_un,x,y))); + i_bne_un_s, I_conditional_i8_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_bne_un,x,y))); + i_brtrue, I_conditional_i32_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_brtrue,x,y))); + i_brfalse, I_conditional_i32_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_brfalse,x,y))); + i_beq, I_conditional_i32_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_beq,x,y))); + i_blt, I_conditional_i32_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_blt,x,y))); + i_blt_un, I_conditional_i32_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_blt_un,x,y))); + i_ble, I_conditional_i32_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_ble,x,y))); + i_ble_un, I_conditional_i32_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_ble_un,x,y))); + i_bgt, I_conditional_i32_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_bgt,x,y))); + i_bgt_un, I_conditional_i32_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_bgt_un,x,y))); + i_bge, I_conditional_i32_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_bge,x,y))); + i_bge_un, I_conditional_i32_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_bge_un,x,y))); + i_bne_un, I_conditional_i32_instr (noPrefixes (fun (x,y) -> I_brcmp (BI_bne_un,x,y))); + i_ldstr, I_string_instr (noPrefixes I_ldstr); + i_switch, I_switch_instr (noPrefixes I_switch); + i_ldtoken, I_tok_instr (noPrefixes I_ldtoken); + i_calli, I_sig_instr (tailPrefix (fun tl (x,y) -> I_calli (tl, x, y))); + i_mkrefany, I_type_instr (noPrefixes I_mkrefany); + i_refanyval, I_type_instr (noPrefixes I_refanyval); + i_ldelema, I_type_instr (readonlyPrefix (fun ro x -> I_ldelema (ro,false,ILArrayShape.SingleDimensional,x))); + i_ldelem_any, I_type_instr (noPrefixes (fun x -> I_ldelem_any (ILArrayShape.SingleDimensional,x))); + i_stelem_any, I_type_instr (noPrefixes (fun x -> I_stelem_any (ILArrayShape.SingleDimensional,x))); + i_newarr, I_type_instr (noPrefixes (fun x -> I_newarr (ILArrayShape.SingleDimensional,x))); + i_castclass, I_type_instr (noPrefixes I_castclass); + i_isinst, I_type_instr (noPrefixes I_isinst); + i_unbox_any, I_type_instr (noPrefixes I_unbox_any); + i_cpobj, I_type_instr (noPrefixes I_cpobj); + i_initobj, I_type_instr (noPrefixes I_initobj); + i_ldobj, I_type_instr (volatileOrUnalignedPrefix (fun (x,y) z -> I_ldobj (x,y,z))); + i_stobj, I_type_instr (volatileOrUnalignedPrefix (fun (x,y) z -> I_stobj (x,y,z))); + i_sizeof, I_type_instr (noPrefixes I_sizeof); + i_box, I_type_instr (noPrefixes I_box); + i_unbox, I_type_instr (noPrefixes I_unbox); ] + +// The tables are delayed to avoid building them unnecessarily at startup +// Many applications of AbsIL (e.g. a compiler) don't need to read instructions. +let oneByteInstrs = ref None +let twoByteInstrs = ref None +let fillInstrs () = + let oneByteInstrTable = Array.create 256 I_invalid_instr + let twoByteInstrTable = Array.create 256 I_invalid_instr + let addInstr (i,f) = + if i > 0xff then + assert (i >>>& 8 = 0xfe); + let i = (i &&& 0xff) + match twoByteInstrTable.[i] with + | I_invalid_instr -> () + | _ -> dprintn ("warning: duplicate decode entries for "+string i); + twoByteInstrTable.[i] <- f + else + match oneByteInstrTable.[i] with + | I_invalid_instr -> () + | _ -> dprintn ("warning: duplicate decode entries for "+string i); + oneByteInstrTable.[i] <- f + List.iter addInstr (instrs()); + List.iter (fun (x,mk) -> addInstr (x,I_none_instr (noPrefixes mk))) (noArgInstrs.Force()); + oneByteInstrs := Some oneByteInstrTable; + twoByteInstrs := Some twoByteInstrTable + +let rec getOneByteInstr i = + match !oneByteInstrs with + | None -> fillInstrs(); getOneByteInstr i + | Some t -> t.[i] + +let rec getTwoByteInstr i = + match !twoByteInstrs with + | None -> fillInstrs(); getTwoByteInstr i + | Some t -> t.[i] + +//--------------------------------------------------------------------- +// +//--------------------------------------------------------------------- + +type ImageChunk = { size: int32; addr: int32 } + +let chunk sz next = ({addr=next; size=sz},next + sz) +let nochunk next = ({addr= 0x0;size= 0x0; } ,next) + +type RowElementKind = + | UShort + | ULong + | Byte + | Data + | GGuid + | Blob + | SString + | SimpleIndex of TableName + | TypeDefOrRefOrSpec + | TypeOrMethodDef + | HasConstant + | HasCustomAttribute + | HasFieldMarshal + | HasDeclSecurity + | MemberRefParent + | HasSemantics + | MethodDefOrRef + | MemberForwarded + | Implementation + | CustomAttributeType + | ResolutionScope + +type RowKind = RowKind of RowElementKind list + +let kindAssemblyRef = RowKind [ UShort; UShort; UShort; UShort; ULong; Blob; SString; SString; Blob; ] +let kindModuleRef = RowKind [ SString ] +let kindFileRef = RowKind [ ULong; SString; Blob ] +let kindTypeRef = RowKind [ ResolutionScope; SString; SString ] +let kindTypeSpec = RowKind [ Blob ] +let kindTypeDef = RowKind [ ULong; SString; SString; TypeDefOrRefOrSpec; SimpleIndex TableNames.Field; SimpleIndex TableNames.Method ] +let kindPropertyMap = RowKind [ SimpleIndex TableNames.TypeDef; SimpleIndex TableNames.Property ] +let kindEventMap = RowKind [ SimpleIndex TableNames.TypeDef; SimpleIndex TableNames.Event ] +let kindInterfaceImpl = RowKind [ SimpleIndex TableNames.TypeDef; TypeDefOrRefOrSpec ] +let kindNested = RowKind [ SimpleIndex TableNames.TypeDef; SimpleIndex TableNames.TypeDef ] +let kindCustomAttribute = RowKind [ HasCustomAttribute; CustomAttributeType; Blob ] +let kindDeclSecurity = RowKind [ UShort; HasDeclSecurity; Blob ] +let kindMemberRef = RowKind [ MemberRefParent; SString; Blob ] +let kindStandAloneSig = RowKind [ Blob ] +let kindFieldDef = RowKind [ UShort; SString; Blob ] +let kindFieldRVA = RowKind [ Data; SimpleIndex TableNames.Field ] +let kindFieldMarshal = RowKind [ HasFieldMarshal; Blob ] +let kindConstant = RowKind [ UShort;HasConstant; Blob ] +let kindFieldLayout = RowKind [ ULong; SimpleIndex TableNames.Field ] +let kindParam = RowKind [ UShort; UShort; SString ] +let kindMethodDef = RowKind [ ULong; UShort; UShort; SString; Blob; SimpleIndex TableNames.Param ] +let kindMethodImpl = RowKind [ SimpleIndex TableNames.TypeDef; MethodDefOrRef; MethodDefOrRef ] +let kindImplMap = RowKind [ UShort; MemberForwarded; SString; SimpleIndex TableNames.ModuleRef ] +let kindMethodSemantics = RowKind [ UShort; SimpleIndex TableNames.Method; HasSemantics ] +let kindProperty = RowKind [ UShort; SString; Blob ] +let kindEvent = RowKind [ UShort; SString; TypeDefOrRefOrSpec ] +let kindManifestResource = RowKind [ ULong; ULong; SString; Implementation ] +let kindClassLayout = RowKind [ UShort; ULong; SimpleIndex TableNames.TypeDef ] +let kindExportedType = RowKind [ ULong; ULong; SString; SString; Implementation ] +let kindAssembly = RowKind [ ULong; UShort; UShort; UShort; UShort; ULong; Blob; SString; SString ] +let kindGenericParam_v1_1 = RowKind [ UShort; UShort; TypeOrMethodDef; SString; TypeDefOrRefOrSpec ] +let kindGenericParam_v2_0 = RowKind [ UShort; UShort; TypeOrMethodDef; SString ] +let kindMethodSpec = RowKind [ MethodDefOrRef; Blob ] +let kindGenericParamConstraint = RowKind [ SimpleIndex TableNames.GenericParam; TypeDefOrRefOrSpec ] +let kindModule = RowKind [ UShort; SString; GGuid; GGuid; GGuid ] +let kindIllegal = RowKind [ ] + +//--------------------------------------------------------------------- +// Used for binary searches of sorted tables. Each function that reads +// a table row returns a tuple that contains the elements of the row. +// One of these elements may be a key for a sorted table. These +// keys can be compared using the functions below depending on the +// kind of element in that column. +//--------------------------------------------------------------------- + +let hcCompare (TaggedIndex((t1: HasConstantTag), (idx1:int))) (TaggedIndex((t2: HasConstantTag), idx2)) = + if idx1 < idx2 then -1 elif idx1 > idx2 then 1 else compare t1.Tag t2.Tag + +let hsCompare (TaggedIndex((t1:HasSemanticsTag), (idx1:int))) (TaggedIndex((t2:HasSemanticsTag), idx2)) = + if idx1 < idx2 then -1 elif idx1 > idx2 then 1 else compare t1.Tag t2.Tag + +let hcaCompare (TaggedIndex((t1:HasCustomAttributeTag), (idx1:int))) (TaggedIndex((t2:HasCustomAttributeTag), idx2)) = + if idx1 < idx2 then -1 elif idx1 > idx2 then 1 else compare t1.Tag t2.Tag + +let mfCompare (TaggedIndex((t1:MemberForwardedTag), (idx1:int))) (TaggedIndex((t2:MemberForwardedTag), idx2)) = + if idx1 < idx2 then -1 elif idx1 > idx2 then 1 else compare t1.Tag t2.Tag + +let hdsCompare (TaggedIndex((t1:HasDeclSecurityTag), (idx1:int))) (TaggedIndex((t2:HasDeclSecurityTag), idx2)) = + if idx1 < idx2 then -1 elif idx1 > idx2 then 1 else compare t1.Tag t2.Tag + +let hfmCompare (TaggedIndex((t1:HasFieldMarshalTag), idx1)) (TaggedIndex((t2:HasFieldMarshalTag), idx2)) = + if idx1 < idx2 then -1 elif idx1 > idx2 then 1 else compare t1.Tag t2.Tag + +let tomdCompare (TaggedIndex((t1:TypeOrMethodDefTag), idx1)) (TaggedIndex((t2:TypeOrMethodDefTag), idx2)) = + if idx1 < idx2 then -1 elif idx1 > idx2 then 1 else compare t1.Tag t2.Tag + +let simpleIndexCompare (idx1:int) (idx2:int) = + compare idx1 idx2 + +//--------------------------------------------------------------------- +// The various keys for the various caches. +//--------------------------------------------------------------------- + +type TypeDefAsTypIdx = TypeDefAsTypIdx of ILBoxity * ILGenericArgs * int +type TypeRefAsTypIdx = TypeRefAsTypIdx of ILBoxity * ILGenericArgs * int +type BlobAsMethodSigIdx = BlobAsMethodSigIdx of int * int32 +type BlobAsFieldSigIdx = BlobAsFieldSigIdx of int * int32 +type BlobAsPropSigIdx = BlobAsPropSigIdx of int * int32 +type BlobAsLocalSigIdx = BlobAsLocalSigIdx of int * int32 +type MemberRefAsMspecIdx = MemberRefAsMspecIdx of int * int +type MethodSpecAsMspecIdx = MethodSpecAsMspecIdx of int * int +type MemberRefAsFspecIdx = MemberRefAsFspecIdx of int * int +type CustomAttrIdx = CustomAttrIdx of CustomAttributeTypeTag * int * int32 +type SecurityDeclIdx = SecurityDeclIdx of uint16 * int32 +type GenericParamsIdx = GenericParamsIdx of int * TypeOrMethodDefTag * int + +//--------------------------------------------------------------------- +// Polymorphic caches for row and heap readers +//--------------------------------------------------------------------- + +let mkCacheInt32 lowMem _inbase _nm _sz = + if lowMem then (fun f x -> f x) else + let cache = ref null + let count = ref 0 +#if STATISTICS + addReport (fun oc -> if !count <> 0 then oc.WriteLine ((_inbase + string !count + " "+ _nm + " cache hits") : string)); +#endif + fun f (idx:int32) -> + let cache = + match !cache with + | null -> cache := new Dictionary(11) + | _ -> () + !cache + let mutable res = Unchecked.defaultof<_> + let ok = cache.TryGetValue(idx, &res) + if ok then + incr count; + res + else + let res = f idx + cache.[idx] <- res; + res + +let mkCacheGeneric lowMem _inbase _nm _sz = + if lowMem then (fun f x -> f x) else + let cache = ref null + let count = ref 0 +#if STATISTICS + addReport (fun oc -> if !count <> 0 then oc.WriteLine ((_inbase + string !count + " " + _nm + " cache hits") : string)); +#endif + fun f (idx :'T) -> + let cache = + match !cache with + | null -> cache := new Dictionary<_,_>(11 (* sz:int *) ) + | _ -> () + !cache + if cache.ContainsKey idx then (incr count; cache.[idx]) + else let res = f idx in cache.[idx] <- res; res + +//----------------------------------------------------------------------- +// Polymorphic general helpers for searching for particular rows. +// ---------------------------------------------------------------------- + +let seekFindRow numRows rowChooser = + let mutable i = 1 + while (i <= numRows && not (rowChooser i)) do + i <- i + 1; + if i > numRows then dprintn "warning: seekFindRow: row not found"; + i + +// search for rows satisfying predicate +let seekReadIndexedRows (numRows, rowReader, keyFunc, keyComparer, binaryChop, rowConverter) = + if binaryChop then + let mutable low = 0 + let mutable high = numRows + 1 + begin + let mutable fin = false + while not fin do + if high - low <= 1 then + fin <- true + else + let mid = (low + high) / 2 + let midrow = rowReader mid + let c = keyComparer (keyFunc midrow) + if c > 0 then + low <- mid + elif c < 0 then + high <- mid + else + fin <- true + end; + let mutable res = [] + if high - low > 1 then + // now read off rows, forward and backwards + let mid = (low + high) / 2 + // read forward + begin + let mutable fin = false + let mutable curr = mid + while not fin do + if curr > numRows then + fin <- true; + else + let currrow = rowReader curr + if keyComparer (keyFunc currrow) = 0 then + res <- rowConverter currrow :: res; + else + fin <- true; + curr <- curr + 1; + done; + end; + res <- List.rev res; + // read backwards + begin + let mutable fin = false + let mutable curr = mid - 1 + while not fin do + if curr = 0 then + fin <- true + else + let currrow = rowReader curr + if keyComparer (keyFunc currrow) = 0 then + res <- rowConverter currrow :: res; + else + fin <- true; + curr <- curr - 1; + end; + // sanity check +#if CHECKING + if checking then + let res2 = + [ for i = 1 to numRows do + let rowinfo = rowReader i + if keyComparer (keyFunc rowinfo) = 0 then + yield rowConverter rowinfo ] + if (res2 <> res) then + failwith ("results of binary search did not match results of linear search: linear search produced "+string res2.Length+", binary search produced "+string res.Length) +#endif + + res + else + let res = ref [] + for i = 1 to numRows do + let rowinfo = rowReader i + if keyComparer (keyFunc rowinfo) = 0 then + res := rowConverter rowinfo :: !res; + List.rev !res + + +let seekReadOptionalIndexedRow (info) = + match seekReadIndexedRows info with + | [k] -> Some k + | [] -> None + | h::_ -> + dprintn ("multiple rows found when indexing table"); + Some h + +let seekReadIndexedRow (info) = + match seekReadOptionalIndexedRow info with + | Some row -> row + | None -> failwith ("no row found for key when indexing table") + +//--------------------------------------------------------------------- +// The big fat reader. +//--------------------------------------------------------------------- + +type ILModuleReader = + { modul: ILModuleDef; + ilAssemblyRefs: Lazy + dispose: unit -> unit } + member x.ILModuleDef = x.modul + member x.ILAssemblyRefs = x.ilAssemblyRefs.Force() + + +type MethodData = MethodData of ILType * ILCallingConv * string * ILTypes * ILType * ILTypes +type VarArgMethodData = VarArgMethodData of ILType * ILCallingConv * string * ILTypes * ILVarArgs * ILType * ILTypes + +[] +type ILReaderContext = + { ilg: ILGlobals; + dataEndPoints: Lazy; + sorted: int64; +#if NO_PDB_READER + pdb: obj option; +#else + pdb: (PdbReader * (string -> ILSourceDocument)) option; +#endif + entryPointToken: TableName * int; + getNumRows: TableName -> int; + textSegmentPhysicalLoc : int32; + textSegmentPhysicalSize : int32; + dataSegmentPhysicalLoc : int32; + dataSegmentPhysicalSize : int32; + anyV2P : (string * int32) -> int32; + metadataAddr: int32; + sectionHeaders : (int32 * int32 * int32) list; + nativeResourcesAddr:int32; + nativeResourcesSize:int32; + resourcesAddr:int32; + strongnameAddr:int32; + vtableFixupsAddr:int32; + is: InputChannel; + infile:string; + userStringsStreamPhysicalLoc: int32; + stringsStreamPhysicalLoc: int32; + blobsStreamPhysicalLoc: int32; + readUserStringHeap: (int32 -> string); + memoizeString: string -> string; + readStringHeap: (int32 -> string); + readBlobHeap: (int32 -> byte[]); + guidsStreamPhysicalLoc : int32; + rowAddr : (TableName -> int -> int32); + tableBigness : bool array; + rsBigness : bool; + tdorBigness : bool; + tomdBigness : bool; + hcBigness : bool; + hcaBigness : bool; + hfmBigness : bool; + hdsBigness : bool; + mrpBigness : bool; + hsBigness : bool; + mdorBigness : bool; + mfBigness : bool; + iBigness : bool; + catBigness : bool; + stringsBigness: bool; + guidsBigness: bool; + blobsBigness: bool; + countTypeRef : int ref; + countTypeDef : int ref; + countField : int ref; + countMethod : int ref; + countParam : int ref; + countInterfaceImpl : int ref; + countMemberRef : int ref; + countConstant : int ref; + countCustomAttribute : int ref; + countFieldMarshal: int ref; + countPermission : int ref; + countClassLayout : int ref; + countFieldLayout : int ref; + countStandAloneSig : int ref; + countEventMap : int ref; + countEvent : int ref; + countPropertyMap : int ref; + countProperty : int ref; + countMethodSemantics : int ref; + countMethodImpl : int ref; + countModuleRef : int ref; + countTypeSpec : int ref; + countImplMap : int ref; + countFieldRVA : int ref; + countAssembly : int ref; + countAssemblyRef : int ref; + countFile : int ref; + countExportedType : int ref; + countManifestResource : int ref; + countNested : int ref; + countGenericParam : int ref; + countGenericParamConstraint : int ref; + countMethodSpec : int ref; + seekReadNestedRow : int -> int * int; + seekReadConstantRow : int -> uint16 * TaggedIndex * int32; + seekReadMethodSemanticsRow : int -> int32 * int * TaggedIndex; + seekReadTypeDefRow : int -> int32 * int32 * int32 * TaggedIndex * int * int; + seekReadInterfaceImplRow : int -> int * TaggedIndex; + seekReadFieldMarshalRow : int -> TaggedIndex * int32; + seekReadPropertyMapRow : int -> int * int; + seekReadAssemblyRef : int -> ILAssemblyRef; + seekReadMethodSpecAsMethodData : MethodSpecAsMspecIdx -> VarArgMethodData; + seekReadMemberRefAsMethodData : MemberRefAsMspecIdx -> VarArgMethodData; + seekReadMemberRefAsFieldSpec : MemberRefAsFspecIdx -> ILFieldSpec; + seekReadCustomAttr : CustomAttrIdx -> ILAttribute; + seekReadSecurityDecl : SecurityDeclIdx -> ILPermission; + seekReadTypeRef : int ->ILTypeRef; + seekReadTypeRefAsType : TypeRefAsTypIdx -> ILType; + readBlobHeapAsPropertySig : BlobAsPropSigIdx -> ILThisConvention * ILType * ILTypes; + readBlobHeapAsFieldSig : BlobAsFieldSigIdx -> ILType; + readBlobHeapAsMethodSig : BlobAsMethodSigIdx -> bool * int32 * ILCallingConv * ILType * ILTypes * ILVarArgs; + readBlobHeapAsLocalsSig : BlobAsLocalSigIdx -> ILLocal list; + seekReadTypeDefAsType : TypeDefAsTypIdx -> ILType; + seekReadMethodDefAsMethodData : int -> MethodData; + seekReadGenericParams : GenericParamsIdx -> ILGenericParameterDef list; + seekReadFieldDefAsFieldSpec : int -> ILFieldSpec; } + +let readUntaggedIdx (tab:TableName) ctxt = + if ctxt.tableBigness.[tab.Index] + then readInt32 ctxt.is + else readUInt16AsInt32 ctxt.is + +let readResolutionScopeIdx ctxt = readTaggedIdx mkResolutionScopeTag 2 ctxt.rsBigness ctxt.is +let readTypeDefOrRefOrSpecIdx ctxt = readTaggedIdx mkTypeDefOrRefOrSpecTag 2 ctxt.tdorBigness ctxt.is +let readTypeOrMethodDefIdx ctxt = readTaggedIdx mkTypeOrMethodDefTag 1 ctxt.tomdBigness ctxt.is +let readHasConstantIdx ctxt = readTaggedIdx mkHasConstantTag 2 ctxt.hcBigness ctxt.is +let readHasCustomAttributeIdx ctxt = readTaggedIdx mkHasCustomAttributeTag 5 ctxt.hcaBigness ctxt.is +let readHasFieldMarshalIdx ctxt = readTaggedIdx mkHasFieldMarshalTag 1 ctxt.hfmBigness ctxt.is +let readHasDeclSecurityIdx ctxt = readTaggedIdx mkHasDeclSecurityTag 2 ctxt.hdsBigness ctxt.is +let readMemberRefParentIdx ctxt = readTaggedIdx mkMemberRefParentTag 3 ctxt.mrpBigness ctxt.is +let readHasSemanticsIdx ctxt = readTaggedIdx mkHasSemanticsTag 1 ctxt.hsBigness ctxt.is +let readMethodDefOrRefIdx ctxt = readTaggedIdx mkMethodDefOrRefTag 1 ctxt.mdorBigness ctxt.is +let readMemberForwardedIdx ctxt = readTaggedIdx mkMemberForwardedTag 1 ctxt.mfBigness ctxt.is +let readImplementationIdx ctxt = readTaggedIdx mkImplementationTag 2 ctxt.iBigness ctxt.is +let readCustomAttributeTypeIdx ctxt = readTaggedIdx mkILCustomAttributeTypeTag 3 ctxt.catBigness ctxt.is +let readStringIdx ctxt = if ctxt.stringsBigness then readInt32 ctxt.is else readUInt16AsInt32 ctxt.is +let readGuidIdx ctxt = if ctxt.guidsBigness then readInt32 ctxt.is else readUInt16AsInt32 ctxt.is +let readBlobIdx ctxt = if ctxt.blobsBigness then readInt32 ctxt.is else readUInt16AsInt32 ctxt.is + +let count c = +#if DEBUG + incr c +#else + c |> ignore + () +#endif + +let seekReadModuleRow ctxt idx = + if idx = 0 then failwith "cannot read Module table row 0"; + let addr = ctxt.rowAddr TableNames.Module idx + seek ctxt.is addr; + let generation = readUInt16 ctxt.is + let nameIdx = readStringIdx ctxt + let mvidIdx = readGuidIdx ctxt + let encidIdx = readGuidIdx ctxt + let encbaseidIdx = readGuidIdx ctxt + (generation, nameIdx, mvidIdx, encidIdx, encbaseidIdx) + +/// Read Table ILTypeRef +let seekReadTypeRefRow ctxt idx = + count ctxt.countTypeRef; + let addr = ctxt.rowAddr TableNames.TypeRef idx + seek ctxt.is addr; + let scopeIdx = readResolutionScopeIdx ctxt + let nameIdx = readStringIdx ctxt + let namespaceIdx = readStringIdx ctxt + (scopeIdx,nameIdx,namespaceIdx) + +/// Read Table ILTypeDef +let seekReadTypeDefRow ctxt idx = ctxt.seekReadTypeDefRow idx +let seekReadTypeDefRowUncached ctxtH idx = + let ctxt = getHole ctxtH + count ctxt.countTypeDef; + let addr = ctxt.rowAddr TableNames.TypeDef idx + seek ctxt.is addr; + let flags = readInt32 ctxt.is + let nameIdx = readStringIdx ctxt + let namespaceIdx = readStringIdx ctxt + let extendsIdx = readTypeDefOrRefOrSpecIdx ctxt + let fieldsIdx = readUntaggedIdx TableNames.Field ctxt + let methodsIdx = readUntaggedIdx TableNames.Method ctxt + (flags, nameIdx, namespaceIdx, extendsIdx, fieldsIdx, methodsIdx) + +/// Read Table Field +let seekReadFieldRow ctxt idx = + count ctxt.countField; + let addr = ctxt.rowAddr TableNames.Field idx + seek ctxt.is addr; + let flags = readUInt16AsInt32 ctxt.is + let nameIdx = readStringIdx ctxt + let typeIdx = readBlobIdx ctxt + (flags,nameIdx,typeIdx) + +/// Read Table Method +let seekReadMethodRow ctxt idx = + count ctxt.countMethod; + let addr = ctxt.rowAddr TableNames.Method idx + seek ctxt.is addr; + let codeRVA = readInt32 ctxt.is + let implflags = readUInt16AsInt32 ctxt.is + let flags = readUInt16AsInt32 ctxt.is + let nameIdx = readStringIdx ctxt + let typeIdx = readBlobIdx ctxt + let paramIdx = readUntaggedIdx TableNames.Param ctxt + (codeRVA, implflags, flags, nameIdx, typeIdx, paramIdx) + +/// Read Table Param +let seekReadParamRow ctxt idx = + count ctxt.countParam; + let addr = ctxt.rowAddr TableNames.Param idx + seek ctxt.is addr; + let flags = readUInt16AsInt32 ctxt.is + let seq = (readUInt16AsInt32 ctxt.is) + let nameIdx = readStringIdx ctxt + (flags,seq,nameIdx) + +/// Read Table InterfaceImpl +let seekReadInterfaceImplRow ctxt idx = ctxt.seekReadInterfaceImplRow idx +let seekReadInterfaceImplRowUncached ctxtH idx = + let ctxt = getHole ctxtH + count ctxt.countInterfaceImpl; + let addr = ctxt.rowAddr TableNames.InterfaceImpl idx + seek ctxt.is addr; + let tidx = readUntaggedIdx TableNames.TypeDef ctxt + let intfIdx = readTypeDefOrRefOrSpecIdx ctxt + (tidx,intfIdx) + +/// Read Table MemberRef +let seekReadMemberRefRow ctxt idx = + count ctxt.countMemberRef; + let addr = ctxt.rowAddr TableNames.MemberRef idx + seek ctxt.is addr; + let mrpIdx = readMemberRefParentIdx ctxt + let nameIdx = readStringIdx ctxt + let typeIdx = readBlobIdx ctxt + (mrpIdx,nameIdx,typeIdx) + +/// Read Table Constant +let seekReadConstantRow ctxt idx = ctxt.seekReadConstantRow idx +let seekReadConstantRowUncached ctxtH idx = + let ctxt = getHole ctxtH + count ctxt.countConstant; + let addr = ctxt.rowAddr TableNames.Constant idx + seek ctxt.is addr; + let kind = readUInt16 ctxt.is + let parentIdx = readHasConstantIdx ctxt + let valIdx = readBlobIdx ctxt + (kind, parentIdx, valIdx) + +/// Read Table CustomAttribute +let seekReadCustomAttributeRow ctxt idx = + count ctxt.countCustomAttribute; + let addr = ctxt.rowAddr TableNames.CustomAttribute idx + seek ctxt.is addr; + let parentIdx = readHasCustomAttributeIdx ctxt + let typeIdx = readCustomAttributeTypeIdx ctxt + let valIdx = readBlobIdx ctxt + (parentIdx, typeIdx, valIdx) + +/// Read Table FieldMarshal +let seekReadFieldMarshalRow ctxt idx = ctxt.seekReadFieldMarshalRow idx +let seekReadFieldMarshalRowUncached ctxtH idx = + let ctxt = getHole ctxtH + count ctxt.countFieldMarshal; + let addr = ctxt.rowAddr TableNames.FieldMarshal idx + seek ctxt.is addr; + let parentIdx = readHasFieldMarshalIdx ctxt + let typeIdx = readBlobIdx ctxt + (parentIdx, typeIdx) + +/// Read Table Permission +let seekReadPermissionRow ctxt idx = + count ctxt.countPermission; + let addr = ctxt.rowAddr TableNames.Permission idx + seek ctxt.is addr; + let action = readUInt16 ctxt.is + let parentIdx = readHasDeclSecurityIdx ctxt + let typeIdx = readBlobIdx ctxt + (action,parentIdx, typeIdx) + +/// Read Table ClassLayout +let seekReadClassLayoutRow ctxt idx = + count ctxt.countClassLayout; + let addr = ctxt.rowAddr TableNames.ClassLayout idx + seek ctxt.is addr; + let pack = readUInt16 ctxt.is + let size = readInt32 ctxt.is + let tidx = readUntaggedIdx TableNames.TypeDef ctxt + (pack,size,tidx) + +/// Read Table FieldLayout +let seekReadFieldLayoutRow ctxt idx = + count ctxt.countFieldLayout; + let addr = ctxt.rowAddr TableNames.FieldLayout idx + seek ctxt.is addr; + let offset = readInt32 ctxt.is + let fidx = readUntaggedIdx TableNames.Field ctxt + (offset,fidx) + +//// Read Table StandAloneSig +let seekReadStandAloneSigRow ctxt idx = + count ctxt.countStandAloneSig; + let addr = ctxt.rowAddr TableNames.StandAloneSig idx + seek ctxt.is addr; + let sigIdx = readBlobIdx ctxt + sigIdx + +/// Read Table EventMap +let seekReadEventMapRow ctxt idx = + count ctxt.countEventMap; + let addr = ctxt.rowAddr TableNames.EventMap idx + seek ctxt.is addr; + let tidx = readUntaggedIdx TableNames.TypeDef ctxt + let eventsIdx = readUntaggedIdx TableNames.Event ctxt + (tidx,eventsIdx) + +/// Read Table Event +let seekReadEventRow ctxt idx = + count ctxt.countEvent; + let addr = ctxt.rowAddr TableNames.Event idx + seek ctxt.is addr; + let flags = readUInt16AsInt32 ctxt.is + let nameIdx = readStringIdx ctxt + let typIdx = readTypeDefOrRefOrSpecIdx ctxt + (flags,nameIdx,typIdx) + +/// Read Table PropertyMap +let seekReadPropertyMapRow ctxt idx = ctxt.seekReadPropertyMapRow idx +let seekReadPropertyMapRowUncached ctxtH idx = + let ctxt = getHole ctxtH + count ctxt.countPropertyMap; + let addr = ctxt.rowAddr TableNames.PropertyMap idx + seek ctxt.is addr; + let tidx = readUntaggedIdx TableNames.TypeDef ctxt + let propsIdx = readUntaggedIdx TableNames.Property ctxt + (tidx,propsIdx) + +/// Read Table Property +let seekReadPropertyRow ctxt idx = + count ctxt.countProperty; + let addr = ctxt.rowAddr TableNames.Property idx + seek ctxt.is addr; + let flags = readUInt16AsInt32 ctxt.is + let nameIdx = readStringIdx ctxt + let typIdx = readBlobIdx ctxt + (flags,nameIdx,typIdx) + +/// Read Table MethodSemantics +let seekReadMethodSemanticsRow ctxt idx = ctxt.seekReadMethodSemanticsRow idx +let seekReadMethodSemanticsRowUncached ctxtH idx = + let ctxt = getHole ctxtH + count ctxt.countMethodSemantics; + let addr = ctxt.rowAddr TableNames.MethodSemantics idx + seek ctxt.is addr; + let flags = readUInt16AsInt32 ctxt.is + let midx = readUntaggedIdx TableNames.Method ctxt + let assocIdx = readHasSemanticsIdx ctxt + (flags,midx,assocIdx) + +/// Read Table MethodImpl +let seekReadMethodImplRow ctxt idx = + count ctxt.countMethodImpl; + let addr = ctxt.rowAddr TableNames.MethodImpl idx + seek ctxt.is addr; + let tidx = readUntaggedIdx TableNames.TypeDef ctxt + let mbodyIdx = readMethodDefOrRefIdx ctxt + let mdeclIdx = readMethodDefOrRefIdx ctxt + (tidx,mbodyIdx,mdeclIdx) + +/// Read Table ILModuleRef +let seekReadModuleRefRow ctxt idx = + count ctxt.countModuleRef; + let addr = ctxt.rowAddr TableNames.ModuleRef idx + seek ctxt.is addr; + let nameIdx = readStringIdx ctxt + nameIdx + +/// Read Table ILTypeSpec +let seekReadTypeSpecRow ctxt idx = + count ctxt.countTypeSpec; + let addr = ctxt.rowAddr TableNames.TypeSpec idx + seek ctxt.is addr; + let blobIdx = readBlobIdx ctxt + blobIdx + +/// Read Table ImplMap +let seekReadImplMapRow ctxt idx = + count ctxt.countImplMap; + let addr = ctxt.rowAddr TableNames.ImplMap idx + seek ctxt.is addr; + let flags = readUInt16AsInt32 ctxt.is + let forwrdedIdx = readMemberForwardedIdx ctxt + let nameIdx = readStringIdx ctxt + let scopeIdx = readUntaggedIdx TableNames.ModuleRef ctxt + (flags, forwrdedIdx, nameIdx, scopeIdx) + +/// Read Table FieldRVA +let seekReadFieldRVARow ctxt idx = + count ctxt.countFieldRVA; + let addr = ctxt.rowAddr TableNames.FieldRVA idx + seek ctxt.is addr; + let rva = readInt32 ctxt.is + let fidx = readUntaggedIdx TableNames.Field ctxt + (rva,fidx) + +/// Read Table Assembly +let seekReadAssemblyRow ctxt idx = + count ctxt.countAssembly; + let addr = ctxt.rowAddr TableNames.Assembly idx + seek ctxt.is addr; + let hash = readInt32 ctxt.is + let v1 = readUInt16 ctxt.is + let v2 = readUInt16 ctxt.is + let v3 = readUInt16 ctxt.is + let v4 = readUInt16 ctxt.is + let flags = readInt32 ctxt.is + let publicKeyIdx = readBlobIdx ctxt + let nameIdx = readStringIdx ctxt + let localeIdx = readStringIdx ctxt + (hash,v1,v2,v3,v4,flags,publicKeyIdx, nameIdx, localeIdx) + +/// Read Table ILAssemblyRef +let seekReadAssemblyRefRow ctxt idx = + count ctxt.countAssemblyRef; + let addr = ctxt.rowAddr TableNames.AssemblyRef idx + seek ctxt.is addr; + let v1 = readUInt16 ctxt.is + let v2 = readUInt16 ctxt.is + let v3 = readUInt16 ctxt.is + let v4 = readUInt16 ctxt.is + let flags = readInt32 ctxt.is + let publicKeyOrTokenIdx = readBlobIdx ctxt + let nameIdx = readStringIdx ctxt + let localeIdx = readStringIdx ctxt + let hashValueIdx = readBlobIdx ctxt + (v1,v2,v3,v4,flags,publicKeyOrTokenIdx, nameIdx, localeIdx,hashValueIdx) + +/// Read Table File +let seekReadFileRow ctxt idx = + count ctxt.countFile; + let addr = ctxt.rowAddr TableNames.File idx + seek ctxt.is addr; + let flags = readInt32 ctxt.is + let nameIdx = readStringIdx ctxt + let hashValueIdx = readBlobIdx ctxt + (flags, nameIdx, hashValueIdx) + +/// Read Table ILExportedTypeOrForwarder +let seekReadExportedTypeRow ctxt idx = + count ctxt.countExportedType; + let addr = ctxt.rowAddr TableNames.ExportedType idx + seek ctxt.is addr; + let flags = readInt32 ctxt.is + let tok = readInt32 ctxt.is + let nameIdx = readStringIdx ctxt + let namespaceIdx = readStringIdx ctxt + let implIdx = readImplementationIdx ctxt + (flags,tok,nameIdx,namespaceIdx,implIdx) + +/// Read Table ManifestResource +let seekReadManifestResourceRow ctxt idx = + count ctxt.countManifestResource; + let addr = ctxt.rowAddr TableNames.ManifestResource idx + seek ctxt.is addr; + let offset = readInt32 ctxt.is + let flags = readInt32 ctxt.is + let nameIdx = readStringIdx ctxt + let implIdx = readImplementationIdx ctxt + (offset,flags,nameIdx,implIdx) + +/// Read Table Nested +let seekReadNestedRow ctxt idx = ctxt.seekReadNestedRow idx +let seekReadNestedRowUncached ctxtH idx = + let ctxt = getHole ctxtH + count ctxt.countNested; + let addr = ctxt.rowAddr TableNames.Nested idx + seek ctxt.is addr; + let nestedIdx = readUntaggedIdx TableNames.TypeDef ctxt + let enclIdx = readUntaggedIdx TableNames.TypeDef ctxt + (nestedIdx,enclIdx) + +/// Read Table GenericParam +let seekReadGenericParamRow ctxt idx = + count ctxt.countGenericParam; + let addr = ctxt.rowAddr TableNames.GenericParam idx + seek ctxt.is addr; + let seq = readUInt16 ctxt.is + let flags = readUInt16 ctxt.is + let ownerIdx = readTypeOrMethodDefIdx ctxt + let nameIdx = readStringIdx ctxt + (idx,seq,flags,ownerIdx,nameIdx) + +// Read Table GenericParamConstraint +let seekReadGenericParamConstraintRow ctxt idx = + count ctxt.countGenericParamConstraint; + let addr = ctxt.rowAddr TableNames.GenericParamConstraint idx + seek ctxt.is addr; + let pidx = readUntaggedIdx TableNames.GenericParam ctxt + let constraintIdx = readTypeDefOrRefOrSpecIdx ctxt + (pidx,constraintIdx) + +/// Read Table ILMethodSpec +let seekReadMethodSpecRow ctxt idx = + count ctxt.countMethodSpec; + let addr = ctxt.rowAddr TableNames.MethodSpec idx + seek ctxt.is addr; + let mdorIdx = readMethodDefOrRefIdx ctxt + let instIdx = readBlobIdx ctxt + (mdorIdx,instIdx) + +let readUserStringHeapUncached ctxtH idx = + let ctxt = getHole ctxtH + seekReadUserString ctxt.is (ctxt.userStringsStreamPhysicalLoc + idx) + +let readUserStringHeap ctxt idx = ctxt.readUserStringHeap idx + +let readStringHeapUncached ctxtH idx = + let ctxt = getHole ctxtH + seekReadUTF8String ctxt.is (ctxt.stringsStreamPhysicalLoc + idx) +let readStringHeap ctxt idx = ctxt.readStringHeap idx +let readStringHeapOption ctxt idx = if idx = 0 then None else Some (readStringHeap ctxt idx) + +let readBlobHeapUncached ctxtH idx = + let ctxt = getHole ctxtH + seekReadBlob ctxt.is (ctxt.blobsStreamPhysicalLoc + idx) +let readBlobHeap ctxt idx = ctxt.readBlobHeap idx +let readBlobHeapOption ctxt idx = if idx = 0 then None else Some (readBlobHeap ctxt idx) + +let readGuidHeap ctxt idx = seekReadGuid ctxt.is (ctxt.guidsStreamPhysicalLoc + idx) + +// read a single value out of a blob heap using the given function +let readBlobHeapAsBool ctxt vidx = fst (sigptrGetBool (readBlobHeap ctxt vidx) 0) +let readBlobHeapAsSByte ctxt vidx = fst (sigptrGetSByte (readBlobHeap ctxt vidx) 0) +let readBlobHeapAsInt16 ctxt vidx = fst (sigptrGetInt16 (readBlobHeap ctxt vidx) 0) +let readBlobHeapAsInt32 ctxt vidx = fst (sigptrGetInt32 (readBlobHeap ctxt vidx) 0) +let readBlobHeapAsInt64 ctxt vidx = fst (sigptrGetInt64 (readBlobHeap ctxt vidx) 0) +let readBlobHeapAsByte ctxt vidx = fst (sigptrGetByte (readBlobHeap ctxt vidx) 0) +let readBlobHeapAsUInt16 ctxt vidx = fst (sigptrGetUInt16 (readBlobHeap ctxt vidx) 0) +let readBlobHeapAsUInt32 ctxt vidx = fst (sigptrGetUInt32 (readBlobHeap ctxt vidx) 0) +let readBlobHeapAsUInt64 ctxt vidx = fst (sigptrGetUInt64 (readBlobHeap ctxt vidx) 0) +let readBlobHeapAsSingle ctxt vidx = fst (sigptrGetSingle (readBlobHeap ctxt vidx) 0) +let readBlobHeapAsDouble ctxt vidx = fst (sigptrGetDouble (readBlobHeap ctxt vidx) 0) + +//----------------------------------------------------------------------- +// Some binaries have raw data embedded their text sections, e.g. mscorlib, for +// field inits. And there is no information that definitively tells us the extent of +// the text section that may be interesting data. But we certainly don't want to duplicate +// the entire text section as data! +// +// So, we assume: +// 1. no part of the metadata is double-used for raw data +// 2. the data bits are all the bits of the text section +// that stretch from a Field or Resource RVA to one of +// (a) the next Field or resource RVA +// (b) a MethodRVA +// (c) the start of the metadata +// (d) the end of a section +// (e) the start of the native resources attached to the binary if any +// ----------------------------------------------------------------------*) + +#if NO_PDB_READER +let readNativeResources _ctxt = [] +#else +let readNativeResources ctxt = + let nativeResources = + if ctxt.nativeResourcesSize = 0x0 || ctxt.nativeResourcesAddr = 0x0 then + [] + else + [ (lazy (let linkedResource = seekReadBytes ctxt.is (ctxt.anyV2P (ctxt.infile + ": native resources",ctxt.nativeResourcesAddr)) ctxt.nativeResourcesSize + unlinkResource ctxt.nativeResourcesAddr linkedResource)) ] + nativeResources +#endif + +let dataEndPoints ctxtH = + lazy + let ctxt = getHole ctxtH + let dataStartPoints = + let res = ref [] + for i = 1 to ctxt.getNumRows (TableNames.FieldRVA) do + let rva,_fidx = seekReadFieldRVARow ctxt i + res := ("field",rva) :: !res; + for i = 1 to ctxt.getNumRows TableNames.ManifestResource do + let (offset,_,_,TaggedIndex(_tag,idx)) = seekReadManifestResourceRow ctxt i + if idx = 0 then + let rva = ctxt.resourcesAddr + offset + res := ("manifest resource", rva) :: !res; + !res + if isNil dataStartPoints then [] + else + let methodRVAs = + let res = ref [] + for i = 1 to ctxt.getNumRows TableNames.Method do + let (rva, _, _, nameIdx, _, _) = seekReadMethodRow ctxt i + if rva <> 0 then + let nm = readStringHeap ctxt nameIdx + res := (nm,rva) :: !res; + !res + ([ ctxt.textSegmentPhysicalLoc + ctxt.textSegmentPhysicalSize; + ctxt.dataSegmentPhysicalLoc + ctxt.dataSegmentPhysicalSize; ] + @ + (List.map ctxt.anyV2P + (dataStartPoints + @ [for (virtAddr,_virtSize,_physLoc) in ctxt.sectionHeaders do yield ("section start",virtAddr) done] + @ [("md",ctxt.metadataAddr)] + @ (if ctxt.nativeResourcesAddr = 0x0 then [] else [("native resources",ctxt.nativeResourcesAddr); ]) + @ (if ctxt.resourcesAddr = 0x0 then [] else [("managed resources",ctxt.resourcesAddr); ]) + @ (if ctxt.strongnameAddr = 0x0 then [] else [("managed strongname",ctxt.strongnameAddr); ]) + @ (if ctxt.vtableFixupsAddr = 0x0 then [] else [("managed vtable_fixups",ctxt.vtableFixupsAddr); ]) + @ methodRVAs))) + // Make distinct + |> Set.ofList + |> Set.toList + |> List.sort + + +let rec rvaToData ctxt nm rva = + if rva = 0x0 then failwith "rva is zero"; + let start = ctxt.anyV2P (nm, rva) + let endPoints = (Lazy.force ctxt.dataEndPoints) + let rec look l = + match l with + | [] -> + failwithf "find_text_data_extent: none found for infile=%s, name=%s, rva=0x%08x, start=0x%08x" ctxt.infile nm rva start + | e::t -> + if start < e then + (seekReadBytes ctxt.is start (e - start)) + else look t + look endPoints + + + +//----------------------------------------------------------------------- +// Read the AbsIL structure (lazily) by reading off the relevant rows. +// ---------------------------------------------------------------------- + +let isSorted ctxt (tab:TableName) = ((ctxt.sorted &&& (int64 1 <<< tab.Index)) <> int64 0x0) + +let rec seekReadModule ctxt (subsys,subsysversion,useHighEntropyVA, ilOnly,only32,is32bitpreferred,only64,platform,isDll, alignVirt,alignPhys,imageBaseReal,ilMetadataVersion) idx = + let (_generation, nameIdx, _mvidIdx, _encidIdx, _encbaseidIdx) = seekReadModuleRow ctxt idx + let ilModuleName = readStringHeap ctxt nameIdx + let nativeResources = readNativeResources ctxt + + { Manifest = + if ctxt.getNumRows (TableNames.Assembly) > 0 then Some (seekReadAssemblyManifest ctxt 1) + else None; + CustomAttrs = seekReadCustomAttrs ctxt (TaggedIndex(hca_Module,idx)); + Name = ilModuleName; + NativeResources=nativeResources; + TypeDefs = mkILTypeDefsLazy (lazy (seekReadTopTypeDefs ctxt ())); + SubSystemFlags = int32 subsys; + IsILOnly = ilOnly; + SubsystemVersion = subsysversion + UseHighEntropyVA = useHighEntropyVA + Platform = platform; + StackReserveSize = None; // TODO + Is32Bit = only32; + Is32BitPreferred = is32bitpreferred; + Is64Bit = only64; + IsDLL=isDll; + VirtualAlignment = alignVirt; + PhysicalAlignment = alignPhys; + ImageBase = imageBaseReal; + MetadataVersion = ilMetadataVersion; + Resources = seekReadManifestResources ctxt (); } + +and seekReadAssemblyManifest ctxt idx = + let (hash,v1,v2,v3,v4,flags,publicKeyIdx, nameIdx, localeIdx) = seekReadAssemblyRow ctxt idx + let name = readStringHeap ctxt nameIdx + let pubkey = readBlobHeapOption ctxt publicKeyIdx + { Name= name; + AuxModuleHashAlgorithm=hash; + SecurityDecls= seekReadSecurityDecls ctxt (TaggedIndex(hds_Assembly,idx)); + PublicKey= pubkey; + Version= Some (v1,v2,v3,v4); + Locale= readStringHeapOption ctxt localeIdx; + CustomAttrs = seekReadCustomAttrs ctxt (TaggedIndex(hca_Assembly,idx)); + AssemblyLongevity= + begin let masked = flags &&& 0x000e + if masked = 0x0000 then ILAssemblyLongevity.Unspecified + elif masked = 0x0002 then ILAssemblyLongevity.Library + elif masked = 0x0004 then ILAssemblyLongevity.PlatformAppDomain + elif masked = 0x0006 then ILAssemblyLongevity.PlatformProcess + elif masked = 0x0008 then ILAssemblyLongevity.PlatformSystem + else ILAssemblyLongevity.Unspecified + end; + ExportedTypes= seekReadTopExportedTypes ctxt (); + EntrypointElsewhere=(if fst ctxt.entryPointToken = TableNames.File then Some (seekReadFile ctxt (snd ctxt.entryPointToken)) else None); + Retargetable = 0 <> (flags &&& 0x100); + DisableJitOptimizations = 0 <> (flags &&& 0x4000); + JitTracking = 0 <> (flags &&& 0x8000); } + +and seekReadAssemblyRef ctxt idx = ctxt.seekReadAssemblyRef idx +and seekReadAssemblyRefUncached ctxtH idx = + let ctxt = getHole ctxtH + let (v1,v2,v3,v4,flags,publicKeyOrTokenIdx, nameIdx, localeIdx,hashValueIdx) = seekReadAssemblyRefRow ctxt idx + let nm = readStringHeap ctxt nameIdx + let publicKey = + match readBlobHeapOption ctxt publicKeyOrTokenIdx with + | None -> None + | Some blob -> Some (if (flags &&& 0x0001) <> 0x0 then PublicKey blob else PublicKeyToken blob) + + ILAssemblyRef.Create + (name=nm, + hash=readBlobHeapOption ctxt hashValueIdx, + publicKey=publicKey, + retargetable=((flags &&& 0x0100) <> 0x0), + version=Some(v1,v2,v3,v4), + locale=readStringHeapOption ctxt localeIdx;) + +and seekReadModuleRef ctxt idx = + let (nameIdx) = seekReadModuleRefRow ctxt idx + ILModuleRef.Create(name = readStringHeap ctxt nameIdx, + hasMetadata=true, + hash=None) + +and seekReadFile ctxt idx = + let (flags, nameIdx, hashValueIdx) = seekReadFileRow ctxt idx + ILModuleRef.Create(name = readStringHeap ctxt nameIdx, + hasMetadata= ((flags &&& 0x0001) = 0x0), + hash= readBlobHeapOption ctxt hashValueIdx) + +and seekReadClassLayout ctxt idx = + match seekReadOptionalIndexedRow (ctxt.getNumRows TableNames.ClassLayout,seekReadClassLayoutRow ctxt,(fun (_,_,tidx) -> tidx),simpleIndexCompare idx,isSorted ctxt TableNames.ClassLayout,(fun (pack,size,_) -> pack,size)) with + | None -> { Size = None; Pack = None } + | Some (pack,size) -> { Size = Some size; + Pack = Some pack; } + +and memberAccessOfFlags flags = + let f = (flags &&& 0x00000007) + if f = 0x00000001 then ILMemberAccess.Private + elif f = 0x00000006 then ILMemberAccess.Public + elif f = 0x00000004 then ILMemberAccess.Family + elif f = 0x00000002 then ILMemberAccess.FamilyAndAssembly + elif f = 0x00000005 then ILMemberAccess.FamilyOrAssembly + elif f = 0x00000003 then ILMemberAccess.Assembly + else ILMemberAccess.CompilerControlled + +and typeAccessOfFlags flags = + let f = (flags &&& 0x00000007) + if f = 0x00000001 then ILTypeDefAccess.Public + elif f = 0x00000002 then ILTypeDefAccess.Nested ILMemberAccess.Public + elif f = 0x00000003 then ILTypeDefAccess.Nested ILMemberAccess.Private + elif f = 0x00000004 then ILTypeDefAccess.Nested ILMemberAccess.Family + elif f = 0x00000006 then ILTypeDefAccess.Nested ILMemberAccess.FamilyAndAssembly + elif f = 0x00000007 then ILTypeDefAccess.Nested ILMemberAccess.FamilyOrAssembly + elif f = 0x00000005 then ILTypeDefAccess.Nested ILMemberAccess.Assembly + else ILTypeDefAccess.Private + +and typeLayoutOfFlags ctxt flags tidx = + let f = (flags &&& 0x00000018) + if f = 0x00000008 then ILTypeDefLayout.Sequential (seekReadClassLayout ctxt tidx) + elif f = 0x00000010 then ILTypeDefLayout.Explicit (seekReadClassLayout ctxt tidx) + else ILTypeDefLayout.Auto + +and typeKindOfFlags nm _mdefs _fdefs (super:ILType option) flags = + if (flags &&& 0x00000020) <> 0x0 then ILTypeDefKind.Interface + else + let isEnum = (match super with None -> false | Some ty -> ty.TypeSpec.Name = "System.Enum") + let isDelegate = (match super with None -> false | Some ty -> ty.TypeSpec.Name = "System.Delegate") + let isMulticastDelegate = (match super with None -> false | Some ty -> ty.TypeSpec.Name = "System.MulticastDelegate") + let selfIsMulticastDelegate = nm = "System.MulticastDelegate" + let isValueType = (match super with None -> false | Some ty -> ty.TypeSpec.Name = "System.ValueType" && nm <> "System.Enum") + if isEnum then ILTypeDefKind.Enum + elif (isDelegate && not selfIsMulticastDelegate) || isMulticastDelegate then ILTypeDefKind.Delegate + elif isValueType then ILTypeDefKind.ValueType + else ILTypeDefKind.Class + +and typeEncodingOfFlags flags = + let f = (flags &&& 0x00030000) + if f = 0x00020000 then ILDefaultPInvokeEncoding.Auto + elif f = 0x00010000 then ILDefaultPInvokeEncoding.Unicode + else ILDefaultPInvokeEncoding.Ansi + +and isTopTypeDef flags = + (typeAccessOfFlags flags = ILTypeDefAccess.Private) || + typeAccessOfFlags flags = ILTypeDefAccess.Public + +and seekIsTopTypeDefOfIdx ctxt idx = + let (flags,_,_, _, _,_) = seekReadTypeDefRow ctxt idx + isTopTypeDef flags + +and readBlobHeapAsSplitTypeName ctxt (nameIdx,namespaceIdx) = + let name = readStringHeap ctxt nameIdx + let nspace = readStringHeapOption ctxt namespaceIdx + match nspace with + | Some nspace -> splitNamespace nspace,name + | None -> [],name + +and readBlobHeapAsTypeName ctxt (nameIdx,namespaceIdx) = + let name = readStringHeap ctxt nameIdx + let nspace = readStringHeapOption ctxt namespaceIdx + match nspace with + | None -> name + | Some ns -> ctxt.memoizeString (ns+"."+name) + +and seekReadTypeDefRowExtents ctxt _info (idx:int) = + if idx >= ctxt.getNumRows TableNames.TypeDef then + ctxt.getNumRows TableNames.Field + 1, + ctxt.getNumRows TableNames.Method + 1 + else + let (_, _, _, _, fieldsIdx, methodsIdx) = seekReadTypeDefRow ctxt (idx + 1) + fieldsIdx, methodsIdx + +and seekReadTypeDefRowWithExtents ctxt (idx:int) = + let info= seekReadTypeDefRow ctxt idx + info,seekReadTypeDefRowExtents ctxt info idx + +and seekReadTypeDef ctxt toponly (idx:int) = + let (flags,nameIdx,namespaceIdx, _, _, _) = seekReadTypeDefRow ctxt idx + if toponly && not (isTopTypeDef flags) then None + else + let ns,n = readBlobHeapAsSplitTypeName ctxt (nameIdx,namespaceIdx) + let cas = seekReadCustomAttrs ctxt (TaggedIndex(hca_TypeDef,idx)) + + let rest = + lazy + // Re-read so as not to save all these in the lazy closure - this suspension ctxt.is the largest + // heavily allocated one in all of AbsIL + let ((flags,nameIdx,namespaceIdx, extendsIdx, fieldsIdx, methodsIdx) as info) = seekReadTypeDefRow ctxt idx + let nm = readBlobHeapAsTypeName ctxt (nameIdx,namespaceIdx) + let cas = seekReadCustomAttrs ctxt (TaggedIndex(hca_TypeDef,idx)) + + let (endFieldsIdx, endMethodsIdx) = seekReadTypeDefRowExtents ctxt info idx + let typars = seekReadGenericParams ctxt 0 (tomd_TypeDef,idx) + let numtypars = typars.Length + let super = seekReadOptionalTypeDefOrRef ctxt numtypars AsObject extendsIdx + let layout = typeLayoutOfFlags ctxt flags idx + let hasLayout = (match layout with ILTypeDefLayout.Explicit _ -> true | _ -> false) + let mdefs = seekReadMethods ctxt numtypars methodsIdx endMethodsIdx + let fdefs = seekReadFields ctxt (numtypars,hasLayout) fieldsIdx endFieldsIdx + let kind = typeKindOfFlags nm mdefs fdefs super flags + let nested = seekReadNestedTypeDefs ctxt idx + let impls = seekReadInterfaceImpls ctxt numtypars idx + let sdecls = seekReadSecurityDecls ctxt (TaggedIndex(hds_TypeDef,idx)) + let mimpls = seekReadMethodImpls ctxt numtypars idx + let props = seekReadProperties ctxt numtypars idx + let events = seekReadEvents ctxt numtypars idx + { tdKind= kind; + Name=nm; + GenericParams=typars; + Access= typeAccessOfFlags flags; + IsAbstract= (flags &&& 0x00000080) <> 0x0; + IsSealed= (flags &&& 0x00000100) <> 0x0; + IsSerializable= (flags &&& 0x00002000) <> 0x0; + IsComInterop= (flags &&& 0x00001000) <> 0x0; + Layout = layout; + IsSpecialName= (flags &&& 0x00000400) <> 0x0; + Encoding=typeEncodingOfFlags flags; + NestedTypes= nested; + Implements = mkILTypes impls; + Extends = super; + Methods = mdefs; + SecurityDecls = sdecls; + HasSecurity=(flags &&& 0x00040000) <> 0x0; + Fields=fdefs; + MethodImpls=mimpls; + InitSemantics= + if kind = ILTypeDefKind.Interface then ILTypeInit.OnAny + elif (flags &&& 0x00100000) <> 0x0 then ILTypeInit.BeforeField + else ILTypeInit.OnAny; + Events= events; + Properties=props; + CustomAttrs=cas; } + Some (ns,n,cas,rest) + +and seekReadTopTypeDefs ctxt () = + [ for i = 1 to ctxt.getNumRows TableNames.TypeDef do + match seekReadTypeDef ctxt true i with + | None -> () + | Some td -> yield td ] + +and seekReadNestedTypeDefs ctxt tidx = + mkILTypeDefsLazy + (lazy + let nestedIdxs = seekReadIndexedRows (ctxt.getNumRows TableNames.Nested,seekReadNestedRow ctxt,snd,simpleIndexCompare tidx,false,fst) + [ for i in nestedIdxs do + match seekReadTypeDef ctxt false i with + | None -> () + | Some td -> yield td ]) + +and seekReadInterfaceImpls ctxt numtypars tidx = + seekReadIndexedRows (ctxt.getNumRows TableNames.InterfaceImpl, + seekReadInterfaceImplRow ctxt, + fst, + simpleIndexCompare tidx, + isSorted ctxt TableNames.InterfaceImpl, + (snd >> seekReadTypeDefOrRef ctxt numtypars AsObject (*ok*) ILList.empty)) + +and seekReadGenericParams ctxt numtypars (a,b) : ILGenericParameterDefs = + ctxt.seekReadGenericParams (GenericParamsIdx(numtypars,a,b)) + +and seekReadGenericParamsUncached ctxtH (GenericParamsIdx(numtypars,a,b)) = + let ctxt = getHole ctxtH + let pars = + seekReadIndexedRows + (ctxt.getNumRows TableNames.GenericParam,seekReadGenericParamRow ctxt, + (fun (_,_,_,tomd,_) -> tomd), + tomdCompare (TaggedIndex(a,b)), + isSorted ctxt TableNames.GenericParam, + (fun (gpidx,seq,flags,_,nameIdx) -> + let flags = int32 flags + let variance_flags = flags &&& 0x0003 + let variance = + if variance_flags = 0x0000 then NonVariant + elif variance_flags = 0x0001 then CoVariant + elif variance_flags = 0x0002 then ContraVariant + else NonVariant + let constraints = seekReadGenericParamConstraintsUncached ctxt numtypars gpidx + let cas = seekReadCustomAttrs ctxt (TaggedIndex(hca_GenericParam,gpidx)) + seq, {Name=readStringHeap ctxt nameIdx; + Constraints=mkILTypes constraints; + Variance=variance; + CustomAttrs=cas; + HasReferenceTypeConstraint= (flags &&& 0x0004) <> 0; + HasNotNullableValueTypeConstraint= (flags &&& 0x0008) <> 0; + HasDefaultConstructorConstraint=(flags &&& 0x0010) <> 0; })) + pars |> List.sortBy fst |> List.map snd + +and seekReadGenericParamConstraintsUncached ctxt numtypars gpidx = + seekReadIndexedRows + (ctxt.getNumRows TableNames.GenericParamConstraint, + seekReadGenericParamConstraintRow ctxt, + fst, + simpleIndexCompare gpidx, + isSorted ctxt TableNames.GenericParamConstraint, + (snd >> seekReadTypeDefOrRef ctxt numtypars AsObject (*ok*) ILList.empty)) + +and seekReadTypeDefAsType ctxt boxity (ginst:ILTypes) idx = + ctxt.seekReadTypeDefAsType (TypeDefAsTypIdx (boxity,ginst,idx)) + +and seekReadTypeDefAsTypeUncached ctxtH (TypeDefAsTypIdx (boxity,ginst,idx)) = + let ctxt = getHole ctxtH + mkILTy boxity (ILTypeSpec.Create(seekReadTypeDefAsTypeRef ctxt idx, ginst)) + +and seekReadTypeDefAsTypeRef ctxt idx = + let enc = + if seekIsTopTypeDefOfIdx ctxt idx then [] + else + let enclIdx = seekReadIndexedRow (ctxt.getNumRows TableNames.Nested,seekReadNestedRow ctxt,fst,simpleIndexCompare idx,isSorted ctxt TableNames.Nested,snd) + let tref = seekReadTypeDefAsTypeRef ctxt enclIdx + tref.Enclosing@[tref.Name] + let (_, nameIdx, namespaceIdx, _, _, _) = seekReadTypeDefRow ctxt idx + let nm = readBlobHeapAsTypeName ctxt (nameIdx,namespaceIdx) + ILTypeRef.Create(scope=ILScopeRef.Local, enclosing=enc, name = nm ) + +and seekReadTypeRef ctxt idx = ctxt.seekReadTypeRef idx +and seekReadTypeRefUncached ctxtH idx = + let ctxt = getHole ctxtH + let scopeIdx,nameIdx,namespaceIdx = seekReadTypeRefRow ctxt idx + let scope,enc = seekReadTypeRefScope ctxt scopeIdx + let nm = readBlobHeapAsTypeName ctxt (nameIdx,namespaceIdx) + ILTypeRef.Create(scope=scope, enclosing=enc, name = nm) + +and seekReadTypeRefAsType ctxt boxity ginst idx = ctxt.seekReadTypeRefAsType (TypeRefAsTypIdx (boxity,ginst,idx)) +and seekReadTypeRefAsTypeUncached ctxtH (TypeRefAsTypIdx (boxity,ginst,idx)) = + let ctxt = getHole ctxtH + mkILTy boxity (ILTypeSpec.Create(seekReadTypeRef ctxt idx, ginst)) + +and seekReadTypeDefOrRef ctxt numtypars boxity (ginst:ILTypes) (TaggedIndex(tag,idx) ) = + match tag with + | tag when tag = tdor_TypeDef -> seekReadTypeDefAsType ctxt boxity ginst idx + | tag when tag = tdor_TypeRef -> seekReadTypeRefAsType ctxt boxity ginst idx + | tag when tag = tdor_TypeSpec -> + if ginst.Length > 0 then dprintn ("type spec used as type constructor for a generic instantiation: ignoring instantiation"); + readBlobHeapAsType ctxt numtypars (seekReadTypeSpecRow ctxt idx) + | _ -> failwith "seekReadTypeDefOrRef ctxt" + +and seekReadTypeDefOrRefAsTypeRef ctxt (TaggedIndex(tag,idx) ) = + match tag with + | tag when tag = tdor_TypeDef -> seekReadTypeDefAsTypeRef ctxt idx + | tag when tag = tdor_TypeRef -> seekReadTypeRef ctxt idx + | tag when tag = tdor_TypeSpec -> + dprintn ("type spec used where a type ref or def ctxt.is required"); + ctxt.ilg.tref_Object + | _ -> failwith "seekReadTypeDefOrRefAsTypeRef_readTypeDefOrRefOrSpec" + +and seekReadMethodRefParent ctxt numtypars (TaggedIndex(tag,idx)) = + match tag with + | tag when tag = mrp_TypeRef -> seekReadTypeRefAsType ctxt AsObject (* not ok - no way to tell if a member ref parent ctxt.is a value type or not *) ILList.empty idx + | tag when tag = mrp_ModuleRef -> mkILTypeForGlobalFunctions (ILScopeRef.Module (seekReadModuleRef ctxt idx)) + | tag when tag = mrp_MethodDef -> + let (MethodData(enclTyp, cc, nm, argtys, retty, minst)) = seekReadMethodDefAsMethodData ctxt idx + let mspec = mkILMethSpecInTyRaw(enclTyp, cc, nm, argtys, retty, minst) + mspec.EnclosingType + | tag when tag = mrp_TypeSpec -> readBlobHeapAsType ctxt numtypars (seekReadTypeSpecRow ctxt idx) + | _ -> failwith "seekReadMethodRefParent ctxt" + +and seekReadMethodDefOrRef ctxt numtypars (TaggedIndex(tag,idx)) = + match tag with + | tag when tag = mdor_MethodDef -> + let (MethodData(enclTyp, cc, nm, argtys, retty,minst)) = seekReadMethodDefAsMethodData ctxt idx + VarArgMethodData(enclTyp, cc, nm, argtys, None,retty,minst) + | tag when tag = mdor_MemberRef -> + seekReadMemberRefAsMethodData ctxt numtypars idx + | _ -> failwith "seekReadMethodDefOrRef ctxt" + +and seekReadMethodDefOrRefNoVarargs ctxt numtypars x = + let (VarArgMethodData(enclTyp, cc, nm, argtys, varargs, retty, minst)) = seekReadMethodDefOrRef ctxt numtypars x + if varargs <> None then dprintf "ignoring sentinel and varargs in ILMethodDef token signature"; + MethodData(enclTyp, cc, nm, argtys, retty,minst) + +and seekReadCustomAttrType ctxt (TaggedIndex(tag,idx) ) = + match tag with + | tag when tag = cat_MethodDef -> + let (MethodData(enclTyp, cc, nm, argtys, retty, minst)) = seekReadMethodDefAsMethodData ctxt idx + mkILMethSpecInTyRaw (enclTyp, cc, nm, argtys, retty, minst) + | tag when tag = cat_MemberRef -> + let (MethodData(enclTyp, cc, nm, argtys, retty, minst)) = seekReadMemberRefAsMethDataNoVarArgs ctxt 0 idx + mkILMethSpecInTyRaw (enclTyp, cc, nm, argtys, retty, minst) + | _ -> failwith "seekReadCustomAttrType ctxt" + +and seekReadImplAsScopeRef ctxt (TaggedIndex(tag,idx) ) = + if idx = 0 then ILScopeRef.Local + else + match tag with + | tag when tag = i_File -> ILScopeRef.Module (seekReadFile ctxt idx) + | tag when tag = i_AssemblyRef -> ILScopeRef.Assembly (seekReadAssemblyRef ctxt idx) + | tag when tag = i_ExportedType -> failwith "seekReadImplAsScopeRef ctxt" + | _ -> failwith "seekReadImplAsScopeRef ctxt" + +and seekReadTypeRefScope ctxt (TaggedIndex(tag,idx) ) = + match tag with + | tag when tag = rs_Module -> ILScopeRef.Local,[] + | tag when tag = rs_ModuleRef -> ILScopeRef.Module (seekReadModuleRef ctxt idx),[] + | tag when tag = rs_AssemblyRef -> ILScopeRef.Assembly (seekReadAssemblyRef ctxt idx),[] + | tag when tag = rs_TypeRef -> + let tref = seekReadTypeRef ctxt idx + tref.Scope,(tref.Enclosing@[tref.Name]) + | _ -> failwith "seekReadTypeRefScope ctxt" + +and seekReadOptionalTypeDefOrRef ctxt numtypars boxity idx = + if idx = TaggedIndex(tdor_TypeDef, 0) then None + else Some (seekReadTypeDefOrRef ctxt numtypars boxity ILList.empty idx) + +and seekReadField ctxt (numtypars, hasLayout) (idx:int) = + let (flags,nameIdx,typeIdx) = seekReadFieldRow ctxt idx + let nm = readStringHeap ctxt nameIdx + let isStatic = (flags &&& 0x0010) <> 0 + let fd = + { Name = nm; + Type= readBlobHeapAsFieldSig ctxt numtypars typeIdx; + Access = memberAccessOfFlags flags; + IsStatic = isStatic; + IsInitOnly = (flags &&& 0x0020) <> 0; + IsLiteral = (flags &&& 0x0040) <> 0; + NotSerialized = (flags &&& 0x0080) <> 0; + IsSpecialName = (flags &&& 0x0200) <> 0 || (flags &&& 0x0400) <> 0; (* REVIEW: RTSpecialName *) + LiteralValue = if (flags &&& 0x8000) = 0 then None else Some (seekReadConstant ctxt (TaggedIndex(hc_FieldDef,idx))); + Marshal = + if (flags &&& 0x1000) = 0 then None else + Some (seekReadIndexedRow (ctxt.getNumRows TableNames.FieldMarshal,seekReadFieldMarshalRow ctxt, + fst,hfmCompare (TaggedIndex(hfm_FieldDef,idx)), + isSorted ctxt TableNames.FieldMarshal, + (snd >> readBlobHeapAsNativeType ctxt))); + Data = + if (flags &&& 0x0100) = 0 then None + else + let rva = seekReadIndexedRow (ctxt.getNumRows TableNames.FieldRVA,seekReadFieldRVARow ctxt, + snd,simpleIndexCompare idx,isSorted ctxt TableNames.FieldRVA,fst) + Some (rvaToData ctxt "field" rva) + Offset = + if hasLayout && not isStatic then + Some (seekReadIndexedRow (ctxt.getNumRows TableNames.FieldLayout,seekReadFieldLayoutRow ctxt, + snd,simpleIndexCompare idx,isSorted ctxt TableNames.FieldLayout,fst)) else None; + CustomAttrs=seekReadCustomAttrs ctxt (TaggedIndex(hca_FieldDef,idx)); } + fd + +and seekReadFields ctxt (numtypars, hasLayout) fidx1 fidx2 = + mkILFieldsLazy + (lazy + [ for i = fidx1 to fidx2 - 1 do + yield seekReadField ctxt (numtypars, hasLayout) i ]) + +and seekReadMethods ctxt numtypars midx1 midx2 = + mkILMethodsLazy + (lazy + [ for i = midx1 to midx2 - 1 do + yield seekReadMethod ctxt numtypars i ]) + +and sigptrGetTypeDefOrRefOrSpecIdx bytes sigptr = + let n, sigptr = sigptrGetZInt32 bytes sigptr + if (n &&& 0x01) = 0x0 then (* Type Def *) + TaggedIndex(tdor_TypeDef, (n >>>& 2)), sigptr + else (* Type Ref *) + TaggedIndex(tdor_TypeRef, (n >>>& 2)), sigptr + +and sigptrGetTy ctxt numtypars bytes sigptr = + let b0,sigptr = sigptrGetByte bytes sigptr + if b0 = et_OBJECT then ctxt.ilg.typ_Object , sigptr + elif b0 = et_STRING then ctxt.ilg.typ_String, sigptr + elif b0 = et_I1 then ctxt.ilg.typ_int8, sigptr + elif b0 = et_I2 then ctxt.ilg.typ_int16, sigptr + elif b0 = et_I4 then ctxt.ilg.typ_int32, sigptr + elif b0 = et_I8 then ctxt.ilg.typ_int64, sigptr + elif b0 = et_I then ctxt.ilg.typ_IntPtr, sigptr + elif b0 = et_U1 then ctxt.ilg.typ_uint8, sigptr + elif b0 = et_U2 then ctxt.ilg.typ_uint16, sigptr + elif b0 = et_U4 then ctxt.ilg.typ_uint32, sigptr + elif b0 = et_U8 then ctxt.ilg.typ_uint64, sigptr + elif b0 = et_U then ctxt.ilg.typ_UIntPtr, sigptr + elif b0 = et_R4 then ctxt.ilg.typ_float32, sigptr + elif b0 = et_R8 then ctxt.ilg.typ_float64, sigptr + elif b0 = et_CHAR then ctxt.ilg.typ_char, sigptr + elif b0 = et_BOOLEAN then ctxt.ilg.typ_bool, sigptr + elif b0 = et_WITH then + let b0,sigptr = sigptrGetByte bytes sigptr + let tdorIdx, sigptr = sigptrGetTypeDefOrRefOrSpecIdx bytes sigptr + let n, sigptr = sigptrGetZInt32 bytes sigptr + let argtys,sigptr = sigptrFold (sigptrGetTy ctxt numtypars) n bytes sigptr + seekReadTypeDefOrRef ctxt numtypars (if b0 = et_CLASS then AsObject else AsValue) (mkILTypes argtys) tdorIdx, + sigptr + + elif b0 = et_CLASS then + let tdorIdx, sigptr = sigptrGetTypeDefOrRefOrSpecIdx bytes sigptr + seekReadTypeDefOrRef ctxt numtypars AsObject ILList.empty tdorIdx, sigptr + elif b0 = et_VALUETYPE then + let tdorIdx, sigptr = sigptrGetTypeDefOrRefOrSpecIdx bytes sigptr + seekReadTypeDefOrRef ctxt numtypars AsValue ILList.empty tdorIdx, sigptr + elif b0 = et_VAR then + let n, sigptr = sigptrGetZInt32 bytes sigptr + ILType.TypeVar (uint16 n),sigptr + elif b0 = et_MVAR then + let n, sigptr = sigptrGetZInt32 bytes sigptr + ILType.TypeVar (uint16 (n + numtypars)), sigptr + elif b0 = et_BYREF then + let typ, sigptr = sigptrGetTy ctxt numtypars bytes sigptr + ILType.Byref typ, sigptr + elif b0 = et_PTR then + let typ, sigptr = sigptrGetTy ctxt numtypars bytes sigptr + ILType.Ptr typ, sigptr + elif b0 = et_SZARRAY then + let typ, sigptr = sigptrGetTy ctxt numtypars bytes sigptr + mkILArr1DTy typ, sigptr + elif b0 = et_ARRAY then + let typ, sigptr = sigptrGetTy ctxt numtypars bytes sigptr + let rank, sigptr = sigptrGetZInt32 bytes sigptr + let numSized, sigptr = sigptrGetZInt32 bytes sigptr + let sizes, sigptr = sigptrFold sigptrGetZInt32 numSized bytes sigptr + let numLoBounded, sigptr = sigptrGetZInt32 bytes sigptr + let lobounds, sigptr = sigptrFold sigptrGetZInt32 numLoBounded bytes sigptr + let shape = + let dim i = + (if i < numLoBounded then Some (List.nth lobounds i) else None), + (if i < numSized then Some (List.nth sizes i) else None) + ILArrayShape (Array.toList (Array.init rank dim)) + mkILArrTy (typ, shape), sigptr + + elif b0 = et_VOID then ILType.Void, sigptr + elif b0 = et_TYPEDBYREF then ctxt.ilg.typ_TypedReference, sigptr + elif b0 = et_CMOD_REQD || b0 = et_CMOD_OPT then + let tdorIdx, sigptr = sigptrGetTypeDefOrRefOrSpecIdx bytes sigptr + let typ, sigptr = sigptrGetTy ctxt numtypars bytes sigptr + ILType.Modified((b0 = et_CMOD_REQD), seekReadTypeDefOrRefAsTypeRef ctxt tdorIdx, typ), sigptr + elif b0 = et_FNPTR then + let ccByte,sigptr = sigptrGetByte bytes sigptr + let generic,cc = byteAsCallConv ccByte + if generic then failwith "fptr sig may not be generic"; + let numparams,sigptr = sigptrGetZInt32 bytes sigptr + let retty,sigptr = sigptrGetTy ctxt numtypars bytes sigptr + let argtys,sigptr = sigptrFold (sigptrGetTy ctxt numtypars) ( numparams) bytes sigptr + ILType.FunctionPointer + { CallingConv=cc; + ArgTypes=mkILTypes argtys; + ReturnType=retty } + ,sigptr + elif b0 = et_SENTINEL then failwith "varargs NYI" + else ILType.Void , sigptr + +and sigptrGetVarArgTys ctxt n numtypars bytes sigptr = + sigptrFold (sigptrGetTy ctxt numtypars) n bytes sigptr + +and sigptrGetArgTys ctxt n numtypars bytes sigptr acc = + if n <= 0 then (mkILTypes (List.rev acc),None),sigptr + else + let b0,sigptr2 = sigptrGetByte bytes sigptr + if b0 = et_SENTINEL then + let varargs,sigptr = sigptrGetVarArgTys ctxt n numtypars bytes sigptr2 + (mkILTypes (List.rev acc),Some(mkILTypes varargs)),sigptr + else + let x,sigptr = sigptrGetTy ctxt numtypars bytes sigptr + sigptrGetArgTys ctxt (n-1) numtypars bytes sigptr (x::acc) + +and sigptrGetLocal ctxt numtypars bytes sigptr = + let pinned,sigptr = + let b0, sigptr' = sigptrGetByte bytes sigptr + if b0 = et_PINNED then + true, sigptr' + else + false, sigptr + let typ, sigptr = sigptrGetTy ctxt numtypars bytes sigptr + { IsPinned = pinned; + Type = typ }, sigptr + +and readBlobHeapAsMethodSig ctxt numtypars blobIdx = + ctxt.readBlobHeapAsMethodSig (BlobAsMethodSigIdx (numtypars,blobIdx)) + +and readBlobHeapAsMethodSigUncached ctxtH (BlobAsMethodSigIdx (numtypars,blobIdx)) = + let ctxt = getHole ctxtH + let bytes = readBlobHeap ctxt blobIdx + let sigptr = 0 + let ccByte,sigptr = sigptrGetByte bytes sigptr + let generic,cc = byteAsCallConv ccByte + let genarity,sigptr = if generic then sigptrGetZInt32 bytes sigptr else 0x0,sigptr + let numparams,sigptr = sigptrGetZInt32 bytes sigptr + let retty,sigptr = sigptrGetTy ctxt numtypars bytes sigptr + let (argtys,varargs),_sigptr = sigptrGetArgTys ctxt ( numparams) numtypars bytes sigptr [] + generic,genarity,cc,retty,argtys,varargs + +and readBlobHeapAsType ctxt numtypars blobIdx = + let bytes = readBlobHeap ctxt blobIdx + let ty,_sigptr = sigptrGetTy ctxt numtypars bytes 0 + ty + +and readBlobHeapAsFieldSig ctxt numtypars blobIdx = + ctxt.readBlobHeapAsFieldSig (BlobAsFieldSigIdx (numtypars,blobIdx)) + +and readBlobHeapAsFieldSigUncached ctxtH (BlobAsFieldSigIdx (numtypars,blobIdx)) = + let ctxt = getHole ctxtH + let bytes = readBlobHeap ctxt blobIdx + let sigptr = 0 + let ccByte,sigptr = sigptrGetByte bytes sigptr + if ccByte <> e_IMAGE_CEE_CS_CALLCONV_FIELD then dprintn "warning: field sig was not CC_FIELD"; + let retty,_sigptr = sigptrGetTy ctxt numtypars bytes sigptr + retty + + +and readBlobHeapAsPropertySig ctxt numtypars blobIdx = + ctxt.readBlobHeapAsPropertySig (BlobAsPropSigIdx (numtypars,blobIdx)) +and readBlobHeapAsPropertySigUncached ctxtH (BlobAsPropSigIdx (numtypars,blobIdx)) = + let ctxt = getHole ctxtH + let bytes = readBlobHeap ctxt blobIdx + let sigptr = 0 + let ccByte,sigptr = sigptrGetByte bytes sigptr + let hasthis = byteAsHasThis ccByte + let ccMaxked = (ccByte &&& 0x0Fuy) + if ccMaxked <> e_IMAGE_CEE_CS_CALLCONV_PROPERTY then dprintn ("warning: property sig was "+string ccMaxked+" instead of CC_PROPERTY"); + let numparams,sigptr = sigptrGetZInt32 bytes sigptr + let retty,sigptr = sigptrGetTy ctxt numtypars bytes sigptr + let argtys,_sigptr = sigptrFold (sigptrGetTy ctxt numtypars) ( numparams) bytes sigptr + hasthis,retty,mkILTypes argtys + +and readBlobHeapAsLocalsSig ctxt numtypars blobIdx = + ctxt.readBlobHeapAsLocalsSig (BlobAsLocalSigIdx (numtypars,blobIdx)) + +and readBlobHeapAsLocalsSigUncached ctxtH (BlobAsLocalSigIdx (numtypars,blobIdx)) = + let ctxt = getHole ctxtH + let bytes = readBlobHeap ctxt blobIdx + let sigptr = 0 + let ccByte,sigptr = sigptrGetByte bytes sigptr + if ccByte <> e_IMAGE_CEE_CS_CALLCONV_LOCAL_SIG then dprintn "warning: local sig was not CC_LOCAL"; + let numlocals,sigptr = sigptrGetZInt32 bytes sigptr + let localtys,_sigptr = sigptrFold (sigptrGetLocal ctxt numtypars) ( numlocals) bytes sigptr + localtys + +and byteAsHasThis b = + let hasthis_masked = b &&& 0x60uy + if hasthis_masked = e_IMAGE_CEE_CS_CALLCONV_INSTANCE then ILThisConvention.Instance + elif hasthis_masked = e_IMAGE_CEE_CS_CALLCONV_INSTANCE_EXPLICIT then ILThisConvention.InstanceExplicit + else ILThisConvention.Static + +and byteAsCallConv b = + let cc = + let ccMaxked = b &&& 0x0Fuy + if ccMaxked = e_IMAGE_CEE_CS_CALLCONV_FASTCALL then ILArgConvention.FastCall + elif ccMaxked = e_IMAGE_CEE_CS_CALLCONV_STDCALL then ILArgConvention.StdCall + elif ccMaxked = e_IMAGE_CEE_CS_CALLCONV_THISCALL then ILArgConvention.ThisCall + elif ccMaxked = e_IMAGE_CEE_CS_CALLCONV_CDECL then ILArgConvention.CDecl + elif ccMaxked = e_IMAGE_CEE_CS_CALLCONV_VARARG then ILArgConvention.VarArg + else ILArgConvention.Default + let generic = (b &&& e_IMAGE_CEE_CS_CALLCONV_GENERIC) <> 0x0uy + generic, Callconv (byteAsHasThis b,cc) + +and seekReadMemberRefAsMethodData ctxt numtypars idx : VarArgMethodData = + ctxt.seekReadMemberRefAsMethodData (MemberRefAsMspecIdx (numtypars,idx)) +and seekReadMemberRefAsMethodDataUncached ctxtH (MemberRefAsMspecIdx (numtypars,idx)) = + let ctxt = getHole ctxtH + let (mrpIdx,nameIdx,typeIdx) = seekReadMemberRefRow ctxt idx + let nm = readStringHeap ctxt nameIdx + let enclTyp = seekReadMethodRefParent ctxt numtypars mrpIdx + let _generic,genarity,cc,retty,argtys,varargs = readBlobHeapAsMethodSig ctxt enclTyp.GenericArgs.Length typeIdx + let minst = ILList.init genarity (fun n -> mkILTyvarTy (uint16 (numtypars+n))) + (VarArgMethodData(enclTyp, cc, nm, argtys, varargs,retty,minst)) + +and seekReadMemberRefAsMethDataNoVarArgs ctxt numtypars idx : MethodData = + let (VarArgMethodData(enclTyp, cc, nm, argtys,varargs, retty,minst)) = seekReadMemberRefAsMethodData ctxt numtypars idx + if isSome varargs then dprintf "ignoring sentinel and varargs in ILMethodDef token signature"; + (MethodData(enclTyp, cc, nm, argtys, retty,minst)) + +and seekReadMethodSpecAsMethodData ctxt numtypars idx = + ctxt.seekReadMethodSpecAsMethodData (MethodSpecAsMspecIdx (numtypars,idx)) +and seekReadMethodSpecAsMethodDataUncached ctxtH (MethodSpecAsMspecIdx (numtypars,idx)) = + let ctxt = getHole ctxtH + let (mdorIdx,instIdx) = seekReadMethodSpecRow ctxt idx + let (VarArgMethodData(enclTyp, cc, nm, argtys, varargs,retty,_)) = seekReadMethodDefOrRef ctxt numtypars mdorIdx + let minst = + let bytes = readBlobHeap ctxt instIdx + let sigptr = 0 + let ccByte,sigptr = sigptrGetByte bytes sigptr + if ccByte <> e_IMAGE_CEE_CS_CALLCONV_GENERICINST then dprintn ("warning: method inst ILCallingConv was "+string ccByte+" instead of CC_GENERICINST"); + let numgpars,sigptr = sigptrGetZInt32 bytes sigptr + let argtys,_sigptr = sigptrFold (sigptrGetTy ctxt numtypars) numgpars bytes sigptr + mkILTypes argtys + VarArgMethodData(enclTyp, cc, nm, argtys, varargs,retty, minst) + +and seekReadMemberRefAsFieldSpec ctxt numtypars idx = + ctxt.seekReadMemberRefAsFieldSpec (MemberRefAsFspecIdx (numtypars,idx)) +and seekReadMemberRefAsFieldSpecUncached ctxtH (MemberRefAsFspecIdx (numtypars,idx)) = + let ctxt = getHole ctxtH + let (mrpIdx,nameIdx,typeIdx) = seekReadMemberRefRow ctxt idx + let nm = readStringHeap ctxt nameIdx + let enclTyp = seekReadMethodRefParent ctxt numtypars mrpIdx + let retty = readBlobHeapAsFieldSig ctxt numtypars typeIdx + mkILFieldSpecInTy(enclTyp, nm, retty) + +// One extremely annoying aspect of the MD format is that given a +// ILMethodDef token it is non-trivial to find which ILTypeDef it belongs +// to. So we do a binary chop through the ILTypeDef table +// looking for which ILTypeDef has the ILMethodDef within its range. +// Although the ILTypeDef table is not "sorted", it is effectively sorted by +// method-range and field-range start/finish indexes +and seekReadMethodDefAsMethodData ctxt idx = + ctxt.seekReadMethodDefAsMethodData idx +and seekReadMethodDefAsMethodDataUncached ctxtH idx = + let ctxt = getHole ctxtH + let (_code_rva, _implflags, _flags, nameIdx, typeIdx, _paramIdx) = seekReadMethodRow ctxt idx + let nm = readStringHeap ctxt nameIdx + // Look for the method def parent. + let tidx = + seekReadIndexedRow (ctxt.getNumRows TableNames.TypeDef, + (fun i -> i, seekReadTypeDefRowWithExtents ctxt i), + (fun r -> r), + (fun (_,((_, _, _, _, _, methodsIdx), + (_, endMethodsIdx))) -> + if endMethodsIdx <= idx then 1 + elif methodsIdx <= idx && idx < endMethodsIdx then 0 + else -1), + true,fst) + // Read the method def signature. + let _generic,_genarity,cc,retty,argtys,varargs = readBlobHeapAsMethodSig ctxt 0 typeIdx + if varargs <> None then dprintf "ignoring sentinel and varargs in ILMethodDef token signature"; + // Create a formal instantiation if needed + let finst = mkILFormalGenericArgsRaw (seekReadGenericParams ctxt 0 (tomd_TypeDef,tidx)) + let minst = mkILFormalGenericArgsRaw (seekReadGenericParams ctxt finst.Length (tomd_MethodDef,idx)) + // Read the method def parent. + let enclTyp = seekReadTypeDefAsType ctxt AsObject (* not ok: see note *) finst tidx + // Return the constituent parts: put it together at the place where this is called. + MethodData(enclTyp, cc, nm, argtys, retty, minst) + + + (* Similarly for fields. *) +and seekReadFieldDefAsFieldSpec ctxt idx = + ctxt.seekReadFieldDefAsFieldSpec idx +and seekReadFieldDefAsFieldSpecUncached ctxtH idx = + let ctxt = getHole ctxtH + let (_flags, nameIdx, typeIdx) = seekReadFieldRow ctxt idx + let nm = readStringHeap ctxt nameIdx + (* Look for the field def parent. *) + let tidx = + seekReadIndexedRow (ctxt.getNumRows TableNames.TypeDef, + (fun i -> i, seekReadTypeDefRowWithExtents ctxt i), + (fun r -> r), + (fun (_,((_, _, _, _, fieldsIdx, _),(endFieldsIdx, _))) -> + if endFieldsIdx <= idx then 1 + elif fieldsIdx <= idx && idx < endFieldsIdx then 0 + else -1), + true,fst) + // Read the field signature. + let retty = readBlobHeapAsFieldSig ctxt 0 typeIdx + // Create a formal instantiation if needed + let finst = mkILFormalGenericArgsRaw (seekReadGenericParams ctxt 0 (tomd_TypeDef,tidx)) + // Read the field def parent. + let enclTyp = seekReadTypeDefAsType ctxt AsObject (* not ok: see note *) finst tidx + // Put it together. + mkILFieldSpecInTy(enclTyp, nm, retty) + +and seekReadMethod ctxt numtypars (idx:int) = + let (codeRVA, implflags, flags, nameIdx, typeIdx, paramIdx) = seekReadMethodRow ctxt idx + let nm = readStringHeap ctxt nameIdx + let isStatic = (flags &&& 0x0010) <> 0x0 + let final = (flags &&& 0x0020) <> 0x0 + let virt = (flags &&& 0x0040) <> 0x0 + let strict = (flags &&& 0x0200) <> 0x0 + let hidebysig = (flags &&& 0x0080) <> 0x0 + let newslot = (flags &&& 0x0100) <> 0x0 + let abstr = (flags &&& 0x0400) <> 0x0 + let specialname = (flags &&& 0x0800) <> 0x0 + let pinvoke = (flags &&& 0x2000) <> 0x0 + let export = (flags &&& 0x0008) <> 0x0 + let _rtspecialname = (flags &&& 0x1000) <> 0x0 + let reqsecobj = (flags &&& 0x8000) <> 0x0 + let hassec = (flags &&& 0x4000) <> 0x0 + let codetype = implflags &&& 0x0003 + let unmanaged = (implflags &&& 0x0004) <> 0x0 + let forwardref = (implflags &&& 0x0010) <> 0x0 + let preservesig = (implflags &&& 0x0080) <> 0x0 + let internalcall = (implflags &&& 0x1000) <> 0x0 + let synchronized = (implflags &&& 0x0020) <> 0x0 + let noinline = (implflags &&& 0x0008) <> 0x0 + let mustrun = (implflags &&& 0x0040) <> 0x0 + let cctor = (nm = ".cctor") + let ctor = (nm = ".ctor") + let _generic,_genarity,cc,retty,argtys,varargs = readBlobHeapAsMethodSig ctxt numtypars typeIdx + if varargs <> None then dprintf "ignoring sentinel and varargs in ILMethodDef signature"; + + let endParamIdx = + if idx >= ctxt.getNumRows TableNames.Method then + ctxt.getNumRows TableNames.Param + 1 + else + let (_,_,_,_,_, paramIdx) = seekReadMethodRow ctxt (idx + 1) + paramIdx + + let ret,ilParams = seekReadParams ctxt (retty,argtys) paramIdx endParamIdx + + { Name=nm; + mdKind = + (if cctor then MethodKind.Cctor + elif ctor then MethodKind.Ctor + elif isStatic then MethodKind.Static + elif virt then + MethodKind.Virtual + { IsFinal=final; + IsNewSlot=newslot; + IsCheckAccessOnOverride=strict; + IsAbstract=abstr; } + else MethodKind.NonVirtual); + Access = memberAccessOfFlags flags; + SecurityDecls=seekReadSecurityDecls ctxt (TaggedIndex(hds_MethodDef,idx)); + HasSecurity=hassec; + IsEntryPoint= (fst ctxt.entryPointToken = TableNames.Method && snd ctxt.entryPointToken = idx); + IsReqSecObj=reqsecobj; + IsHideBySig=hidebysig; + IsSpecialName=specialname; + IsUnmanagedExport=export; + IsSynchronized=synchronized; + IsNoInline=noinline; + IsMustRun=mustrun; + IsPreserveSig=preservesig; + IsManaged = not unmanaged; + IsInternalCall = internalcall; + IsForwardRef = forwardref; + mdCodeKind = (if (codetype = 0x00) then MethodCodeKind.IL elif (codetype = 0x01) then MethodCodeKind.Native elif (codetype = 0x03) then MethodCodeKind.Runtime else (dprintn "unsupported code type"; MethodCodeKind.Native)); + GenericParams=seekReadGenericParams ctxt numtypars (tomd_MethodDef,idx); + CustomAttrs=seekReadCustomAttrs ctxt (TaggedIndex(hca_MethodDef,idx)); + Parameters= ilParams; + CallingConv=cc; + Return=ret; + mdBody= + if (codetype = 0x01) && pinvoke then + mkMethBodyLazyAux (notlazy MethodBody.Native) + elif pinvoke then + seekReadImplMap ctxt nm idx + elif internalcall || abstr || unmanaged || (codetype <> 0x00) then + if codeRVA <> 0x0 then dprintn "non-IL or abstract method with non-zero RVA"; + mkMethBodyLazyAux (notlazy MethodBody.Abstract) + else + seekReadMethodRVA ctxt (idx,nm,internalcall,noinline,numtypars) codeRVA; + } + + +and seekReadParams ctxt (retty,argtys) pidx1 pidx2 = + let retRes : ILReturn ref = ref { Marshal=None; Type=retty; CustomAttrs=emptyILCustomAttrs } + let paramsRes = + argtys + |> ILList.toArray + |> Array.map (fun ty -> + { Name=None; + Default=None; + Marshal=None; + IsIn=false; + IsOut=false; + IsOptional=false; + Type=ty; + CustomAttrs=emptyILCustomAttrs }) + for i = pidx1 to pidx2 - 1 do + seekReadParamExtras ctxt (retRes,paramsRes) i + !retRes, ILList.ofArray paramsRes + +and seekReadParamExtras ctxt (retRes,paramsRes) (idx:int) = + let (flags,seq,nameIdx) = seekReadParamRow ctxt idx + let inOutMasked = (flags &&& 0x00FF) + let hasMarshal = (flags &&& 0x2000) <> 0x0 + let hasDefault = (flags &&& 0x1000) <> 0x0 + let fmReader idx = seekReadIndexedRow (ctxt.getNumRows TableNames.FieldMarshal,seekReadFieldMarshalRow ctxt,fst,hfmCompare idx,isSorted ctxt TableNames.FieldMarshal,(snd >> readBlobHeapAsNativeType ctxt)) + let cas = seekReadCustomAttrs ctxt (TaggedIndex(hca_ParamDef,idx)) + if seq = 0 then + retRes := { !retRes with + Marshal=(if hasMarshal then Some (fmReader (TaggedIndex(hfm_ParamDef,idx))) else None); + CustomAttrs = cas } + elif seq > Array.length paramsRes then dprintn "bad seq num. for param" + else + paramsRes.[seq - 1] <- + { paramsRes.[seq - 1] with + Marshal=(if hasMarshal then Some (fmReader (TaggedIndex(hfm_ParamDef,idx))) else None); + Default = (if hasDefault then Some (seekReadConstant ctxt (TaggedIndex(hc_ParamDef,idx))) else None); + Name = readStringHeapOption ctxt nameIdx; + IsIn = ((inOutMasked &&& 0x0001) <> 0x0); + IsOut = ((inOutMasked &&& 0x0002) <> 0x0); + IsOptional = ((inOutMasked &&& 0x0010) <> 0x0); + CustomAttrs =cas } + +and seekReadMethodImpls ctxt numtypars tidx = + mkILMethodImplsLazy + (lazy + let mimpls = seekReadIndexedRows (ctxt.getNumRows TableNames.MethodImpl,seekReadMethodImplRow ctxt,(fun (a,_,_) -> a),simpleIndexCompare tidx,isSorted ctxt TableNames.MethodImpl,(fun (_,b,c) -> b,c)) + mimpls |> List.map (fun (b,c) -> + { OverrideBy= + let (MethodData(enclTyp, cc, nm, argtys, retty,minst)) = seekReadMethodDefOrRefNoVarargs ctxt numtypars b + mkILMethSpecInTyRaw (enclTyp, cc, nm, argtys, retty,minst); + Overrides= + let (MethodData(enclTyp, cc, nm, argtys, retty,minst)) = seekReadMethodDefOrRefNoVarargs ctxt numtypars c + let mspec = mkILMethSpecInTyRaw (enclTyp, cc, nm, argtys, retty,minst) + OverridesSpec(mspec.MethodRef, mspec.EnclosingType) })) + +and seekReadMultipleMethodSemantics ctxt (flags,id) = + seekReadIndexedRows + (ctxt.getNumRows TableNames.MethodSemantics , + seekReadMethodSemanticsRow ctxt, + (fun (_flags,_,c) -> c), + hsCompare id, + isSorted ctxt TableNames.MethodSemantics, + (fun (a,b,_c) -> + let (MethodData(enclTyp, cc, nm, argtys, retty, minst)) = seekReadMethodDefAsMethodData ctxt b + a, (mkILMethSpecInTyRaw (enclTyp, cc, nm, argtys, retty, minst)).MethodRef)) + |> List.filter (fun (flags2,_) -> flags = flags2) + |> List.map snd + + +and seekReadoptional_MethodSemantics ctxt id = + match seekReadMultipleMethodSemantics ctxt id with + | [] -> None + | [h] -> Some h + | h::_ -> dprintn "multiple method semantics found"; Some h + +and seekReadMethodSemantics ctxt id = + match seekReadoptional_MethodSemantics ctxt id with + | None -> failwith "seekReadMethodSemantics ctxt: no method found" + | Some x -> x + +and seekReadEvent ctxt numtypars idx = + let (flags,nameIdx,typIdx) = seekReadEventRow ctxt idx + { Name = readStringHeap ctxt nameIdx; + Type = seekReadOptionalTypeDefOrRef ctxt numtypars AsObject typIdx; + IsSpecialName = (flags &&& 0x0200) <> 0x0; + IsRTSpecialName = (flags &&& 0x0400) <> 0x0; + AddMethod= seekReadMethodSemantics ctxt (0x0008,TaggedIndex(hs_Event, idx)); + RemoveMethod=seekReadMethodSemantics ctxt (0x0010,TaggedIndex(hs_Event,idx)); + FireMethod=seekReadoptional_MethodSemantics ctxt (0x0020,TaggedIndex(hs_Event,idx)); + OtherMethods = seekReadMultipleMethodSemantics ctxt (0x0004, TaggedIndex(hs_Event, idx)); + CustomAttrs=seekReadCustomAttrs ctxt (TaggedIndex(hca_Event,idx)) } + + (* REVIEW: can substantially reduce numbers of EventMap and PropertyMap reads by first checking if the whole table is sorted according to ILTypeDef tokens and then doing a binary chop *) +and seekReadEvents ctxt numtypars tidx = + mkILEventsLazy + (lazy + match seekReadOptionalIndexedRow (ctxt.getNumRows TableNames.EventMap,(fun i -> i, seekReadEventMapRow ctxt i),(fun (_,row) -> fst row),compare tidx,false,(fun (i,row) -> (i,snd row))) with + | None -> [] + | Some (rowNum,beginEventIdx) -> + let endEventIdx = + if rowNum >= ctxt.getNumRows TableNames.EventMap then + ctxt.getNumRows TableNames.Event + 1 + else + let (_, endEventIdx) = seekReadEventMapRow ctxt (rowNum + 1) + endEventIdx + + [ for i in beginEventIdx .. endEventIdx - 1 do + yield seekReadEvent ctxt numtypars i ]) + +and seekReadProperty ctxt numtypars idx = + let (flags,nameIdx,typIdx) = seekReadPropertyRow ctxt idx + let cc,retty,argtys = readBlobHeapAsPropertySig ctxt numtypars typIdx + let setter= seekReadoptional_MethodSemantics ctxt (0x0001,TaggedIndex(hs_Property,idx)) + let getter = seekReadoptional_MethodSemantics ctxt (0x0002,TaggedIndex(hs_Property,idx)) +(* NOTE: the "ThisConv" value on the property is not reliable: better to look on the getter/setter *) +(* NOTE: e.g. tlbimp on Office msword.olb seems to set this incorrectly *) + let cc2 = + match getter with + | Some mref -> mref.CallingConv.ThisConv + | None -> + match setter with + | Some mref -> mref.CallingConv .ThisConv + | None -> cc + { Name=readStringHeap ctxt nameIdx; + CallingConv = cc2; + IsRTSpecialName=(flags &&& 0x0400) <> 0x0; + IsSpecialName= (flags &&& 0x0200) <> 0x0; + SetMethod=setter; + GetMethod=getter; + Type=retty; + Init= if (flags &&& 0x1000) = 0 then None else Some (seekReadConstant ctxt (TaggedIndex(hc_Property,idx))); + Args=argtys; + CustomAttrs=seekReadCustomAttrs ctxt (TaggedIndex(hca_Property,idx)) } + +and seekReadProperties ctxt numtypars tidx = + mkILPropertiesLazy + (lazy + match seekReadOptionalIndexedRow (ctxt.getNumRows TableNames.PropertyMap,(fun i -> i, seekReadPropertyMapRow ctxt i),(fun (_,row) -> fst row),compare tidx,false,(fun (i,row) -> (i,snd row))) with + | None -> [] + | Some (rowNum,beginPropIdx) -> + let endPropIdx = + if rowNum >= ctxt.getNumRows TableNames.PropertyMap then + ctxt.getNumRows TableNames.Property + 1 + else + let (_, endPropIdx) = seekReadPropertyMapRow ctxt (rowNum + 1) + endPropIdx + [ for i in beginPropIdx .. endPropIdx - 1 do + yield seekReadProperty ctxt numtypars i ]) + + +and seekReadCustomAttrs ctxt idx = + mkILComputedCustomAttrs + (fun () -> + seekReadIndexedRows (ctxt.getNumRows TableNames.CustomAttribute, + seekReadCustomAttributeRow ctxt,(fun (a,_,_) -> a), + hcaCompare idx, + isSorted ctxt TableNames.CustomAttribute, + (fun (_,b,c) -> seekReadCustomAttr ctxt (b,c)))) + +and seekReadCustomAttr ctxt (TaggedIndex(cat,idx),b) = + ctxt.seekReadCustomAttr (CustomAttrIdx (cat,idx,b)) + +and seekReadCustomAttrUncached ctxtH (CustomAttrIdx (cat,idx,valIdx)) = + let ctxt = getHole ctxtH + { Method=seekReadCustomAttrType ctxt (TaggedIndex(cat,idx)); +#if SILVERLIGHT + Arguments = [], [] +#endif + Data= + match readBlobHeapOption ctxt valIdx with + | Some bytes -> bytes + | None -> Bytes.ofInt32Array [| |] } + +and seekReadSecurityDecls ctxt idx = + mkILLazySecurityDecls + (lazy + seekReadIndexedRows (ctxt.getNumRows TableNames.Permission, + seekReadPermissionRow ctxt, + (fun (_,par,_) -> par), + hdsCompare idx, + isSorted ctxt TableNames.Permission, + (fun (act,_,ty) -> seekReadSecurityDecl ctxt (act,ty)))) + +and seekReadSecurityDecl ctxt (a,b) = + ctxt.seekReadSecurityDecl (SecurityDeclIdx (a,b)) + +and seekReadSecurityDeclUncached ctxtH (SecurityDeclIdx (act,ty)) = + let ctxt = getHole ctxtH + PermissionSet ((if List.memAssoc (int act) (Lazy.force ILSecurityActionRevMap) then List.assoc (int act) (Lazy.force ILSecurityActionRevMap) else failwith "unknown security action"), + readBlobHeap ctxt ty) + + +and seekReadConstant ctxt idx = + let kind,vidx = seekReadIndexedRow (ctxt.getNumRows TableNames.Constant, + seekReadConstantRow ctxt, + (fun (_,key,_) -> key), + hcCompare idx,isSorted ctxt TableNames.Constant,(fun (kind,_,v) -> kind,v)) + match kind with + | x when x = uint16 et_STRING -> + let blobHeap = readBlobHeap ctxt vidx + let s = System.Text.Encoding.Unicode.GetString(blobHeap, 0, blobHeap.Length) + ILFieldInit.String (s) + | x when x = uint16 et_BOOLEAN -> ILFieldInit.Bool (readBlobHeapAsBool ctxt vidx) + | x when x = uint16 et_CHAR -> ILFieldInit.Char (readBlobHeapAsUInt16 ctxt vidx) + | x when x = uint16 et_I1 -> ILFieldInit.Int8 (readBlobHeapAsSByte ctxt vidx) + | x when x = uint16 et_I2 -> ILFieldInit.Int16 (readBlobHeapAsInt16 ctxt vidx) + | x when x = uint16 et_I4 -> ILFieldInit.Int32 (readBlobHeapAsInt32 ctxt vidx) + | x when x = uint16 et_I8 -> ILFieldInit.Int64 (readBlobHeapAsInt64 ctxt vidx) + | x when x = uint16 et_U1 -> ILFieldInit.UInt8 (readBlobHeapAsByte ctxt vidx) + | x when x = uint16 et_U2 -> ILFieldInit.UInt16 (readBlobHeapAsUInt16 ctxt vidx) + | x when x = uint16 et_U4 -> ILFieldInit.UInt32 (readBlobHeapAsUInt32 ctxt vidx) + | x when x = uint16 et_U8 -> ILFieldInit.UInt64 (readBlobHeapAsUInt64 ctxt vidx) + | x when x = uint16 et_R4 -> ILFieldInit.Single (readBlobHeapAsSingle ctxt vidx) + | x when x = uint16 et_R8 -> ILFieldInit.Double (readBlobHeapAsDouble ctxt vidx) + | x when x = uint16 et_CLASS || x = uint16 et_OBJECT -> ILFieldInit.Null + | _ -> ILFieldInit.Null + +and seekReadImplMap ctxt nm midx = + mkMethBodyLazyAux + (lazy + let (flags,nameIdx, scopeIdx) = seekReadIndexedRow (ctxt.getNumRows TableNames.ImplMap, + seekReadImplMapRow ctxt, + (fun (_,m,_,_) -> m), + mfCompare (TaggedIndex(mf_MethodDef,midx)), + isSorted ctxt TableNames.ImplMap, + (fun (a,_,c,d) -> a,c,d)) + let cc = + let masked = flags &&& 0x0700 + if masked = 0x0000 then PInvokeCallingConvention.None + elif masked = 0x0200 then PInvokeCallingConvention.Cdecl + elif masked = 0x0300 then PInvokeCallingConvention.Stdcall + elif masked = 0x0400 then PInvokeCallingConvention.Thiscall + elif masked = 0x0500 then PInvokeCallingConvention.Fastcall + elif masked = 0x0100 then PInvokeCallingConvention.WinApi + else (dprintn "strange CallingConv"; PInvokeCallingConvention.None) + let enc = + let masked = flags &&& 0x0006 + if masked = 0x0000 then PInvokeCharEncoding.None + elif masked = 0x0002 then PInvokeCharEncoding.Ansi + elif masked = 0x0004 then PInvokeCharEncoding.Unicode + elif masked = 0x0006 then PInvokeCharEncoding.Auto + else (dprintn "strange CharEncoding"; PInvokeCharEncoding.None) + let bestfit = + let masked = flags &&& 0x0030 + if masked = 0x0000 then PInvokeCharBestFit.UseAssembly + elif masked = 0x0010 then PInvokeCharBestFit.Enabled + elif masked = 0x0020 then PInvokeCharBestFit.Disabled + else (dprintn "strange CharBestFit"; PInvokeCharBestFit.UseAssembly) + let unmap = + let masked = flags &&& 0x3000 + if masked = 0x0000 then PInvokeThrowOnUnmappableChar.UseAssembly + elif masked = 0x1000 then PInvokeThrowOnUnmappableChar.Enabled + elif masked = 0x2000 then PInvokeThrowOnUnmappableChar.Disabled + else (dprintn "strange ThrowOnUnmappableChar"; PInvokeThrowOnUnmappableChar.UseAssembly) + + MethodBody.PInvoke { CallingConv = cc; + CharEncoding = enc; + CharBestFit=bestfit; + ThrowOnUnmappableChar=unmap; + NoMangle = (flags &&& 0x0001) <> 0x0; + LastError = (flags &&& 0x0040) <> 0x0; + Name = + (match readStringHeapOption ctxt nameIdx with + | None -> nm + | Some nm2 -> nm2); + Where = seekReadModuleRef ctxt scopeIdx }) + +and seekReadTopCode ctxt numtypars (sz:int) start seqpoints = + let labelsOfRawOffsets = new Dictionary<_,_>(sz/2) + let ilOffsetsOfLabels = new Dictionary<_,_>(sz/2) + let tryRawToLabel rawOffset = + if labelsOfRawOffsets.ContainsKey rawOffset then + Some(labelsOfRawOffsets.[rawOffset]) + else + None + + let rawToLabel rawOffset = + match tryRawToLabel rawOffset with + | Some l -> l + | None -> + let lab = generateCodeLabel() + labelsOfRawOffsets.[rawOffset] <- lab; + lab + + let markAsInstructionStart rawOffset ilOffset = + let lab = rawToLabel rawOffset + ilOffsetsOfLabels.[lab] <- ilOffset + + let ibuf = new ResizeArray<_>(sz/2) + let curr = ref 0 + let prefixes = { al=Aligned; tl= Normalcall; vol= Nonvolatile;ro=NormalAddress;constrained=None } + let lastb = ref 0x0 + let lastb2 = ref 0x0 + let b = ref 0x0 + let get () = + lastb := seekReadByteAsInt32 ctxt.is (start + (!curr)); + incr curr; + b := + if !lastb = 0xfe && !curr < sz then + lastb2 := seekReadByteAsInt32 ctxt.is (start + (!curr)); + incr curr; + !lastb2 + else + !lastb + + let seqPointsRemaining = ref seqpoints + + while !curr < sz do + // registering "+string !curr+" as start of an instruction") + markAsInstructionStart !curr ibuf.Count; + + // Insert any sequence points into the instruction sequence + while + (match !seqPointsRemaining with + | (i,_tag) :: _rest when i <= !curr -> true + | _ -> false) + do + // Emitting one sequence point + let (_,tag) = List.head !seqPointsRemaining + seqPointsRemaining := List.tail !seqPointsRemaining; + ibuf.Add (I_seqpoint tag) + + // Read the prefixes. Leave lastb and lastb2 holding the instruction byte(s) + begin + prefixes.al <- Aligned; + prefixes.tl <- Normalcall; + prefixes.vol <- Nonvolatile; + prefixes.ro<-NormalAddress; + prefixes.constrained<-None; + get (); + while !curr < sz && + !lastb = 0xfe && + (!b = (i_constrained &&& 0xff) || + !b = (i_readonly &&& 0xff) || + !b = (i_unaligned &&& 0xff) || + !b = (i_volatile &&& 0xff) || + !b = (i_tail &&& 0xff)) do + begin + if !b = (i_unaligned &&& 0xff) then + let unal = seekReadByteAsInt32 ctxt.is (start + (!curr)) + incr curr; + prefixes.al <- + if unal = 0x1 then Unaligned1 + elif unal = 0x2 then Unaligned2 + elif unal = 0x4 then Unaligned4 + else (dprintn "bad alignment for unaligned"; Aligned) + elif !b = (i_volatile &&& 0xff) then prefixes.vol <- Volatile + elif !b = (i_readonly &&& 0xff) then prefixes.ro <- ReadonlyAddress + elif !b = (i_constrained &&& 0xff) then + let uncoded = seekReadUncodedToken ctxt.is (start + (!curr)) + curr := !curr + 4; + let typ = seekReadTypeDefOrRef ctxt numtypars AsObject ILList.empty (uncodedTokenToTypeDefOrRefOrSpec uncoded) + prefixes.constrained <- Some typ + else prefixes.tl <- Tailcall; + end; + get (); + done; + end; + + // data for instruction begins at "+string !curr + (* Read and decode the instruction *) + if (!curr <= sz) then + let idecoder = + if !lastb = 0xfe then getTwoByteInstr ( !lastb2) + else getOneByteInstr ( !lastb) + let instr = + match idecoder with + | I_u16_u8_instr f -> + let x = seekReadByte ctxt.is (start + (!curr)) |> uint16 + curr := !curr + 1; + f prefixes x + | I_u16_u16_instr f -> + let x = seekReadUInt16 ctxt.is (start + (!curr)) + curr := !curr + 2; + f prefixes x + | I_none_instr f -> + f prefixes + | I_i64_instr f -> + let x = seekReadInt64 ctxt.is (start + (!curr)) + curr := !curr + 8; + f prefixes x + | I_i32_i8_instr f -> + let x = seekReadSByte ctxt.is (start + (!curr)) |> int32 + curr := !curr + 1; + f prefixes x + | I_i32_i32_instr f -> + let x = seekReadInt32 ctxt.is (start + (!curr)) + curr := !curr + 4; + f prefixes x + | I_r4_instr f -> + let x = seekReadSingle ctxt.is (start + (!curr)) + curr := !curr + 4; + f prefixes x + | I_r8_instr f -> + let x = seekReadDouble ctxt.is (start + (!curr)) + curr := !curr + 8; + f prefixes x + | I_field_instr f -> + let (tab,tok) = seekReadUncodedToken ctxt.is (start + (!curr)) + curr := !curr + 4; + let fspec = + if tab = TableNames.Field then + seekReadFieldDefAsFieldSpec ctxt tok + elif tab = TableNames.MemberRef then + seekReadMemberRefAsFieldSpec ctxt numtypars tok + else failwith "bad table in FieldDefOrRef" + f prefixes fspec + | I_method_instr f -> + // method instruction, curr = "+string !curr + + let (tab,idx) = seekReadUncodedToken ctxt.is (start + (!curr)) + curr := !curr + 4; + let (VarArgMethodData(enclTyp, cc, nm, argtys, varargs, retty, minst)) = + if tab = TableNames.Method then + seekReadMethodDefOrRef ctxt numtypars (TaggedIndex(mdor_MethodDef, idx)) + elif tab = TableNames.MemberRef then + seekReadMethodDefOrRef ctxt numtypars (TaggedIndex(mdor_MemberRef, idx)) + elif tab = TableNames.MethodSpec then + seekReadMethodSpecAsMethodData ctxt numtypars idx + else failwith "bad table in MethodDefOrRefOrSpec" + match enclTyp with + | ILType.Array (shape,ty) -> + match nm with + | "Get" -> I_ldelem_any(shape,ty) + | "Set" -> I_stelem_any(shape,ty) + | "Address" -> I_ldelema(prefixes.ro,false,shape,ty) + | ".ctor" -> I_newarr(shape,ty) + | _ -> failwith "bad method on array type" + | _ -> + let mspec = mkILMethSpecInTyRaw (enclTyp, cc, nm, argtys, retty, minst) + f prefixes (mspec,varargs) + | I_type_instr f -> + let uncoded = seekReadUncodedToken ctxt.is (start + (!curr)) + curr := !curr + 4; + let typ = seekReadTypeDefOrRef ctxt numtypars AsObject ILList.empty (uncodedTokenToTypeDefOrRefOrSpec uncoded) + f prefixes typ + | I_string_instr f -> + let (tab,idx) = seekReadUncodedToken ctxt.is (start + (!curr)) + curr := !curr + 4; + if tab <> TableNames.UserStrings then dprintn "warning: bad table in user string for ldstr"; + f prefixes (readUserStringHeap ctxt (idx)) + + | I_conditional_i32_instr f -> + let offsDest = (seekReadInt32 ctxt.is (start + (!curr))) + curr := !curr + 4; + let dest = !curr + offsDest + let next = !curr + f prefixes (rawToLabel dest, rawToLabel next) + | I_conditional_i8_instr f -> + let offsDest = int (seekReadSByte ctxt.is (start + (!curr))) + curr := !curr + 1; + let dest = !curr + offsDest + let next = !curr + f prefixes (rawToLabel dest, rawToLabel next) + | I_unconditional_i32_instr f -> + let offsDest = (seekReadInt32 ctxt.is (start + (!curr))) + curr := !curr + 4; + let dest = !curr + offsDest + f prefixes (rawToLabel dest) + | I_unconditional_i8_instr f -> + let offsDest = int (seekReadSByte ctxt.is (start + (!curr))) + curr := !curr + 1; + let dest = !curr + offsDest + f prefixes (rawToLabel dest) + | I_invalid_instr -> dprintn ("invalid instruction: "+string !lastb+ (if !lastb = 0xfe then ","+string !lastb2 else "")); I_ret + | I_tok_instr f -> + let (tab,idx) = seekReadUncodedToken ctxt.is (start + (!curr)) + curr := !curr + 4; + (* REVIEW: this incorrectly labels all MemberRef tokens as ILMethod's: we should go look at the MemberRef sig to determine if it is a field or method *) + let token_info = + if tab = TableNames.Method || tab = TableNames.MemberRef (* REVIEW:generics or tab = TableNames.MethodSpec *) then + let (MethodData(enclTyp, cc, nm, argtys, retty, minst)) = seekReadMethodDefOrRefNoVarargs ctxt numtypars (uncodedTokenToMethodDefOrRef (tab,idx)) + ILToken.ILMethod (mkILMethSpecInTyRaw (enclTyp, cc, nm, argtys, retty, minst)) + elif tab = TableNames.Field then + ILToken.ILField (seekReadFieldDefAsFieldSpec ctxt idx) + elif tab = TableNames.TypeDef || tab = TableNames.TypeRef || tab = TableNames.TypeSpec then + ILToken.ILType (seekReadTypeDefOrRef ctxt numtypars AsObject ILList.empty (uncodedTokenToTypeDefOrRefOrSpec (tab,idx))) + else failwith "bad token for ldtoken" + f prefixes token_info + | I_sig_instr f -> + let (tab,idx) = seekReadUncodedToken ctxt.is (start + (!curr)) + curr := !curr + 4; + if tab <> TableNames.StandAloneSig then dprintn "strange table for callsig token"; + let generic,_genarity,cc,retty,argtys,varargs = readBlobHeapAsMethodSig ctxt numtypars (seekReadStandAloneSigRow ctxt idx) + if generic then failwith "bad image: a generic method signature ctxt.is begin used at a calli instruction"; + f prefixes (mkILCallSigRaw (cc,argtys,retty), varargs) + | I_switch_instr f -> + let n = (seekReadInt32 ctxt.is (start + (!curr))) + curr := !curr + 4; + let offsets = + List.init n (fun _ -> + let i = (seekReadInt32 ctxt.is (start + (!curr))) + curr := !curr + 4; + i) + let dests = List.map (fun offs -> rawToLabel (!curr + offs)) offsets + let next = rawToLabel !curr + f prefixes (dests,next) + ibuf.Add instr + done; + // Finished reading instructions - mark the end of the instruction stream in case the PDB information refers to it. + markAsInstructionStart !curr ibuf.Count; + // Build the function that maps from raw labels (offsets into the bytecode stream) to indexes in the AbsIL instruction stream + let lab2pc lab = + try + ilOffsetsOfLabels.[lab] + with :? KeyNotFoundException-> + failwith ("branch destination "+formatCodeLabel lab+" not found in code") + + // Some offsets used in debug info refer to the end of an instruction, rather than the + // start of the subsequent instruction. But all labels refer to instruction starts, + // apart from a final label which refers to the end of the method. This function finds + // the start of the next instruction referred to by the raw offset. + let raw2nextLab rawOffset = + let isInstrStart x = + match tryRawToLabel x with + | None -> false + | Some lab -> ilOffsetsOfLabels.ContainsKey lab + if isInstrStart rawOffset then rawToLabel rawOffset + elif isInstrStart (rawOffset+1) then rawToLabel (rawOffset+1) + else failwith ("the bytecode raw offset "+string rawOffset+" did not refer either to the start or end of an instruction") + let instrs = ibuf.ToArray() + instrs,rawToLabel, lab2pc, raw2nextLab + +#if NO_PDB_READER +and seekReadMethodRVA ctxt (_idx,nm,_internalcall,noinline,numtypars) rva = +#else +and seekReadMethodRVA ctxt (idx,nm,_internalcall,noinline,numtypars) rva = +#endif + mkMethBodyLazyAux + (lazy + begin + + // Read any debug information for this method into temporary data structures + // -- a list of locals, marked with the raw offsets (actually closures which accept the resolution function that maps raw offsets to labels) + // -- an overall range for the method + // -- the sequence points for the method + let localPdbInfos, methRangePdbInfo, seqpoints = +#if NO_PDB_READER + [], None, [] +#else + match ctxt.pdb with + | None -> + [], None, [] + | Some (pdbr, get_doc) -> + try + + let pdbm = pdbReaderGetMethod pdbr (uncodedToken TableNames.Method idx) + //let rootScope = pdbMethodGetRootScope pdbm + let sps = pdbMethodGetSequencePoints pdbm + (*dprintf "#sps for 0x%x = %d\n" (uncodedToken TableNames.Method idx) (Array.length sps); *) + (* let roota,rootb = pdbScopeGetOffsets rootScope in *) + let seqpoints = + let arr = + sps |> Array.map (fun sp -> + (* It is VERY annoying to have to call GetURL for the document for each sequence point. This appears to be a short coming of the PDB reader API. They should return an index into the array of documents for the reader *) + let sourcedoc = get_doc (pdbDocumentGetURL sp.pdbSeqPointDocument) + let source = + ILSourceMarker.Create(document = sourcedoc, + line = sp.pdbSeqPointLine, + column = sp.pdbSeqPointColumn, + endLine = sp.pdbSeqPointEndLine, + endColumn = sp.pdbSeqPointEndColumn) + (sp.pdbSeqPointOffset,source)) + + Array.sortInPlaceBy fst arr; + + Array.toList arr + let rec scopes scp = + let a,b = pdbScopeGetOffsets scp + let lvs = pdbScopeGetLocals scp + let ilvs = + lvs + |> Array.toList + |> List.filter (fun l -> + let k,_idx = pdbVariableGetAddressAttributes l + k = 1 (* ADDR_IL_OFFSET *)) + let ilinfos = + ilvs |> List.map (fun ilv -> + let _k,idx = pdbVariableGetAddressAttributes ilv + let n = pdbVariableGetName ilv + { LocalIndex= idx; + LocalName=n}) + + let thisOne = + (fun raw2nextLab -> + { locRange= (raw2nextLab a,raw2nextLab b); + locInfos = ilinfos }) + // this scope covers IL range: "+string a+"-"+string b) + let others = List.foldBack (scopes >> (@)) (Array.toList (pdbScopeGetChildren scp)) [] + thisOne :: others + let localPdbInfos = [] (* scopes fail for mscorlib scopes rootScope *) + // REVIEW: look through sps to get ranges? Use GetRanges?? Change AbsIL?? + (localPdbInfos,None,seqpoints) + with e -> + // "* Warning: PDB info for method "+nm+" could not be read and will be ignored: "+e.Message + [],None,[] +#endif // NO_PDB_READER + + let baseRVA = ctxt.anyV2P("method rva",rva) + // ": reading body of method "+nm+" at rva "+string rva+", phys "+string baseRVA + let b = seekReadByte ctxt.is baseRVA + if (b &&& e_CorILMethod_FormatMask) = e_CorILMethod_TinyFormat then + let codeBase = baseRVA + 1 + let codeSize = (int32 b >>>& 2) + // tiny format for "+nm+", code size = " + string codeSize); + let instrs,_,lab2pc,raw2nextLab = seekReadTopCode ctxt numtypars codeSize codeBase seqpoints + (* Convert the linear code format to the nested code format *) + let localPdbInfos2 = List.map (fun f -> f raw2nextLab) localPdbInfos + let code = checkILCode (buildILCode nm lab2pc instrs [] localPdbInfos2) + MethodBody.IL + { IsZeroInit=false; + MaxStack= 8; + NoInlining=noinline; + Locals=ILList.empty; + SourceMarker=methRangePdbInfo; + Code=code } + + elif (b &&& e_CorILMethod_FormatMask) = e_CorILMethod_FatFormat then + let hasMoreSections = (b &&& e_CorILMethod_MoreSects) <> 0x0uy + let initlocals = (b &&& e_CorILMethod_InitLocals) <> 0x0uy + let maxstack = seekReadUInt16AsInt32 ctxt.is (baseRVA + 2) + let codeSize = seekReadInt32 ctxt.is (baseRVA + 4) + let localsTab,localToken = seekReadUncodedToken ctxt.is (baseRVA + 8) + let codeBase = baseRVA + 12 + let locals = + if localToken = 0x0 then [] + else + if localsTab <> TableNames.StandAloneSig then dprintn "strange table for locals token"; + readBlobHeapAsLocalsSig ctxt numtypars (seekReadStandAloneSigRow ctxt localToken) + + // fat format for "+nm+", code size = " + string codeSize+", hasMoreSections = "+(if hasMoreSections then "true" else "false")+",b = "+string b); + + // Read the method body + let instrs,rawToLabel,lab2pc,raw2nextLab = seekReadTopCode ctxt numtypars ( codeSize) codeBase seqpoints + + // Read all the sections that follow the method body. + // These contain the exception clauses. + let nextSectionBase = ref (align 4 (codeBase + codeSize)) + let moreSections = ref hasMoreSections + let seh = ref [] + while !moreSections do + let sectionBase = !nextSectionBase + let sectionFlag = seekReadByte ctxt.is sectionBase + // fat format for "+nm+", sectionFlag = " + string sectionFlag); + let sectionSize, clauses = + if (sectionFlag &&& e_CorILMethod_Sect_FatFormat) <> 0x0uy then + let bigSize = (seekReadInt32 ctxt.is sectionBase) >>>& 8 + // bigSize = "+string bigSize); + let clauses = + if (sectionFlag &&& e_CorILMethod_Sect_EHTable) <> 0x0uy then + // WORKAROUND: The ECMA spec says this should be + // let numClauses = ((bigSize - 4) / 24) in + // but the CCI IL generator generates multiples of 24 + let numClauses = (bigSize / 24) + + List.init numClauses (fun i -> + let clauseBase = sectionBase + 4 + (i * 24) + let kind = seekReadInt32 ctxt.is (clauseBase + 0) + let st1 = seekReadInt32 ctxt.is (clauseBase + 4) + let sz1 = seekReadInt32 ctxt.is (clauseBase + 8) + let st2 = seekReadInt32 ctxt.is (clauseBase + 12) + let sz2 = seekReadInt32 ctxt.is (clauseBase + 16) + let extra = seekReadInt32 ctxt.is (clauseBase + 20) + (kind,st1,sz1,st2,sz2,extra)) + else [] + bigSize, clauses + else + let smallSize = seekReadByteAsInt32 ctxt.is (sectionBase + 0x01) + let clauses = + if (sectionFlag &&& e_CorILMethod_Sect_EHTable) <> 0x0uy then + // WORKAROUND: The ECMA spec says this should be + // let numClauses = ((smallSize - 4) / 12) in + // but the C# compiler (or some IL generator) generates multiples of 12 + let numClauses = (smallSize / 12) + // dprintn (nm+" has " + string numClauses + " tiny seh clauses"); + List.init numClauses (fun i -> + let clauseBase = sectionBase + 4 + (i * 12) + let kind = seekReadUInt16AsInt32 ctxt.is (clauseBase + 0) + if logging then dprintn ("One tiny SEH clause, kind = "+string kind); + let st1 = seekReadUInt16AsInt32 ctxt.is (clauseBase + 2) + let sz1 = seekReadByteAsInt32 ctxt.is (clauseBase + 4) + let st2 = seekReadUInt16AsInt32 ctxt.is (clauseBase + 5) + let sz2 = seekReadByteAsInt32 ctxt.is (clauseBase + 7) + let extra = seekReadInt32 ctxt.is (clauseBase + 8) + (kind,st1,sz1,st2,sz2,extra)) + else + [] + smallSize, clauses + + // Morph together clauses that cover the same range + let sehClauses = + let sehMap = Dictionary<_,_>(clauses.Length, HashIdentity.Structural) + + List.iter + (fun (kind,st1,sz1,st2,sz2,extra) -> + let tryStart = rawToLabel st1 + let tryFinish = rawToLabel (st1 + sz1) + let handlerStart = rawToLabel st2 + let handlerFinish = rawToLabel (st2 + sz2) + let clause = + if kind = e_COR_ILEXCEPTION_CLAUSE_EXCEPTION then + ILExceptionClause.TypeCatch(seekReadTypeDefOrRef ctxt numtypars AsObject ILList.empty (uncodedTokenToTypeDefOrRefOrSpec (i32ToUncodedToken extra)), (handlerStart, handlerFinish) ) + elif kind = e_COR_ILEXCEPTION_CLAUSE_FILTER then + let filterStart = rawToLabel extra + let filterFinish = handlerStart + ILExceptionClause.FilterCatch((filterStart, filterFinish), (handlerStart, handlerFinish)) + elif kind = e_COR_ILEXCEPTION_CLAUSE_FINALLY then + ILExceptionClause.Finally(handlerStart, handlerFinish) + elif kind = e_COR_ILEXCEPTION_CLAUSE_FAULT then + ILExceptionClause.Fault(handlerStart, handlerFinish) + else begin + dprintn (ctxt.infile + ": unknown exception handler kind: "+string kind); + ILExceptionClause.Finally(handlerStart, handlerFinish) + end + + let key = (tryStart, tryFinish) + if sehMap.ContainsKey key then + let prev = sehMap.[key] + sehMap.[key] <- (prev @ [clause]) + else + sehMap.[key] <- [clause]) + clauses; + Seq.fold (fun acc (KeyValue(key,bs)) -> {exnRange=key; exnClauses=bs} :: acc) [] sehMap + seh := sehClauses; + moreSections := (sectionFlag &&& e_CorILMethod_Sect_MoreSects) <> 0x0uy; + nextSectionBase := sectionBase + sectionSize; + done; (* while *) + + (* Convert the linear code format to the nested code format *) + if logging then dprintn ("doing localPdbInfos2"); + let localPdbInfos2 = List.map (fun f -> f raw2nextLab) localPdbInfos + if logging then dprintn ("done localPdbInfos2, checking code..."); + let code = checkILCode (buildILCode nm lab2pc instrs !seh localPdbInfos2) + if logging then dprintn ("done checking code."); + MethodBody.IL + { IsZeroInit=initlocals; + MaxStack= maxstack; + NoInlining=noinline; + Locals=mkILLocals locals; + Code=code; + SourceMarker=methRangePdbInfo} + else + if logging then failwith "unknown format"; + MethodBody.Abstract + end) + +and int32AsILVariantType ctxt (n:int32) = + if List.memAssoc n (Lazy.force ILVariantTypeRevMap) then + List.assoc n (Lazy.force ILVariantTypeRevMap) + elif (n &&& vt_ARRAY) <> 0x0 then ILNativeVariant.Array (int32AsILVariantType ctxt (n &&& (~~~ vt_ARRAY))) + elif (n &&& vt_VECTOR) <> 0x0 then ILNativeVariant.Vector (int32AsILVariantType ctxt (n &&& (~~~ vt_VECTOR))) + elif (n &&& vt_BYREF) <> 0x0 then ILNativeVariant.Byref (int32AsILVariantType ctxt (n &&& (~~~ vt_BYREF))) + else (dprintn (ctxt.infile + ": int32AsILVariantType ctxt: unexpected variant type, n = "+string n) ; ILNativeVariant.Empty) + +and readBlobHeapAsNativeType ctxt blobIdx = + // reading native type blob "+string blobIdx); + let bytes = readBlobHeap ctxt blobIdx + let res,_ = sigptrGetILNativeType ctxt bytes 0 + res + +and sigptrGetILNativeType ctxt bytes sigptr = + // reading native type blob, sigptr= "+string sigptr); + let ntbyte,sigptr = sigptrGetByte bytes sigptr + if List.memAssoc ntbyte (Lazy.force ILNativeTypeMap) then + List.assoc ntbyte (Lazy.force ILNativeTypeMap), sigptr + elif ntbyte = 0x0uy then ILNativeType.Empty, sigptr + elif ntbyte = nt_CUSTOMMARSHALER then + // reading native type blob (CM1) , sigptr= "+string sigptr+ ", bytes.Length = "+string bytes.Length); + let guidLen,sigptr = sigptrGetZInt32 bytes sigptr + // reading native type blob (CM2) , sigptr= "+string sigptr+", guidLen = "+string ( guidLen)); + let guid,sigptr = sigptrGetBytes ( guidLen) bytes sigptr + // reading native type blob (CM3) , sigptr= "+string sigptr); + let nativeTypeNameLen,sigptr = sigptrGetZInt32 bytes sigptr + // reading native type blob (CM4) , sigptr= "+string sigptr+", nativeTypeNameLen = "+string ( nativeTypeNameLen)); + let nativeTypeName,sigptr = sigptrGetString ( nativeTypeNameLen) bytes sigptr + // reading native type blob (CM4) , sigptr= "+string sigptr+", nativeTypeName = "+nativeTypeName); + // reading native type blob (CM5) , sigptr= "+string sigptr); + let custMarshallerNameLen,sigptr = sigptrGetZInt32 bytes sigptr + // reading native type blob (CM6) , sigptr= "+string sigptr+", custMarshallerNameLen = "+string ( custMarshallerNameLen)); + let custMarshallerName,sigptr = sigptrGetString ( custMarshallerNameLen) bytes sigptr + // reading native type blob (CM7) , sigptr= "+string sigptr+", custMarshallerName = "+custMarshallerName); + let cookieStringLen,sigptr = sigptrGetZInt32 bytes sigptr + // reading native type blob (CM8) , sigptr= "+string sigptr+", cookieStringLen = "+string ( cookieStringLen)); + let cookieString,sigptr = sigptrGetBytes ( cookieStringLen) bytes sigptr + // reading native type blob (CM9) , sigptr= "+string sigptr); + ILNativeType.Custom (guid,nativeTypeName,custMarshallerName,cookieString), sigptr + elif ntbyte = nt_FIXEDSYSSTRING then + let i,sigptr = sigptrGetZInt32 bytes sigptr + ILNativeType.FixedSysString i, sigptr + elif ntbyte = nt_FIXEDARRAY then + let i,sigptr = sigptrGetZInt32 bytes sigptr + ILNativeType.FixedArray i, sigptr + elif ntbyte = nt_SAFEARRAY then + (if sigptr >= bytes.Length then + ILNativeType.SafeArray(ILNativeVariant.Empty, None),sigptr + else + let i,sigptr = sigptrGetZInt32 bytes sigptr + if sigptr >= bytes.Length then + ILNativeType.SafeArray (int32AsILVariantType ctxt i, None), sigptr + else + let len,sigptr = sigptrGetZInt32 bytes sigptr + let s,sigptr = sigptrGetString ( len) bytes sigptr + ILNativeType.SafeArray (int32AsILVariantType ctxt i, Some s), sigptr) + elif ntbyte = nt_ARRAY then + if sigptr >= bytes.Length then + ILNativeType.Array(None,None),sigptr + else + let nt,sigptr = + let u,sigptr' = sigptrGetZInt32 bytes sigptr + if (u = int nt_MAX) then + ILNativeType.Empty, sigptr' + else + (* note: go back to start and read native type *) + sigptrGetILNativeType ctxt bytes sigptr + if sigptr >= bytes.Length then + ILNativeType.Array (Some nt,None), sigptr + else + let pnum,sigptr = sigptrGetZInt32 bytes sigptr + if sigptr >= bytes.Length then + ILNativeType.Array (Some nt,Some(pnum,None)), sigptr + else + let additive,sigptr = + if sigptr >= bytes.Length then 0, sigptr + else sigptrGetZInt32 bytes sigptr + ILNativeType.Array (Some nt,Some(pnum,Some(additive))), sigptr + else (dprintn (ctxt.infile + ": unexpected native type, nt = "+string ntbyte); ILNativeType.Empty, sigptr) + +and seekReadManifestResources ctxt () = + mkILResourcesLazy + (lazy + [ for i = 1 to ctxt.getNumRows TableNames.ManifestResource do + let (offset,flags,nameIdx,implIdx) = seekReadManifestResourceRow ctxt i + let scoref = seekReadImplAsScopeRef ctxt implIdx + let datalab = + match scoref with + | ILScopeRef.Local -> + let start = ctxt.anyV2P ("resource",offset + ctxt.resourcesAddr) + let len = seekReadInt32 ctxt.is start + ILResourceLocation.Local (fun () -> seekReadBytes ctxt.is (start + 4) len) + | ILScopeRef.Module mref -> ILResourceLocation.File (mref,offset) + | ILScopeRef.Assembly aref -> ILResourceLocation.Assembly aref + + let r = + { Name= readStringHeap ctxt nameIdx; + Location = datalab; + Access = (if (flags &&& 0x01) <> 0x0 then ILResourceAccess.Public else ILResourceAccess.Private); + CustomAttrs = seekReadCustomAttrs ctxt (TaggedIndex(hca_ManifestResource, i)) } + yield r ]) + + +and seekReadNestedExportedTypes ctxt parentIdx = + mkILNestedExportedTypesLazy + (lazy + [ for i = 1 to ctxt.getNumRows TableNames.ExportedType do + let (flags,_tok,nameIdx,namespaceIdx,implIdx) = seekReadExportedTypeRow ctxt i + if not (isTopTypeDef flags) then + let (TaggedIndex(tag,idx) ) = implIdx + //let isTopTypeDef = (idx = 0 || tag <> i_ExportedType) + //if not isTopTypeDef then + match tag with + | tag when tag = i_ExportedType && idx = parentIdx -> + let nm = readBlobHeapAsTypeName ctxt (nameIdx,namespaceIdx) + yield + { Name=nm; + Access=(match typeAccessOfFlags flags with ILTypeDefAccess.Nested n -> n | _ -> failwith "non-nested access for a nested type described as being in an auxiliary module"); + Nested=seekReadNestedExportedTypes ctxt i; + CustomAttrs=seekReadCustomAttrs ctxt (TaggedIndex(hca_ExportedType, i)) } + | _ -> () ]) + +and seekReadTopExportedTypes ctxt () = + mkILExportedTypesLazy + (lazy + let res = ref [] + for i = 1 to ctxt.getNumRows TableNames.ExportedType do + let (flags,_tok,nameIdx,namespaceIdx,implIdx) = seekReadExportedTypeRow ctxt i + if isTopTypeDef flags then + let (TaggedIndex(tag,_idx) ) = implIdx + + // the nested types will be picked up by their enclosing types + if tag <> i_ExportedType then + let nm = readBlobHeapAsTypeName ctxt (nameIdx,namespaceIdx) + + let scoref = seekReadImplAsScopeRef ctxt implIdx + + let entry = + { ScopeRef=scoref; + Name=nm; + IsForwarder = ((flags &&& 0x00200000) <> 0); + Access=typeAccessOfFlags flags; + Nested=seekReadNestedExportedTypes ctxt i; + CustomAttrs=seekReadCustomAttrs ctxt (TaggedIndex(hca_ExportedType, i)) } + res := entry :: !res; + done; + List.rev !res) + +#if NO_PDB_READER +#else +let getPdbReader opts infile = + match opts.pdbPath with + | None -> None + | Some pdbpath -> + try + let pdbr = pdbReadOpen infile pdbpath + let pdbdocs = pdbReaderGetDocuments pdbr + + let tab = new Dictionary<_,_>(Array.length pdbdocs) + pdbdocs |> Array.iter (fun pdbdoc -> + let url = pdbDocumentGetURL pdbdoc + tab.[url] <- + ILSourceDocument.Create(language=Some (pdbDocumentGetLanguage pdbdoc), + vendor = Some (pdbDocumentGetLanguageVendor pdbdoc), + documentType = Some (pdbDocumentGetType pdbdoc), + file = url)); + + let docfun url = if tab.ContainsKey url then tab.[url] else failwith ("Document with URL "+url+" not found in list of documents in the PDB file") + Some (pdbr, docfun) + with e -> dprintn ("* Warning: PDB file could not be read and will be ignored: "+e.Message); None +#endif + +//----------------------------------------------------------------------- +// Crack the binary headers, build a reader context and return the lazy +// read of the AbsIL module. +// ---------------------------------------------------------------------- + +let rec genOpenBinaryReader infile is opts = + + (* MSDOS HEADER *) + let peSignaturePhysLoc = seekReadInt32 is 0x3c + + (* PE HEADER *) + let peFileHeaderPhysLoc = peSignaturePhysLoc + 0x04 + let peOptionalHeaderPhysLoc = peFileHeaderPhysLoc + 0x14 + let peSignature = seekReadInt32 is (peSignaturePhysLoc + 0) + if peSignature <> 0x4550 then failwithf "not a PE file - bad magic PE number 0x%08x, is = %A" peSignature is; + + + (* PE SIGNATURE *) + let machine = seekReadUInt16AsInt32 is (peFileHeaderPhysLoc + 0) + let numSections = seekReadUInt16AsInt32 is (peFileHeaderPhysLoc + 2) + let optHeaderSize = seekReadUInt16AsInt32 is (peFileHeaderPhysLoc + 16) + if optHeaderSize <> 0xe0 && + optHeaderSize <> 0xf0 then failwith "not a PE file - bad optional header size"; + let x64adjust = optHeaderSize - 0xe0 + let only64 = (optHeaderSize = 0xf0) (* May want to read in the optional header Magic number and check that as well... *) + let platform = match machine with | 0x8664 -> Some(AMD64) | 0x200 -> Some(IA64) | _ -> Some(X86) + let sectionHeadersStartPhysLoc = peOptionalHeaderPhysLoc + optHeaderSize + + let flags = seekReadUInt16AsInt32 is (peFileHeaderPhysLoc + 18) + let isDll = (flags &&& 0x2000) <> 0x0 + + (* OPTIONAL PE HEADER *) + let _textPhysSize = seekReadInt32 is (peOptionalHeaderPhysLoc + 4) (* Size of the code (text) section, or the sum of all code sections if there are multiple sections. *) + (* x86: 000000a0 *) + let _initdataPhysSize = seekReadInt32 is (peOptionalHeaderPhysLoc + 8) (* Size of the initialized data section, or the sum of all such sections if there are multiple data sections. *) + let _uninitdataPhysSize = seekReadInt32 is (peOptionalHeaderPhysLoc + 12) (* Size of the uninitialized data section, or the sum of all such sections if there are multiple data sections. *) + let _entrypointAddr = seekReadInt32 is (peOptionalHeaderPhysLoc + 16) (* RVA of entry point , needs to point to bytes 0xFF 0x25 followed by the RVA+!0x4000000 in a section marked execute/read for EXEs or 0 for DLLs e.g. 0x0000b57e *) + let _textAddr = seekReadInt32 is (peOptionalHeaderPhysLoc + 20) (* e.g. 0x0002000 *) + (* x86: 000000b0 *) + let dataSegmentAddr = seekReadInt32 is (peOptionalHeaderPhysLoc + 24) (* e.g. 0x0000c000 *) + (* REVIEW: For now, we'll use the DWORD at offset 24 for x64. This currently ok since fsc doesn't support true 64-bit image bases, + but we'll have to fix this up when such support is added. *) + let imageBaseReal = if only64 then dataSegmentAddr else seekReadInt32 is (peOptionalHeaderPhysLoc + 28) (* Image Base Always 0x400000 (see Section 23.1). - QUERY : no it's not always 0x400000, e.g. 0x034f0000 *) + let alignVirt = seekReadInt32 is (peOptionalHeaderPhysLoc + 32) (* Section Alignment Always 0x2000 (see Section 23.1). *) + let alignPhys = seekReadInt32 is (peOptionalHeaderPhysLoc + 36) (* File Alignment Either 0x200 or 0x1000. *) + (* x86: 000000c0 *) + let _osMajor = seekReadUInt16 is (peOptionalHeaderPhysLoc + 40) (* OS Major Always 4 (see Section 23.1). *) + let _osMinor = seekReadUInt16 is (peOptionalHeaderPhysLoc + 42) (* OS Minor Always 0 (see Section 23.1). *) + let _userMajor = seekReadUInt16 is (peOptionalHeaderPhysLoc + 44) (* User Major Always 0 (see Section 23.1). *) + let _userMinor = seekReadUInt16 is (peOptionalHeaderPhysLoc + 46) (* User Minor Always 0 (see Section 23.1). *) + let subsysMajor = seekReadUInt16AsInt32 is (peOptionalHeaderPhysLoc + 48) (* SubSys Major Always 4 (see Section 23.1). *) + let subsysMinor = seekReadUInt16AsInt32 is (peOptionalHeaderPhysLoc + 50) (* SubSys Minor Always 0 (see Section 23.1). *) + (* x86: 000000d0 *) + let _imageEndAddr = seekReadInt32 is (peOptionalHeaderPhysLoc + 56) (* Image Size: Size, in bytes, of image, including all headers and padding; shall be a multiple of Section Alignment. e.g. 0x0000e000 *) + let _headerPhysSize = seekReadInt32 is (peOptionalHeaderPhysLoc + 60) (* Header Size Combined size of MS-DOS Header, PE Header, PE Optional Header and padding; shall be a multiple of the file alignment. *) + let subsys = seekReadUInt16 is (peOptionalHeaderPhysLoc + 68) (* SubSystem Subsystem required to run this image. Shall be either IMAGE_SUBSYSTEM_WINDOWS_CE_GUI (!0x3) or IMAGE_SUBSYSTEM_WINDOWS_GUI (!0x2). QUERY: Why is this 3 on the images ILASM produces??? *) + let useHighEnthropyVA = + let n = seekReadUInt16 is (peOptionalHeaderPhysLoc + 70) + let highEnthropyVA = 0x20us + (n &&& highEnthropyVA) = highEnthropyVA + + (* x86: 000000e0 *) + + (* WARNING: THESE ARE 64 bit ON x64/ia64 *) + (* REVIEW: If we ever decide that we need these values for x64, we'll have to read them in as 64bit and fix up the rest of the offsets. + Then again, it should suffice to just use the defaults, and still not bother... *) + (* let stackReserve = seekReadInt32 is (peOptionalHeaderPhysLoc + 72) in *) (* Stack Reserve Size Always 0x100000 (1Mb) (see Section 23.1). *) + (* let stackCommit = seekReadInt32 is (peOptionalHeaderPhysLoc + 76) in *) (* Stack Commit Size Always 0x1000 (4Kb) (see Section 23.1). *) + (* let heapReserve = seekReadInt32 is (peOptionalHeaderPhysLoc + 80) in *) (* Heap Reserve Size Always 0x100000 (1Mb) (see Section 23.1). *) + (* let heapCommit = seekReadInt32 is (peOptionalHeaderPhysLoc + 84) in *) (* Heap Commit Size Always 0x1000 (4Kb) (see Section 23.1). *) + + (* x86: 000000f0, x64: 00000100 *) + let _numDataDirectories = seekReadInt32 is (peOptionalHeaderPhysLoc + 92 + x64adjust) (* Number of Data Directories: Always 0x10 (see Section 23.1). *) + (* 00000100 - these addresses are for x86 - for the x64 location, add x64adjust (0x10) *) + let _importTableAddr = seekReadInt32 is (peOptionalHeaderPhysLoc + 104 + x64adjust) (* Import Table RVA of Import Table, (see clause 24.3.1). e.g. 0000b530 *) + let _importTableSize = seekReadInt32 is (peOptionalHeaderPhysLoc + 108 + x64adjust) (* Size of Import Table, (see clause 24.3.1). *) + let nativeResourcesAddr = seekReadInt32 is (peOptionalHeaderPhysLoc + 112 + x64adjust) + let nativeResourcesSize = seekReadInt32 is (peOptionalHeaderPhysLoc + 116 + x64adjust) + (* 00000110 *) + (* 00000120 *) + (* let base_relocTableNames.addr = seekReadInt32 is (peOptionalHeaderPhysLoc + 136) + let base_relocTableNames.size = seekReadInt32 is (peOptionalHeaderPhysLoc + 140) in *) + (* 00000130 *) + (* 00000140 *) + (* 00000150 *) + let _importAddrTableAddr = seekReadInt32 is (peOptionalHeaderPhysLoc + 192 + x64adjust) (* RVA of Import Addr Table, (see clause 24.3.1). e.g. 0x00002000 *) + let _importAddrTableSize = seekReadInt32 is (peOptionalHeaderPhysLoc + 196 + x64adjust) (* Size of Import Addr Table, (see clause 24.3.1). e.g. 0x00002000 *) + (* 00000160 *) + let cliHeaderAddr = seekReadInt32 is (peOptionalHeaderPhysLoc + 208 + x64adjust) + let _cliHeaderSize = seekReadInt32 is (peOptionalHeaderPhysLoc + 212 + x64adjust) + (* 00000170 *) + + + (* Crack section headers *) + + let sectionHeaders = + [ for i in 0 .. numSections-1 do + let pos = sectionHeadersStartPhysLoc + i * 0x28 + let virtSize = seekReadInt32 is (pos + 8) + let virtAddr = seekReadInt32 is (pos + 12) + let physLoc = seekReadInt32 is (pos + 20) + yield (virtAddr,virtSize,physLoc) ] + + let findSectionHeader addr = + let rec look i pos = + if i >= numSections then 0x0 + else + let virtSize = seekReadInt32 is (pos + 8) + let virtAddr = seekReadInt32 is (pos + 12) + if (addr >= virtAddr && addr < virtAddr + virtSize) then pos + else look (i+1) (pos + 0x28) + look 0 sectionHeadersStartPhysLoc + + let textHeaderStart = findSectionHeader cliHeaderAddr + let dataHeaderStart = findSectionHeader dataSegmentAddr + (* let relocHeaderStart = findSectionHeader base_relocTableNames.addr in *) + + let _textSize = if textHeaderStart = 0x0 then 0x0 else seekReadInt32 is (textHeaderStart + 8) + let _textAddr = if textHeaderStart = 0x0 then 0x0 else seekReadInt32 is (textHeaderStart + 12) + let textSegmentPhysicalSize = if textHeaderStart = 0x0 then 0x0 else seekReadInt32 is (textHeaderStart + 16) + let textSegmentPhysicalLoc = if textHeaderStart = 0x0 then 0x0 else seekReadInt32 is (textHeaderStart + 20) + + if logging then dprintn (infile + ": textHeaderStart = "+string textHeaderStart); + if logging then dprintn (infile + ": dataHeaderStart = "+string dataHeaderStart); + if logging then dprintn (infile + ": dataSegmentAddr (pre section crack) = "+string dataSegmentAddr); + + let dataSegmentSize = if dataHeaderStart = 0x0 then 0x0 else seekReadInt32 is (dataHeaderStart + 8) + let dataSegmentAddr = if dataHeaderStart = 0x0 then 0x0 else seekReadInt32 is (dataHeaderStart + 12) + let dataSegmentPhysicalSize = if dataHeaderStart = 0x0 then 0x0 else seekReadInt32 is (dataHeaderStart + 16) + let dataSegmentPhysicalLoc = if dataHeaderStart = 0x0 then 0x0 else seekReadInt32 is (dataHeaderStart + 20) + + if logging then dprintn (infile + ": dataSegmentAddr (post section crack) = "+string dataSegmentAddr); + + let anyV2P (n,v) = + let rec look i pos = + if i >= numSections then (failwith (infile + ": bad "+n+", rva "+string v); 0x0) + else + let virtSize = seekReadInt32 is (pos + 8) + let virtAddr = seekReadInt32 is (pos + 12) + let physLoc = seekReadInt32 is (pos + 20) + if (v >= virtAddr && (v < virtAddr + virtSize)) then (v - virtAddr) + physLoc + else look (i+1) (pos + 0x28) + look 0 sectionHeadersStartPhysLoc + + if logging then dprintn (infile + ": numSections = "+string numSections); + if logging then dprintn (infile + ": cliHeaderAddr = "+string cliHeaderAddr); + if logging then dprintn (infile + ": cliHeaderPhys = "+string (anyV2P ("cli header",cliHeaderAddr))); + if logging then dprintn (infile + ": dataSegmentSize = "+string dataSegmentSize); + if logging then dprintn (infile + ": dataSegmentAddr = "+string dataSegmentAddr); + + let cliHeaderPhysLoc = anyV2P ("cli header",cliHeaderAddr) + + let _majorRuntimeVersion = seekReadUInt16 is (cliHeaderPhysLoc + 4) + let _minorRuntimeVersion = seekReadUInt16 is (cliHeaderPhysLoc + 6) + let metadataAddr = seekReadInt32 is (cliHeaderPhysLoc + 8) + let _metadataSegmentSize = seekReadInt32 is (cliHeaderPhysLoc + 12) + let cliFlags = seekReadInt32 is (cliHeaderPhysLoc + 16) + + let ilOnly = (cliFlags &&& 0x01) <> 0x00 + let only32 = (cliFlags &&& 0x02) <> 0x00 + let is32bitpreferred = (cliFlags &&& 0x00020003) <> 0x00 + let _strongnameSigned = (cliFlags &&& 0x08) <> 0x00 + let _trackdebugdata = (cliFlags &&& 0x010000) <> 0x00 + + let entryPointToken = seekReadUncodedToken is (cliHeaderPhysLoc + 20) + let resourcesAddr = seekReadInt32 is (cliHeaderPhysLoc + 24) + let resourcesSize = seekReadInt32 is (cliHeaderPhysLoc + 28) + let strongnameAddr = seekReadInt32 is (cliHeaderPhysLoc + 32) + let _strongnameSize = seekReadInt32 is (cliHeaderPhysLoc + 36) + let vtableFixupsAddr = seekReadInt32 is (cliHeaderPhysLoc + 40) + let _vtableFixupsSize = seekReadInt32 is (cliHeaderPhysLoc + 44) + + if logging then dprintn (infile + ": metadataAddr = "+string metadataAddr); + if logging then dprintn (infile + ": resourcesAddr = "+string resourcesAddr); + if logging then dprintn (infile + ": resourcesSize = "+string resourcesSize); + if logging then dprintn (infile + ": nativeResourcesAddr = "+string nativeResourcesAddr); + if logging then dprintn (infile + ": nativeResourcesSize = "+string nativeResourcesSize); + + let metadataPhysLoc = anyV2P ("metadata",metadataAddr) + let magic = seekReadUInt16AsInt32 is metadataPhysLoc + if magic <> 0x5342 then failwith (infile + ": bad metadata magic number: " + string magic); + let magic2 = seekReadUInt16AsInt32 is (metadataPhysLoc + 2) + if magic2 <> 0x424a then failwith "bad metadata magic number"; + let _majorMetadataVersion = seekReadUInt16 is (metadataPhysLoc + 4) + let _minorMetadataVersion = seekReadUInt16 is (metadataPhysLoc + 6) + + let versionLength = seekReadInt32 is (metadataPhysLoc + 12) + let ilMetadataVersion = seekReadBytes is (metadataPhysLoc + 16) versionLength |> Array.filter (fun b -> b <> 0uy) + let x = align 0x04 (16 + versionLength) + let numStreams = seekReadUInt16AsInt32 is (metadataPhysLoc + x + 2) + let streamHeadersStart = (metadataPhysLoc + x + 4) + + if logging then dprintn (infile + ": numStreams = "+string numStreams); + if logging then dprintn (infile + ": streamHeadersStart = "+string streamHeadersStart); + + (* Crack stream headers *) + + let tryFindStream name = + let rec look i pos = + if i >= numStreams then None + else + let offset = seekReadInt32 is (pos + 0) + let length = seekReadInt32 is (pos + 4) + let res = ref true + let fin = ref false + let n = ref 0 + // read and compare the stream name byte by byte + while (not !fin) do + let c= seekReadByteAsInt32 is (pos + 8 + (!n)) + if c = 0 then + fin := true + elif !n >= Array.length name || c <> name.[!n] then + res := false; + incr n + if !res then Some(offset + metadataPhysLoc,length) + else look (i+1) (align 0x04 (pos + 8 + (!n))) + look 0 streamHeadersStart + + let findStream name = + match tryFindStream name with + | None -> (0x0, 0x0) + | Some positions -> positions + + let (tablesStreamPhysLoc, tablesStreamSize) = + match tryFindStream [| 0x23; 0x7e |] (* #~ *) with + | Some res -> res + | None -> + match tryFindStream [| 0x23; 0x2d |] (* #-: at least one DLL I've seen uses this! *) with + | Some res -> res + | None -> + dprintf "no metadata tables found under stream names '#~' or '#-', please report this\n"; + let firstStreamOffset = seekReadInt32 is (streamHeadersStart + 0) + let firstStreamLength = seekReadInt32 is (streamHeadersStart + 4) + firstStreamOffset,firstStreamLength + + let (stringsStreamPhysicalLoc, stringsStreamSize) = findStream [| 0x23; 0x53; 0x74; 0x72; 0x69; 0x6e; 0x67; 0x73; |] (* #Strings *) + let (userStringsStreamPhysicalLoc, userStringsStreamSize) = findStream [| 0x23; 0x55; 0x53; |] (* #US *) + let (guidsStreamPhysicalLoc, _guidsStreamSize) = findStream [| 0x23; 0x47; 0x55; 0x49; 0x44; |] (* #GUID *) + let (blobsStreamPhysicalLoc, blobsStreamSize) = findStream [| 0x23; 0x42; 0x6c; 0x6f; 0x62; |] (* #Blob *) + + if logging then dprintn (infile + ": tablesAddr = "+string tablesStreamPhysLoc); + if logging then dprintn (infile + ": tablesSize = "+string tablesStreamSize); + if logging then dprintn (infile + ": stringsAddr = "+string stringsStreamPhysicalLoc); + if logging then dprintn (infile + ": stringsSize = "+string stringsStreamSize); + if logging then dprintn (infile + ": user_stringsAddr = "+string userStringsStreamPhysicalLoc); + if logging then dprintn (infile + ": guidsAddr = "+string guidsStreamPhysicalLoc); + if logging then dprintn (infile + ": blobsAddr = "+string blobsStreamPhysicalLoc); + + let tables_streamMajor_version = seekReadByteAsInt32 is (tablesStreamPhysLoc + 4) + let tables_streamMinor_version = seekReadByteAsInt32 is (tablesStreamPhysLoc + 5) + + let usingWhidbeyBeta1TableSchemeForGenericParam = (tables_streamMajor_version = 1) && (tables_streamMinor_version = 1) + + let tableKinds = + [|kindModule (* Table 0 *); + kindTypeRef (* Table 1 *); + kindTypeDef (* Table 2 *); + kindIllegal (* kindFieldPtr *) (* Table 3 *); + kindFieldDef (* Table 4 *); + kindIllegal (* kindMethodPtr *) (* Table 5 *); + kindMethodDef (* Table 6 *); + kindIllegal (* kindParamPtr *) (* Table 7 *); + kindParam (* Table 8 *); + kindInterfaceImpl (* Table 9 *); + kindMemberRef (* Table 10 *); + kindConstant (* Table 11 *); + kindCustomAttribute (* Table 12 *); + kindFieldMarshal (* Table 13 *); + kindDeclSecurity (* Table 14 *); + kindClassLayout (* Table 15 *); + kindFieldLayout (* Table 16 *); + kindStandAloneSig (* Table 17 *); + kindEventMap (* Table 18 *); + kindIllegal (* kindEventPtr *) (* Table 19 *); + kindEvent (* Table 20 *); + kindPropertyMap (* Table 21 *); + kindIllegal (* kindPropertyPtr *) (* Table 22 *); + kindProperty (* Table 23 *); + kindMethodSemantics (* Table 24 *); + kindMethodImpl (* Table 25 *); + kindModuleRef (* Table 26 *); + kindTypeSpec (* Table 27 *); + kindImplMap (* Table 28 *); + kindFieldRVA (* Table 29 *); + kindIllegal (* kindENCLog *) (* Table 30 *); + kindIllegal (* kindENCMap *) (* Table 31 *); + kindAssembly (* Table 32 *); + kindIllegal (* kindAssemblyProcessor *) (* Table 33 *); + kindIllegal (* kindAssemblyOS *) (* Table 34 *); + kindAssemblyRef (* Table 35 *); + kindIllegal (* kindAssemblyRefProcessor *) (* Table 36 *); + kindIllegal (* kindAssemblyRefOS *) (* Table 37 *); + kindFileRef (* Table 38 *); + kindExportedType (* Table 39 *); + kindManifestResource (* Table 40 *); + kindNested (* Table 41 *); + (if usingWhidbeyBeta1TableSchemeForGenericParam then kindGenericParam_v1_1 else kindGenericParam_v2_0); (* Table 42 *) + kindMethodSpec (* Table 43 *); + kindGenericParamConstraint (* Table 44 *); + kindIllegal (* Table 45 *); + kindIllegal (* Table 46 *); + kindIllegal (* Table 47 *); + kindIllegal (* Table 48 *); + kindIllegal (* Table 49 *); + kindIllegal (* Table 50 *); + kindIllegal (* Table 51 *); + kindIllegal (* Table 52 *); + kindIllegal (* Table 53 *); + kindIllegal (* Table 54 *); + kindIllegal (* Table 55 *); + kindIllegal (* Table 56 *); + kindIllegal (* Table 57 *); + kindIllegal (* Table 58 *); + kindIllegal (* Table 59 *); + kindIllegal (* Table 60 *); + kindIllegal (* Table 61 *); + kindIllegal (* Table 62 *); + kindIllegal (* Table 63 *); + |] + + let heapSizes = seekReadByteAsInt32 is (tablesStreamPhysLoc + 6) + let valid = seekReadInt64 is (tablesStreamPhysLoc + 8) + let sorted = seekReadInt64 is (tablesStreamPhysLoc + 16) + let tablesPresent, tableRowCount, startOfTables = + let present = ref [] + let numRows = Array.create 64 0 + let prevNumRowIdx = ref (tablesStreamPhysLoc + 24) + for i = 0 to 63 do + if (valid &&& (int64 1 <<< i)) <> int64 0 then + present := i :: !present; + numRows.[i] <- (seekReadInt32 is !prevNumRowIdx); + prevNumRowIdx := !prevNumRowIdx + 4 + List.rev !present, numRows, !prevNumRowIdx + + let getNumRows (tab:TableName) = tableRowCount.[tab.Index] + let numTables = tablesPresent.Length + let stringsBigness = (heapSizes &&& 1) <> 0 + let guidsBigness = (heapSizes &&& 2) <> 0 + let blobsBigness = (heapSizes &&& 4) <> 0 + + if logging then dprintn (infile + ": numTables = "+string numTables); + if logging && stringsBigness then dprintn (infile + ": strings are big"); + if logging && blobsBigness then dprintn (infile + ": blobs are big"); + + let tableBigness = Array.map (fun n -> n >= 0x10000) tableRowCount + + let codedBigness nbits tab = + let rows = getNumRows tab + rows >= (0x10000 >>>& nbits) + + let tdorBigness = + codedBigness 2 TableNames.TypeDef || + codedBigness 2 TableNames.TypeRef || + codedBigness 2 TableNames.TypeSpec + + let tomdBigness = + codedBigness 1 TableNames.TypeDef || + codedBigness 1 TableNames.Method + + let hcBigness = + codedBigness 2 TableNames.Field || + codedBigness 2 TableNames.Param || + codedBigness 2 TableNames.Property + + let hcaBigness = + codedBigness 5 TableNames.Method || + codedBigness 5 TableNames.Field || + codedBigness 5 TableNames.TypeRef || + codedBigness 5 TableNames.TypeDef || + codedBigness 5 TableNames.Param || + codedBigness 5 TableNames.InterfaceImpl || + codedBigness 5 TableNames.MemberRef || + codedBigness 5 TableNames.Module || + codedBigness 5 TableNames.Permission || + codedBigness 5 TableNames.Property || + codedBigness 5 TableNames.Event || + codedBigness 5 TableNames.StandAloneSig || + codedBigness 5 TableNames.ModuleRef || + codedBigness 5 TableNames.TypeSpec || + codedBigness 5 TableNames.Assembly || + codedBigness 5 TableNames.AssemblyRef || + codedBigness 5 TableNames.File || + codedBigness 5 TableNames.ExportedType || + codedBigness 5 TableNames.ManifestResource || + codedBigness 5 TableNames.GenericParam || + codedBigness 5 TableNames.GenericParamConstraint || + codedBigness 5 TableNames.MethodSpec + + + let hfmBigness = + codedBigness 1 TableNames.Field || + codedBigness 1 TableNames.Param + + let hdsBigness = + codedBigness 2 TableNames.TypeDef || + codedBigness 2 TableNames.Method || + codedBigness 2 TableNames.Assembly + + let mrpBigness = + codedBigness 3 TableNames.TypeRef || + codedBigness 3 TableNames.ModuleRef || + codedBigness 3 TableNames.Method || + codedBigness 3 TableNames.TypeSpec + + let hsBigness = + codedBigness 1 TableNames.Event || + codedBigness 1 TableNames.Property + + let mdorBigness = + codedBigness 1 TableNames.Method || + codedBigness 1 TableNames.MemberRef + + let mfBigness = + codedBigness 1 TableNames.Field || + codedBigness 1 TableNames.Method + + let iBigness = + codedBigness 2 TableNames.File || + codedBigness 2 TableNames.AssemblyRef || + codedBigness 2 TableNames.ExportedType + + let catBigness = + codedBigness 3 TableNames.Method || + codedBigness 3 TableNames.MemberRef + + let rsBigness = + codedBigness 2 TableNames.Module || + codedBigness 2 TableNames.ModuleRef || + codedBigness 2 TableNames.AssemblyRef || + codedBigness 2 TableNames.TypeRef + + let rowKindSize (RowKind kinds) = + kinds |> List.sumBy (fun x -> + match x with + | UShort -> 2 + | ULong -> 4 + | Byte -> 1 + | Data -> 4 + | GGuid -> (if guidsBigness then 4 else 2) + | Blob -> (if blobsBigness then 4 else 2) + | SString -> (if stringsBigness then 4 else 2) + | SimpleIndex tab -> (if tableBigness.[tab.Index] then 4 else 2) + | TypeDefOrRefOrSpec -> (if tdorBigness then 4 else 2) + | TypeOrMethodDef -> (if tomdBigness then 4 else 2) + | HasConstant -> (if hcBigness then 4 else 2) + | HasCustomAttribute -> (if hcaBigness then 4 else 2) + | HasFieldMarshal -> (if hfmBigness then 4 else 2) + | HasDeclSecurity -> (if hdsBigness then 4 else 2) + | MemberRefParent -> (if mrpBigness then 4 else 2) + | HasSemantics -> (if hsBigness then 4 else 2) + | MethodDefOrRef -> (if mdorBigness then 4 else 2) + | MemberForwarded -> (if mfBigness then 4 else 2) + | Implementation -> (if iBigness then 4 else 2) + | CustomAttributeType -> (if catBigness then 4 else 2) + | ResolutionScope -> (if rsBigness then 4 else 2)) + + let tableRowSizes = tableKinds |> Array.map rowKindSize + + let tablePhysLocations = + let res = Array.create 64 0x0 + let prevTablePhysLoc = ref startOfTables + for i = 0 to 63 do + res.[i] <- !prevTablePhysLoc; + prevTablePhysLoc := !prevTablePhysLoc + (tableRowCount.[i] * tableRowSizes.[i]); + if logging then dprintf "tablePhysLocations.[%d] = %d, offset from startOfTables = 0x%08x\n" i res.[i] (res.[i] - startOfTables); + res + + let inbase = Filename.fileNameOfPath infile + ": " + + // All the caches. The sizes are guesstimates for the rough sharing-density of the assembly + let cacheAssemblyRef = mkCacheInt32 opts.optimizeForMemory inbase "ILAssemblyRef" (getNumRows TableNames.AssemblyRef) + let cacheMethodSpecAsMethodData = mkCacheGeneric opts.optimizeForMemory inbase "MethodSpecAsMethodData" (getNumRows TableNames.MethodSpec / 20 + 1) + let cacheMemberRefAsMemberData = mkCacheGeneric opts.optimizeForMemory inbase "MemberRefAsMemberData" (getNumRows TableNames.MemberRef / 20 + 1) + let cacheCustomAttr = mkCacheGeneric opts.optimizeForMemory inbase "CustomAttr" (getNumRows TableNames.CustomAttribute / 50 + 1) + let cacheTypeRef = mkCacheInt32 opts.optimizeForMemory inbase "ILTypeRef" (getNumRows TableNames.TypeRef / 20 + 1) + let cacheTypeRefAsType = mkCacheGeneric opts.optimizeForMemory inbase "TypeRefAsType" (getNumRows TableNames.TypeRef / 20 + 1) + let cacheBlobHeapAsPropertySig = mkCacheGeneric opts.optimizeForMemory inbase "BlobHeapAsPropertySig" (getNumRows TableNames.Property / 20 + 1) + let cacheBlobHeapAsFieldSig = mkCacheGeneric opts.optimizeForMemory inbase "BlobHeapAsFieldSig" (getNumRows TableNames.Field / 20 + 1) + let cacheBlobHeapAsMethodSig = mkCacheGeneric opts.optimizeForMemory inbase "BlobHeapAsMethodSig" (getNumRows TableNames.Method / 20 + 1) + let cacheTypeDefAsType = mkCacheGeneric opts.optimizeForMemory inbase "TypeDefAsType" (getNumRows TableNames.TypeDef / 20 + 1) + let cacheMethodDefAsMethodData = mkCacheInt32 opts.optimizeForMemory inbase "MethodDefAsMethodData" (getNumRows TableNames.Method / 20 + 1) + let cacheGenericParams = mkCacheGeneric opts.optimizeForMemory inbase "GenericParams" (getNumRows TableNames.GenericParam / 20 + 1) + let cacheFieldDefAsFieldSpec = mkCacheInt32 opts.optimizeForMemory inbase "FieldDefAsFieldSpec" (getNumRows TableNames.Field / 20 + 1) + let cacheUserStringHeap = mkCacheInt32 opts.optimizeForMemory inbase "UserStringHeap" ( userStringsStreamSize / 20 + 1) + // nb. Lots and lots of cache hits on this cache, hence never optimize cache away + let cacheStringHeap = mkCacheInt32 false inbase "string heap" ( stringsStreamSize / 50 + 1) + let cacheBlobHeap = mkCacheInt32 opts.optimizeForMemory inbase "blob heap" ( blobsStreamSize / 50 + 1) + + // These tables are not required to enforce sharing fo the final data + // structure, but are very useful as searching these tables gives rise to many reads + // in standard applications. + + let cacheNestedRow = mkCacheInt32 opts.optimizeForMemory inbase "Nested Table Rows" (getNumRows TableNames.Nested / 20 + 1) + let cacheConstantRow = mkCacheInt32 opts.optimizeForMemory inbase "Constant Rows" (getNumRows TableNames.Constant / 20 + 1) + let cacheMethodSemanticsRow = mkCacheInt32 opts.optimizeForMemory inbase "MethodSemantics Rows" (getNumRows TableNames.MethodSemantics / 20 + 1) + let cacheTypeDefRow = mkCacheInt32 opts.optimizeForMemory inbase "ILTypeDef Rows" (getNumRows TableNames.TypeDef / 20 + 1) + let cacheInterfaceImplRow = mkCacheInt32 opts.optimizeForMemory inbase "InterfaceImpl Rows" (getNumRows TableNames.InterfaceImpl / 20 + 1) + let cacheFieldMarshalRow = mkCacheInt32 opts.optimizeForMemory inbase "FieldMarshal Rows" (getNumRows TableNames.FieldMarshal / 20 + 1) + let cachePropertyMapRow = mkCacheInt32 opts.optimizeForMemory inbase "PropertyMap Rows" (getNumRows TableNames.PropertyMap / 20 + 1) + + let mkRowCounter _nm = + let count = ref 0 +#if DEBUG +#if STATISTICS + addReport (fun oc -> if !count <> 0 then oc.WriteLine (inbase+string !count + " "+_nm+" rows read")); +#endif +#else + _nm |> ignore +#endif + count + + let countTypeRef = mkRowCounter "ILTypeRef" + let countTypeDef = mkRowCounter "ILTypeDef" + let countField = mkRowCounter "Field" + let countMethod = mkRowCounter "Method" + let countParam = mkRowCounter "Param" + let countInterfaceImpl = mkRowCounter "InterfaceImpl" + let countMemberRef = mkRowCounter "MemberRef" + let countConstant = mkRowCounter "Constant" + let countCustomAttribute = mkRowCounter "CustomAttribute" + let countFieldMarshal = mkRowCounter "FieldMarshal" + let countPermission = mkRowCounter "Permission" + let countClassLayout = mkRowCounter "ClassLayout" + let countFieldLayout = mkRowCounter "FieldLayout" + let countStandAloneSig = mkRowCounter "StandAloneSig" + let countEventMap = mkRowCounter "EventMap" + let countEvent = mkRowCounter "Event" + let countPropertyMap = mkRowCounter "PropertyMap" + let countProperty = mkRowCounter "Property" + let countMethodSemantics = mkRowCounter "MethodSemantics" + let countMethodImpl = mkRowCounter "MethodImpl" + let countModuleRef = mkRowCounter "ILModuleRef" + let countTypeSpec = mkRowCounter "ILTypeSpec" + let countImplMap = mkRowCounter "ImplMap" + let countFieldRVA = mkRowCounter "FieldRVA" + let countAssembly = mkRowCounter "Assembly" + let countAssemblyRef = mkRowCounter "ILAssemblyRef" + let countFile = mkRowCounter "File" + let countExportedType = mkRowCounter "ILExportedTypeOrForwarder" + let countManifestResource = mkRowCounter "ManifestResource" + let countNested = mkRowCounter "Nested" + let countGenericParam = mkRowCounter "GenericParam" + let countGenericParamConstraint = mkRowCounter "GenericParamConstraint" + let countMethodSpec = mkRowCounter "ILMethodSpec" + + + //----------------------------------------------------------------------- + // Set up the PDB reader so we can read debug info for methods. + // ---------------------------------------------------------------------- +#if NO_PDB_READER + let pdb = None +#else + let pdb = if runningOnMono then None else getPdbReader opts infile +#endif + + let rowAddr (tab:TableName) idx = tablePhysLocations.[tab.Index] + (idx - 1) * tableRowSizes.[tab.Index] + + + // Build the reader context + // Use an initialization hole + let ctxtH = ref None + let ctxt = { ilg=opts.ilGlobals; + dataEndPoints = dataEndPoints ctxtH; + pdb=pdb; + sorted=sorted; + getNumRows=getNumRows; + textSegmentPhysicalLoc=textSegmentPhysicalLoc; + textSegmentPhysicalSize=textSegmentPhysicalSize; + dataSegmentPhysicalLoc=dataSegmentPhysicalLoc; + dataSegmentPhysicalSize=dataSegmentPhysicalSize; + anyV2P=anyV2P; + metadataAddr=metadataAddr; + sectionHeaders=sectionHeaders; + nativeResourcesAddr=nativeResourcesAddr; + nativeResourcesSize=nativeResourcesSize; + resourcesAddr=resourcesAddr; + strongnameAddr=strongnameAddr; + vtableFixupsAddr=vtableFixupsAddr; + is=is; + infile=infile; + userStringsStreamPhysicalLoc = userStringsStreamPhysicalLoc; + stringsStreamPhysicalLoc = stringsStreamPhysicalLoc; + blobsStreamPhysicalLoc = blobsStreamPhysicalLoc; + memoizeString = Tables.memoize id; + readUserStringHeap = cacheUserStringHeap (readUserStringHeapUncached ctxtH); + readStringHeap = cacheStringHeap (readStringHeapUncached ctxtH); + readBlobHeap = cacheBlobHeap (readBlobHeapUncached ctxtH); + seekReadNestedRow = cacheNestedRow (seekReadNestedRowUncached ctxtH); + seekReadConstantRow = cacheConstantRow (seekReadConstantRowUncached ctxtH); + seekReadMethodSemanticsRow = cacheMethodSemanticsRow (seekReadMethodSemanticsRowUncached ctxtH); + seekReadTypeDefRow = cacheTypeDefRow (seekReadTypeDefRowUncached ctxtH); + seekReadInterfaceImplRow = cacheInterfaceImplRow (seekReadInterfaceImplRowUncached ctxtH); + seekReadFieldMarshalRow = cacheFieldMarshalRow (seekReadFieldMarshalRowUncached ctxtH); + seekReadPropertyMapRow = cachePropertyMapRow (seekReadPropertyMapRowUncached ctxtH); + seekReadAssemblyRef = cacheAssemblyRef (seekReadAssemblyRefUncached ctxtH); + seekReadMethodSpecAsMethodData = cacheMethodSpecAsMethodData (seekReadMethodSpecAsMethodDataUncached ctxtH); + seekReadMemberRefAsMethodData = cacheMemberRefAsMemberData (seekReadMemberRefAsMethodDataUncached ctxtH); + seekReadMemberRefAsFieldSpec = seekReadMemberRefAsFieldSpecUncached ctxtH; + seekReadCustomAttr = cacheCustomAttr (seekReadCustomAttrUncached ctxtH); + seekReadSecurityDecl = seekReadSecurityDeclUncached ctxtH; + seekReadTypeRef = cacheTypeRef (seekReadTypeRefUncached ctxtH); + readBlobHeapAsPropertySig = cacheBlobHeapAsPropertySig (readBlobHeapAsPropertySigUncached ctxtH); + readBlobHeapAsFieldSig = cacheBlobHeapAsFieldSig (readBlobHeapAsFieldSigUncached ctxtH); + readBlobHeapAsMethodSig = cacheBlobHeapAsMethodSig (readBlobHeapAsMethodSigUncached ctxtH); + readBlobHeapAsLocalsSig = readBlobHeapAsLocalsSigUncached ctxtH; + seekReadTypeDefAsType = cacheTypeDefAsType (seekReadTypeDefAsTypeUncached ctxtH); + seekReadTypeRefAsType = cacheTypeRefAsType (seekReadTypeRefAsTypeUncached ctxtH); + seekReadMethodDefAsMethodData = cacheMethodDefAsMethodData (seekReadMethodDefAsMethodDataUncached ctxtH); + seekReadGenericParams = cacheGenericParams (seekReadGenericParamsUncached ctxtH); + seekReadFieldDefAsFieldSpec = cacheFieldDefAsFieldSpec (seekReadFieldDefAsFieldSpecUncached ctxtH); + guidsStreamPhysicalLoc = guidsStreamPhysicalLoc; + rowAddr=rowAddr; + entryPointToken=entryPointToken; + rsBigness=rsBigness; + tdorBigness=tdorBigness; + tomdBigness=tomdBigness; + hcBigness=hcBigness; + hcaBigness=hcaBigness; + hfmBigness=hfmBigness; + hdsBigness=hdsBigness; + mrpBigness=mrpBigness; + hsBigness=hsBigness; + mdorBigness=mdorBigness; + mfBigness=mfBigness; + iBigness=iBigness; + catBigness=catBigness; + stringsBigness=stringsBigness; + guidsBigness=guidsBigness; + blobsBigness=blobsBigness; + tableBigness=tableBigness; + countTypeRef = countTypeRef; + countTypeDef = countTypeDef; + countField = countField; + countMethod = countMethod; + countParam = countParam; + countInterfaceImpl = countInterfaceImpl; + countMemberRef = countMemberRef; + countConstant = countConstant; + countCustomAttribute = countCustomAttribute; + countFieldMarshal = countFieldMarshal; + countPermission = countPermission; + countClassLayout = countClassLayout; + countFieldLayout = countFieldLayout; + countStandAloneSig = countStandAloneSig; + countEventMap = countEventMap; + countEvent = countEvent; + countPropertyMap = countPropertyMap; + countProperty = countProperty; + countMethodSemantics = countMethodSemantics; + countMethodImpl = countMethodImpl; + countModuleRef = countModuleRef; + countTypeSpec = countTypeSpec; + countImplMap = countImplMap; + countFieldRVA = countFieldRVA; + countAssembly = countAssembly; + countAssemblyRef = countAssemblyRef; + countFile = countFile; + countExportedType = countExportedType; + countManifestResource = countManifestResource; + countNested = countNested; + countGenericParam = countGenericParam; + countGenericParamConstraint = countGenericParamConstraint; + countMethodSpec = countMethodSpec; } + ctxtH := Some ctxt; + + let ilModule = seekReadModule ctxt (subsys, (subsysMajor, subsysMinor), useHighEnthropyVA, ilOnly,only32,is32bitpreferred,only64,platform,isDll, alignVirt,alignPhys,imageBaseReal,System.Text.Encoding.UTF8.GetString (ilMetadataVersion, 0, ilMetadataVersion.Length)) 1 + let ilAssemblyRefs = lazy [ for i in 1 .. getNumRows TableNames.AssemblyRef do yield seekReadAssemblyRef ctxt i ] + + ilModule,ilAssemblyRefs,pdb + +let CloseILModuleReader x = x.dispose() + +let defaults = + { optimizeForMemory=false; + pdbPath= None; + ilGlobals=ecmaILGlobals } + +#if NO_PDB_READER +let ClosePdbReader _x = () +#else +let ClosePdbReader pdb = + match pdb with + | Some (pdbr,_) -> pdbReadClose pdbr + | None -> () +#endif + +let OpenILModuleReader infile opts = + + try + let mmap = MMapChannel.OpenIn infile + let modul,ilAssemblyRefs,pdb = genOpenBinaryReader infile (MMap mmap) opts + { modul = modul; + ilAssemblyRefs=ilAssemblyRefs; + dispose = (fun () -> + mmap.Close(); + ClosePdbReader pdb) } + with :? System.DllNotFoundException -> + let stream = FileSystem.FileStreamReadShim infile + let is = new BinaryReader(stream) + let cell = ref (Some is) + let modul,ilAssemblyRefs,pdb = genOpenBinaryReader infile (Chan (infile,cell)) opts + { modul = modul; + ilAssemblyRefs = ilAssemblyRefs; + dispose = (fun () -> + cell := None; + is.Close(); + ClosePdbReader pdb) } + +// ++GLOBAL MUTABLE STATE +let ilModuleReaderCache = + new Internal.Utilities.Collections.AgedLookup<(string * System.DateTime),ILModuleReader>(0, areSame=(fun (x,y) -> x = y)) + + +let OpenILModuleReaderAfterReadingAllBytes infile opts = + // Pseudo-normalize the paths. + let key,succeeded = + try (FileSystem.GetFullPathShim(infile), FileSystem.GetLastWriteTimeShim(infile)), true + with e -> + System.Diagnostics.Debug.Assert(false, "Failed to compute key in OpenILModuleReaderAfterReadingAllBytes cache. Falling back to uncached.") + ("",System.DateTime.Now), false + let cacheResult = + if not succeeded then None // Fall back to uncached. + else if opts.pdbPath.IsSome then None // can't used a cached entry when reading PDBs, since it makes the returned object IDisposable + else ilModuleReaderCache.TryGet(key) + match cacheResult with + | Some(ilModuleReader) -> ilModuleReader + | None -> + let mc = MemChannel.OpenIn infile + let modul,ilAssemblyRefs,pdb = genOpenBinaryReader infile (Mem mc) opts + let ilModuleReader = + { modul = modul; + ilAssemblyRefs = ilAssemblyRefs + dispose = (fun () -> ClosePdbReader pdb) } + if isNone pdb && succeeded then + ilModuleReaderCache.Put(key, ilModuleReader) + ilModuleReader + +let OpenILModuleReaderFromBytes fileNameForDebugOutput bytes opts = + assert opts.pdbPath.IsNone + let mc = MemChannel.OpenBytes bytes + let modul,ilAssemblyRefs,pdb = genOpenBinaryReader fileNameForDebugOutput (Mem mc) opts + let ilModuleReader = + { modul = modul; + ilAssemblyRefs = ilAssemblyRefs + dispose = (fun () -> ClosePdbReader pdb) } + ilModuleReader + + + + + diff --git a/src/absil/ilread.fsi b/src/absil/ilread.fsi new file mode 100644 index 0000000..6a8f379 --- /dev/null +++ b/src/absil/ilread.fsi @@ -0,0 +1,76 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +/// Binary reader. Read a .NET binary and concert it to Abstract IL data +/// structures. +/// +/// Notes: +/// - The metadata in the loaded modules will be relative to +/// those modules, e.g. ILScopeRef.Local will mean "local to +/// that module". You must use [rescopeILType] etc. if you want to include +/// (i.e. copy) the metadata into your own module. +/// +/// - PDB (debug info) reading/folding: +/// The PDB reader is invoked if you give a PDB path +/// This indicates if you want to search for PDB files and have the +/// reader fold them in. You cannot currently name the pdb file +/// directly - you can only name the path. Giving "None" says +/// "do not read the PDB file even if one exists" +/// +/// The debug info appears primarily as I_seqpoint annotations in +/// the instruction streams. Unfortunately the PDB information does +/// not, for example, tell you how to map back from a class definition +/// to a source code line number - you will need to explicitly search +/// for a sequence point in the code for one of the methods of the +/// class. That is not particularly satisfactory, and it may be +/// a good idea to build a small library which extracts the information +/// you need. +module Microsoft.FSharp.Compiler.AbstractIL.ILBinaryReader + +open Internal.Utilities +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.IL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open System.IO + + +type ILReaderOptions = + { pdbPath: string option; + ilGlobals: ILGlobals; + optimizeForMemory: bool (* normally off, i.e. optimize for startup-path speed *) } + +val defaults : ILReaderOptions + +// The non-memory resources (i.e. the file handle) associated with +// the read can be recovered by calling CloseILModuleReader. Any reamining +// lazily-computed items in the metadata graph returned by MetadataOfILModuleReader +// will no longer be valid. +[] +type ILModuleReader = + member ILModuleDef : ILModuleDef + member ILAssemblyRefs : ILAssemblyRef list + +val OpenILModuleReader: string -> ILReaderOptions -> ILModuleReader +val CloseILModuleReader: ILModuleReader -> unit + +/// Open a binary reader, except first copy the entire contents of the binary into +/// memory, close the file and ensure any subsequent reads happen from the in-memory store. +/// PDB files may not be read with this option. +val OpenILModuleReaderAfterReadingAllBytes: string -> ILReaderOptions -> ILModuleReader + +/// Open a binary reader based on the given bytes. +val OpenILModuleReaderFromBytes: fileNameForDebugOutput:string -> assemblyContents: byte[] -> options: ILReaderOptions -> ILModuleReader + +#if STATISTICS +(* report statistics from all reads *) +val report: TextWriter -> unit +#endif diff --git a/src/absil/ilreflect.fs b/src/absil/ilreflect.fs new file mode 100644 index 0000000..984ec99 --- /dev/null +++ b/src/absil/ilreflect.fs @@ -0,0 +1,2139 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +//---------------------------------------------------------------------------- +// Write Abstract IL structures at runtime using Reflection.Emit +//---------------------------------------------------------------------------- + + +module Microsoft.FSharp.Compiler.AbstractIL.ILRuntimeWriter + +open Internal.Utilities +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library +open Microsoft.FSharp.Compiler.AbstractIL.Diagnostics +open Microsoft.FSharp.Compiler.AbstractIL.Extensions +open Microsoft.FSharp.Compiler.AbstractIL.Extensions.ILX +open Microsoft.FSharp.Compiler.AbstractIL.Extensions.ILX.Types +open Microsoft.FSharp.Compiler.AbstractIL.IL + +open Microsoft.FSharp.Core.Printf + +open System +open System.Reflection +open System.Reflection.Emit +open System.Runtime.InteropServices +open System.Collections.Generic + +let codeLabelOrder = ComparisonIdentity.Structural + +// Convert the output of convCustomAttr +#if SILVERLIGHT +let wrapCustomAttr setCustomAttr (cinfo, cinfoBuilder) = + setCustomAttr(cinfoBuilder cinfo) +#else +open Microsoft.FSharp.Compiler.AbstractIL.ILAsciiWriter +let wrapCustomAttr setCustomAttr (cinfo, bytes) = + setCustomAttr(cinfo, bytes) +#endif + + +//---------------------------------------------------------------------------- +// logging to enable debugging +//---------------------------------------------------------------------------- + +let logRefEmitCalls = false + +type System.AppDomain with + member x.DefineDynamicAssemblyAndLog(asmName,flags,asmDir:string) = +#if SILVERLIGHT + ignore asmDir + let asmB = x.DefineDynamicAssembly(asmName,flags) +#else + let asmB = x.DefineDynamicAssembly(asmName,flags,asmDir) +#endif + if logRefEmitCalls then + printfn "open System" + printfn "open System.Reflection" + printfn "open System.Reflection.Emit" + printfn "let assemblyBuilder%d = System.AppDomain.CurrentDomain.DefineDynamicAssembly(AssemblyName(Name=\"%s\"),enum %d,%A)" (abs <| hash asmB) asmName.Name (LanguagePrimitives.EnumToValue flags) asmDir + asmB + + +type System.Reflection.Emit.AssemblyBuilder with + member asmB.DefineDynamicModuleAndLog(a,b,c) = +#if SILVERLIGHT + ignore c + let modB = asmB.DefineDynamicModule(a,b) +#else + let modB = asmB.DefineDynamicModule(a,b,c) +#endif + if logRefEmitCalls then printfn "let moduleBuilder%d = assemblyBuilder%d.DefineDynamicModule(%A,%A,%A)" (abs <| hash modB) (abs <| hash asmB) a b c + modB + + member asmB.SetCustomAttributeAndLog(cinfo,bytes) = + if logRefEmitCalls then printfn "assemblyBuilder%d.SetCustomAttribute(%A, %A)" (abs <| hash asmB) cinfo bytes + wrapCustomAttr asmB.SetCustomAttribute (cinfo, bytes) + +#if FX_ATLEAST_SILVERLIGHT_50 +#else + member asmB.AddResourceFileAndLog(nm1, nm2, attrs) = + if logRefEmitCalls then printfn "assemblyBuilder%d.AddResourceFile(%A, %A, enum %d)" (abs <| hash asmB) nm1 nm2 (LanguagePrimitives.EnumToValue attrs) + asmB.AddResourceFile(nm1,nm2,attrs) +#endif + + member asmB.SetCustomAttributeAndLog(cab) = + if logRefEmitCalls then printfn "assemblyBuilder%d.SetCustomAttribute(%A)" (abs <| hash asmB) cab + asmB.SetCustomAttribute(cab) + + +type System.Reflection.Emit.ModuleBuilder with + member modB.GetArrayMethodAndLog(aty,nm,flags,rty,tys) = + if logRefEmitCalls then printfn "moduleBuilder%d.GetArrayMethod(%A,%A,%A,%A,%A)" (abs <| hash modB) aty nm flags rty tys + modB.GetArrayMethod(aty,nm,flags,rty,tys) + + member modB.DefineDocumentAndLog(file,lang,vendor,doctype) = + let symDoc = modB.DefineDocument(file,lang,vendor,doctype) + if logRefEmitCalls then printfn "let docWriter%d = moduleBuilder%d.DefineDocument(%A,System.Guid(\"%A\"),System.Guid(\"%A\"),System.Guid(\"%A\"))" (abs <| hash symDoc) (abs <| hash modB) file lang vendor doctype + symDoc + + member modB.GetTypeAndLog(nameInModule,flag1,flag2) = + if logRefEmitCalls then printfn "moduleBuilder%d.GetType(%A,%A,%A) |> ignore" (abs <| hash modB) nameInModule flag1 flag2 + modB.GetType(nameInModule,flag1,flag2) + + member modB.DefineTypeAndLog(name,attrs) = + let typB = modB.DefineType(name,attrs) + if logRefEmitCalls then printfn "let typeBuilder%d = moduleBuilder%d.DefineType(%A,enum %d)" (abs <| hash typB) (abs <| hash modB) name (LanguagePrimitives.EnumToValue attrs) + typB + + member modB.DefineManifestResourceAndLog(name,stream,attrs) = + if logRefEmitCalls then printfn "moduleBuilder%d.DefineManifestResource(%A,%A,enum %d)" (abs <| hash modB) name stream (LanguagePrimitives.EnumToValue attrs) +#if SILVERLIGHT + // Annoyingly, DefineManifestResource is security critical on Silverlight +#else + modB.DefineManifestResource(name,stream,attrs) +#endif + + member modB.SetCustomAttributeAndLog(cinfo,bytes) = + if logRefEmitCalls then printfn "moduleBuilder%d.SetCustomAttribute(%A, %A)" (abs <| hash modB) cinfo bytes + wrapCustomAttr modB.SetCustomAttribute (cinfo,bytes) + + +type System.Reflection.Emit.ConstructorBuilder with + member consB.SetImplementationFlagsAndLog(attrs) = + if logRefEmitCalls then printfn "constructorBuilder%d.SetImplementationFlags(enum %d)" (abs <| hash consB) (LanguagePrimitives.EnumToValue attrs) + consB.SetImplementationFlags(attrs) + + member consB.DefineParameterAndLog(n,attr,nm) = + if logRefEmitCalls then printfn "constructorBuilder%d.DefineParameter(%d,enum %d,%A)" (abs <| hash consB) n (LanguagePrimitives.EnumToValue attr) nm + consB.DefineParameter(n,attr,nm) + + member consB.GetILGeneratorAndLog() = + let ilG = consB.GetILGenerator() + if logRefEmitCalls then printfn "let ilg%d = constructorBuilder%d.GetILGenerator()" (abs <| hash ilG) (abs <| hash consB) + ilG + +type System.Reflection.Emit.MethodBuilder with + member methB.SetImplementationFlagsAndLog(attrs) = + if logRefEmitCalls then printfn "methodBuilder%d.SetImplementationFlags(enum %d)" (abs <| hash methB) (LanguagePrimitives.EnumToValue attrs) + methB.SetImplementationFlags(attrs) + + member methB.SetReturnTypeAndLog(rt:System.Type) = + if logRefEmitCalls then printfn "methodBuilder%d.SetReturnType(typeof<%s>)" (abs <| hash methB) rt.FullName + methB.SetReturnType(rt) + + member methB.SetParametersAndLog(ps) = + if logRefEmitCalls then printfn "methodBuilder%d.SetParameters(%A)" (abs <| hash methB) ps + methB.SetParameters(ps) + + member methB.DefineParameterAndLog(n,attr,nm) = + if logRefEmitCalls then printfn "methodBuilder%d.DefineParameter(%d,enum %d,%A)" (abs <| hash methB) n (LanguagePrimitives.EnumToValue attr) nm + methB.DefineParameter(n,attr,nm) + + member methB.DefineGenericParametersAndLog(gps) = + if logRefEmitCalls then printfn "let gps%d = methodBuilder%d.DefineGenericParameters(%A)" (abs <| hash methB) (abs <| hash methB) gps + methB.DefineGenericParameters(gps) + + member methB.GetILGeneratorAndLog() = + let ilG = methB.GetILGenerator() + if logRefEmitCalls then printfn "let ilg%d = methodBuilder%d.GetILGenerator()" (abs <| hash ilG) (abs <| hash methB) + ilG + + member methB.SetCustomAttributeAndLog(cinfo,bytes) = + if logRefEmitCalls then printfn "methodBuilder%d.SetCustomAttribute(%A, %A)" (abs <| hash methB) cinfo bytes + wrapCustomAttr methB.SetCustomAttribute (cinfo,bytes) + + + + +type System.Reflection.Emit.TypeBuilder with + member typB.CreateTypeAndLog() = + if logRefEmitCalls then printfn "typeBuilder%d.CreateType()" (abs <| hash typB) + typB.CreateType() + + member typB.DefineNestedTypeAndLog(name,attrs) = + let res = typB.DefineNestedType(name,attrs) + if logRefEmitCalls then printfn "let typeBuilder%d = typeBuilder%d.DefineNestedType(\"%s\",enum %d)" (abs <| hash res) (abs <| hash typB) name (LanguagePrimitives.EnumToValue attrs) + res + + member typB.DefineMethodAndLog(name,attrs,cconv) = + let methB = typB.DefineMethod(name,attrs,cconv) + if logRefEmitCalls then printfn "let methodBuilder%d = typeBuilder%d.DefineMethod(\"%s\",enum %d,enum %d)" (abs <| hash methB) (abs <| hash typB) name (LanguagePrimitives.EnumToValue attrs) (LanguagePrimitives.EnumToValue cconv) + methB + + member typB.DefineGenericParametersAndLog(gps) = + if logRefEmitCalls then printfn "typeBuilder%d.DefineGenericParameters(%A)" (abs <| hash typB) gps + typB.DefineGenericParameters(gps) + + member typB.DefineConstructorAndLog(attrs,cconv,parms) = + let consB = typB.DefineConstructor(attrs,cconv,parms) + if logRefEmitCalls then printfn "let constructorBuilder%d = typeBuilder%d.DefineConstructor(enum %d,%A,%A)" (abs <| hash consB) (abs <| hash typB) (LanguagePrimitives.EnumToValue attrs) cconv parms + consB + + member typB.DefineFieldAndLog(nm,ty:System.Type,attrs) = + if logRefEmitCalls then printfn "typeBuilder%d.DefineField(\"%s\",typeof<%s>,enum %d)" (abs <| hash typB) nm ty.FullName (LanguagePrimitives.EnumToValue attrs) + typB.DefineField(nm,ty,attrs) + + member typB.DefinePropertyAndLog(nm,attrs,ty,args) = + if logRefEmitCalls then printfn "typeBuilder%d.DefineProperty(\"%A\",enum %d,%A,%A)" (abs <| hash typB) nm (LanguagePrimitives.EnumToValue attrs) ty args + typB.DefineProperty(nm,attrs,ty,args) + + member typB.DefineEventAndLog(nm,attrs,ty) = + if logRefEmitCalls then printfn "typeBuilder%d.DefineEvent(\"%A\",enum %d,%A)" (abs <| hash typB) nm (LanguagePrimitives.EnumToValue attrs) ty + typB.DefineEvent(nm,attrs,ty) + + member typB.SetParentAndLog(ty:System.Type) = + if logRefEmitCalls then printfn "typeBuilder%d.SetParent(typeof<%s>)" (abs <| hash typB) ty.FullName + typB.SetParent(ty) + + member typB.AddInterfaceImplementationAndLog(ty) = + if logRefEmitCalls then printfn "typeBuilder%d.AddInterfaceImplementation(%A)" (abs <| hash typB) ty + typB.AddInterfaceImplementation(ty) + + member typB.InvokeMemberAndLog(nm,flags,args) = + if logRefEmitCalls then printfn "typeBuilder%d.InvokeMember(\"%s\",enum %d,null,null,%A,Globalization.CultureInfo.InvariantCulture)" (abs <| hash typB) nm (LanguagePrimitives.EnumToValue flags) args +#if SILVERLIGHT + typB.InvokeMember(nm,flags,null,null,args) +#else + typB.InvokeMember(nm,flags,null,null,args,Globalization.CultureInfo.InvariantCulture) +#endif + + member typB.SetCustomAttributeAndLog(cinfo,bytes) = + if logRefEmitCalls then printfn "typeBuilder%d.SetCustomAttribute(%A, %A)" (abs <| hash typB) cinfo bytes + wrapCustomAttr typB.SetCustomAttribute (cinfo,bytes) + + +type System.Reflection.Emit.OpCode with + member opcode.RefEmitName = (string (System.Char.ToUpper(opcode.Name.[0])) + opcode.Name.[1..]).Replace(".","_").Replace("_i4","_I4") + +type System.Reflection.Emit.ILGenerator with + member ilG.DeclareLocalAndLog(ty:System.Type,isPinned) = + if logRefEmitCalls then printfn "ilg%d.DeclareLocal(typeof<%s>,%b)" (abs <| hash ilG) ty.FullName isPinned + ilG.DeclareLocal(ty,isPinned) + + member ilG.MarkLabelAndLog(lab) = + if logRefEmitCalls then printfn "ilg%d.MarkLabel(label%d_%d)" (abs <| hash ilG) (abs <| hash ilG) (abs <| hash lab) + ilG.MarkLabel(lab) + + member ilG.MarkSequencePointAndLog(symDoc, l1, c1, l2, c2) = + if logRefEmitCalls then printfn "ilg%d.MarkSequencePoint(docWriter%d, %A, %A, %A, %A)" (abs <| hash ilG) (abs <| hash symDoc) l1 c1 l2 c2 + ilG.MarkSequencePoint(symDoc, l1, c1, l2, c2) + + member ilG.BeginExceptionBlockAndLog() = + if logRefEmitCalls then printfn "ilg%d.BeginExceptionBlock()" (abs <| hash ilG) + ilG.BeginExceptionBlock() + + member ilG.EndExceptionBlockAndLog() = + if logRefEmitCalls then printfn "ilg%d.EndExceptionBlock()" (abs <| hash ilG) + ilG.EndExceptionBlock() + + member ilG.BeginFinallyBlockAndLog() = + if logRefEmitCalls then printfn "ilg%d.BeginFinallyBlock()" (abs <| hash ilG) + ilG.BeginFinallyBlock() + + member ilG.BeginCatchBlockAndLog(ty) = + if logRefEmitCalls then printfn "ilg%d.BeginCatchBlock(%A)" (abs <| hash ilG) ty + ilG.BeginCatchBlock(ty) + + member ilG.BeginExceptFilterBlockAndLog() = + if logRefEmitCalls then printfn "ilg%d.BeginExceptFilterBlock()" (abs <| hash ilG) + ilG.BeginExceptFilterBlock() + + member ilG.BeginFaultBlockAndLog() = + if logRefEmitCalls then printfn "ilg%d.BeginFaultBlock()" (abs <| hash ilG) + ilG.BeginFaultBlock() + + member ilG.DefineLabelAndLog() = + let lab = ilG.DefineLabel() + if logRefEmitCalls then printfn "let label%d_%d = ilg%d.DefineLabel()" (abs <| hash ilG) (abs <| hash lab) (abs <| hash ilG) + lab + + member x.EmitAndLog (op:OpCode) = + if logRefEmitCalls then printfn "ilg%d.Emit(OpCodes.%s)" (abs <| hash x) op.RefEmitName + x.Emit(op) + member x.EmitAndLog (op:OpCode,v:Label) = + if logRefEmitCalls then printfn "ilg%d.Emit(OpCodes.%s,label%d_%d)" (abs <| hash x) op.RefEmitName (abs <| hash x) (abs <| hash v); + x.Emit(op,v) + member x.EmitAndLog (op:OpCode,v:int16) = + if logRefEmitCalls then printfn "ilg%d.Emit(OpCodes.%s, int16 %d)" (abs <| hash x) op.RefEmitName v; + x.Emit(op,v) + member x.EmitAndLog (op:OpCode,v:int32) = + if logRefEmitCalls then printfn "ilg%d.Emit(OpCodes.%s, %d)" (abs <| hash x) op.RefEmitName v; + x.Emit(op,v) + member x.EmitAndLog (op:OpCode,v:MethodInfo) = + if logRefEmitCalls then printfn "ilg%d.Emit(OpCodes.%s, meth_%s)" (abs <| hash x) op.RefEmitName v.Name; + x.Emit(op,v) + member x.EmitAndLog (op:OpCode,v:string) = + if logRefEmitCalls then printfn "ilg%d.Emit(OpCodes.%s,\"%s\")" (abs <| hash x) op.RefEmitName v; + x.Emit(op,v) + member x.EmitAndLog (op:OpCode,v:Type) = + if logRefEmitCalls then printfn "ilg%d.Emit(OpCodes.%s, typeof<%s>)" (abs <| hash x) op.RefEmitName v.FullName; + x.Emit(op,v) + member x.EmitAndLog (op:OpCode,v:FieldInfo) = + if logRefEmitCalls then printfn "ilg%d.Emit(OpCodes.%s, field_%s)" (abs <| hash x) op.RefEmitName v.Name; + x.Emit(op,v) + member x.EmitAndLog (op:OpCode,v:ConstructorInfo) = + if logRefEmitCalls then printfn "ilg%d.Emit(OpCodes.%s,constructor_%s)" (abs <| hash x) op.RefEmitName v.DeclaringType.Name; + x.Emit(op,v) + + +//---------------------------------------------------------------------------- +// misc +//---------------------------------------------------------------------------- + +let inline flagsIf b x = if b then x else enum 0 + +module internal Zmap = + let force x m str = match Zmap.tryFind x m with Some y -> y | None -> failwithf "Zmap.force: %s: x = %+A" str x + +let equalTypes (s:Type) (t:Type) = s.Equals(t) +let equalTypeLists ss tt = List.lengthsEqAndForall2 equalTypes ss tt + +let getGenericArgumentsOfType (typT : Type) = + if typT .IsGenericType then typT .GetGenericArguments() else [| |] +let getGenericArgumentsOfMethod (methI : MethodInfo) = + if methI.IsGenericMethod then methI.GetGenericArguments() else [| |] + +let getTypeConstructor (ty: Type) = + if ty.IsGenericType then ty.GetGenericTypeDefinition() else ty + +//---------------------------------------------------------------------------- +// convAssemblyRef +//---------------------------------------------------------------------------- + +let convAssemblyRef (aref:ILAssemblyRef) = + let asmName = new System.Reflection.AssemblyName() + asmName.Name <- aref.Name; + (match aref.PublicKey with + | None -> () + | Some (PublicKey bytes) -> asmName.SetPublicKey(bytes) + | Some (PublicKeyToken bytes) -> asmName.SetPublicKeyToken(bytes)); + let setVersion (major,minor,build,rev) = + asmName.Version <- System.Version (int32 major,int32 minor,int32 build, int32 rev) + Option.iter setVersion aref.Version; + // asmName.ProcessorArchitecture <- System.Reflection.ProcessorArchitecture.MSIL; + //Option.iter (fun name -> asmName.CultureInfo <- System.Globalization.CultureInfo.CreateSpecificCulture(name)) aref.Locale; + asmName.CultureInfo <- System.Globalization.CultureInfo.InvariantCulture; + asmName + +/// The global environment +type cenv = + { ilg: ILGlobals; + generatePdb: bool; + resolvePath: (ILAssemblyRef -> Choice option) } + +/// Convert an Abstract IL type reference to Reflection.Emit System.Type value +// REVIEW: This ought to be an adequate substitute for this whole function, but it needs +// to be thoroughly tested. +// Type.GetType(tref.QualifiedName) +// [] ,name -> name +// [ns] ,name -> ns+name +// [ns;typeA;typeB],name -> ns+typeA+typeB+name +let getTRefType (cenv:cenv) (tref:ILTypeRef) = + + // If an inner nested type's name contains a space, the proper encoding is "\+" on both sides - otherwise, + // we use "+" + let rec collectPrefixParts (l : string list) (acc : string list) = + match l with + | h1 :: (h2 :: _ as tl) -> + collectPrefixParts tl + (List.append + acc + [ yield h1 + if h1.Contains(" ") || h2.Contains(" ") then + yield "\\+" + else + yield "+"]) + | h :: [] -> List.append acc [h] + | _ -> acc + + let prefix = collectPrefixParts tref.Enclosing [] |> List.fold (fun (s1 : string) (s2 : string) -> s1 + s2) "" + let qualifiedName = prefix + (if prefix <> "" then (if tref.Name.Contains(" ") then "\\+" else "+") else "") + tref.Name // e.g. Name.Space.Class+NestedClass + match tref.Scope with + | ILScopeRef.Assembly asmref -> + let assembly = + match cenv.resolvePath asmref with +#if SILVERLIGHT +#else + | Some (Choice1Of2 path) -> + FileSystem.AssemblyLoadFrom(path) +#endif + | Some (Choice2Of2 assembly) -> + assembly + | None -> + let asmName = convAssemblyRef asmref + FileSystem.AssemblyLoad(asmName) + let typT = assembly.GetType(qualifiedName) + typT |> nonNull "GetTRefType" + | ILScopeRef.Module _ + | ILScopeRef.Local _ -> + let typT = Type.GetType(qualifiedName,true) + typT |> nonNull "GetTRefType" + + + +/// The (local) emitter env (state). Some of these fields are effectively global accumulators +/// and could be placed as hash tables in the global environment. +[] +type internal emEnv = + { emTypMap : Zmap ; + emConsMap : Zmap; + emMethMap : Zmap; + emFieldMap : Zmap; + emPropMap : Zmap; + emLocals : LocalBuilder[]; + emLabels : Zmap; + emTyvars : Type[] list; // stack + emEntryPts : (TypeBuilder * string) list } + +let orderILTypeRef = ComparisonIdentity.Structural +let orderILMethodRef = ComparisonIdentity.Structural +let orderILFieldRef = ComparisonIdentity.Structural +let orderILPropertyRef = ComparisonIdentity.Structural + +let internalemEnv0 = + { emTypMap = Zmap.empty orderILTypeRef; + emConsMap = Zmap.empty orderILMethodRef; + emMethMap = Zmap.empty orderILMethodRef; + emFieldMap = Zmap.empty orderILFieldRef; + emPropMap = Zmap.empty orderILPropertyRef; + emLocals = [| |]; + emLabels = Zmap.empty codeLabelOrder; + emTyvars = []; + emEntryPts = []; } + +let envBindTypeRef emEnv (tref:ILTypeRef) (typT,typB,typeDef)= + match typT with + | null -> failwithf "binding null type in envBindTypeRef: %s\n" tref.Name; + | _ -> {emEnv with emTypMap = Zmap.add tref (typT,typB,typeDef,None) emEnv.emTypMap} + +let envUpdateCreatedTypeRef emEnv (tref:ILTypeRef) = + // The tref's TypeBuilder has been created, so we have a Type proper. + // Update the tables to include this created type (the typT held prior to this is (i think) actually (TypeBuilder :> Type). + // The (TypeBuilder :> Type) does not implement all the methods that a Type proper does. + let typT,typB,typeDef,_createdTypOpt = Zmap.force tref emEnv.emTypMap "envGetTypeDef: failed" + if typB.IsCreated() then + let typ = typB.CreateTypeAndLog() +#if SILVERLIGHT +#else + // Bug DevDev2 40395: Mono 2.6 and 2.8 has a bug where executing code that includes an array type + // match "match x with :? C[] -> ..." before the full loading of an object of type + // causes a failure when C is later loaded. One workaround for this is to attempt to do a fake allocation + // of objects. We use System.Runtime.Serialization.FormatterServices.GetUninitializedObject to do + // the fake allocation - this creates an "empty" object, even if the object doesn't have + // a constructor. It is not usable in partial trust code. + if runningOnMono && typ.IsClass && not typ.IsAbstract && not typ.IsGenericType && not typ.IsGenericTypeDefinition then + try + System.Runtime.Serialization.FormatterServices.GetUninitializedObject(typ) |> ignore + with e -> () +#endif + + {emEnv with emTypMap = Zmap.add tref (typT,typB,typeDef,Some typ) emEnv.emTypMap} + else +#if DEBUG + printf "envUpdateCreatedTypeRef: expected type to be created\n"; +#endif + emEnv + +let envGetTypT cenv emEnv preferCreated (tref:ILTypeRef) = + match Zmap.tryFind tref emEnv.emTypMap with + | Some (_typT,_typB,_typeDef,Some createdTyp) when preferCreated -> createdTyp |> nonNull "envGetTypT: null create type table?" + | Some (typT,_typB,_typeDef,_) -> typT |> nonNull "envGetTypT: null type table?" + | None -> getTRefType cenv tref + +let envBindConsRef emEnv (mref:ILMethodRef) consB = + {emEnv with emConsMap = Zmap.add mref consB emEnv.emConsMap} + +let envGetConsB emEnv (mref:ILMethodRef) = + Zmap.force mref emEnv.emConsMap "envGetConsB: failed" + +let envBindMethodRef emEnv (mref:ILMethodRef) methB = + {emEnv with emMethMap = Zmap.add mref methB emEnv.emMethMap} + +let envGetMethB emEnv (mref:ILMethodRef) = + Zmap.force mref emEnv.emMethMap "envGetMethB: failed" + +let envBindFieldRef emEnv fref fieldB = + {emEnv with emFieldMap = Zmap.add fref fieldB emEnv.emFieldMap} + +let envGetFieldB emEnv fref = + Zmap.force fref emEnv.emFieldMap "- envGetMethB: failed" + +let envBindPropRef emEnv (pref:ILPropertyRef) propB = + {emEnv with emPropMap = Zmap.add pref propB emEnv.emPropMap} + +let envGetPropB emEnv pref = + Zmap.force pref emEnv.emPropMap "- envGetPropB: failed" + +let envGetTypB emEnv (tref:ILTypeRef) = + Zmap.force tref emEnv.emTypMap "envGetTypB: failed" + |> (fun (_typT,typB,_typeDef,_createdTypOpt) -> typB) + +let envGetTypeDef emEnv (tref:ILTypeRef) = + Zmap.force tref emEnv.emTypMap "envGetTypeDef: failed" + |> (fun (_typT,_typB,typeDef,_createdTypOpt) -> typeDef) + +let envSetLocals emEnv locs = assert (emEnv.emLocals.Length = 0); // check "locals" is not yet set (scopes once only) + {emEnv with emLocals = locs} +let envGetLocal emEnv i = emEnv.emLocals.[i] // implicit bounds checking + +let envSetLabel emEnv name lab = + assert (not (Zmap.mem name emEnv.emLabels)); + {emEnv with emLabels = Zmap.add name lab emEnv.emLabels} + +let envGetLabel emEnv name = + Zmap.find name emEnv.emLabels + +let envPushTyvars emEnv typs = {emEnv with emTyvars = typs :: emEnv.emTyvars} +let envPopTyvars emEnv = {emEnv with emTyvars = List.tail emEnv.emTyvars} +let envGetTyvar emEnv u16 = + match emEnv.emTyvars with + | [] -> failwith "envGetTyvar: not scope of type vars" + | tvs::_ -> let i = int32 u16 + if i<0 || i>= Array.length tvs then + failwith (sprintf "want tyvar #%d, but only had %d tyvars" i (Array.length tvs)) + else + tvs.[i] + +let isEmittedTypeRef emEnv tref = Zmap.mem tref emEnv.emTypMap + +let envAddEntryPt emEnv mref = {emEnv with emEntryPts = mref::emEnv.emEntryPts} +let envPopEntryPts emEnv = {emEnv with emEntryPts = []},emEnv.emEntryPts + +//---------------------------------------------------------------------------- +// convCallConv +//---------------------------------------------------------------------------- + +let convCallConv (Callconv (hasThis,basic)) = + let ccA = match hasThis with ILThisConvention.Static -> CallingConventions.Standard + | ILThisConvention.InstanceExplicit -> CallingConventions.ExplicitThis + | ILThisConvention.Instance -> CallingConventions.HasThis + let ccB = match basic with ILArgConvention.Default -> enum 0 + | ILArgConvention.CDecl -> enum 0 + | ILArgConvention.StdCall -> enum 0 + | ILArgConvention.ThisCall -> enum 0 // XXX: check all these + | ILArgConvention.FastCall -> enum 0 + | ILArgConvention.VarArg -> CallingConventions.VarArgs + ccA ||| ccB + + +//---------------------------------------------------------------------------- +// convType +//---------------------------------------------------------------------------- + +let rec convTypeSpec cenv emEnv preferCreated (tspec:ILTypeSpec) = + let typT = envGetTypT cenv emEnv preferCreated tspec.TypeRef + let tyargs = ILList.map (convTypeAux cenv emEnv preferCreated) tspec.GenericArgs + match ILList.isEmpty tyargs,typT.IsGenericType with + | _ ,true -> typT.MakeGenericType(ILList.toArray tyargs) |> nonNull "convTypeSpec: generic" + | true,false -> typT |> nonNull "convTypeSpec: non generic" + | _ ,false -> failwithf "- convTypeSpec: non-generic type '%O' has type instance of length %d?" typT tyargs.Length + +and convTypeAux cenv emEnv preferCreated typ = + match typ with + | ILType.Void -> Type.GetType("System.Void",true) + | ILType.Array (shape,eltType) -> + let baseT = convTypeAux cenv emEnv preferCreated eltType |> nonNull "convType: array base" + let nDims = shape.Rank + // MakeArrayType() returns "eltType[]" + // MakeArrayType(1) returns "eltType[*]" + // MakeArrayType(2) returns "eltType[,]" + // MakeArrayType(3) returns "eltType[,,]" + // All non-equal. + if nDims=1 + then baseT.MakeArrayType() + else baseT.MakeArrayType shape.Rank + | ILType.Value tspec -> convTypeSpec cenv emEnv preferCreated tspec |> nonNull "convType: value" + | ILType.Boxed tspec -> convTypeSpec cenv emEnv preferCreated tspec |> nonNull "convType: boxed" + | ILType.Ptr eltType -> let baseT = convTypeAux cenv emEnv preferCreated eltType |> nonNull "convType: ptr eltType" + baseT.MakePointerType() |> nonNull "convType: ptr" + | ILType.Byref eltType -> let baseT = convTypeAux cenv emEnv preferCreated eltType |> nonNull "convType: byref eltType" + baseT.MakeByRefType() |> nonNull "convType: byref" + | ILType.TypeVar tv -> envGetTyvar emEnv tv |> nonNull "convType: tyvar" + // XXX: REVIEW: complete the following cases. + | ILType.FunctionPointer _callsig -> failwith "convType: fptr" + | ILType.Modified _ -> failwith "convType: modified" + +// [Bug 4063]. +// The convType functions convert AbsIL types into concrete Type values. +// The emitted types have (TypeBuilder:>Type) and (TypeBuilderInstantiation:>Type). +// These can be used to construct the concrete Type for a given AbsIL type. +// This is the convType function. +// Certain functions here, e.g. convMethodRef, convConstructorSpec assume they get the "Builders" for emitted types. +// +// The "LookupType" function (see end of file) provides AbsIL to Type lookup (post emit). +// The external use (reflection and pretty printing) requires the created Type (rather than the builder). +// convCreatedType ensures created types are used where possible. +// Note: typeBuilder.CreateType() freezes the type and makes a proper Type for the collected information. +//------ +// REVIEW: "convType becomes convCreatedType", the functions could be combined. +// If convCreatedType replaced convType functions like convMethodRef, convConstructorSpec, ... (and more?) +// will need to be fixed for emitted types to handle both TypeBuilder and later Type proper. + +/// Uses TypeBuilder/TypeBuilderInstantiation for emitted types +let convType cenv emEnv typ = convTypeAux cenv emEnv false typ + +let convTypes cenv emEnv (typs:ILTypes) = ILList.map (convType cenv emEnv) typs + +let convTypesToArray cenv emEnv (typs:ILTypes) = convTypes cenv emEnv typs |> ILList.toArray + +/// Uses the .CreateType() for emitted type (if available) +let convCreatedType cenv emEnv typ = convTypeAux cenv emEnv true typ + + +//---------------------------------------------------------------------------- +// convFieldInit +//---------------------------------------------------------------------------- + +let convFieldInit x = + match x with + | ILFieldInit.String s -> box s + | ILFieldInit.Bool bool -> box bool + | ILFieldInit.Char u16 -> box (char (int u16)) + | ILFieldInit.Int8 i8 -> box i8 + | ILFieldInit.Int16 i16 -> box i16 + | ILFieldInit.Int32 i32 -> box i32 + | ILFieldInit.Int64 i64 -> box i64 + | ILFieldInit.UInt8 u8 -> box u8 + | ILFieldInit.UInt16 u16 -> box u16 + | ILFieldInit.UInt32 u32 -> box u32 + | ILFieldInit.UInt64 u64 -> box u64 + | ILFieldInit.Single ieee32 -> box ieee32 + | ILFieldInit.Double ieee64 -> box ieee64 + | ILFieldInit.Null -> (null :> Object) + +#if SILVERLIGHT +//---------------------------------------------------------------------------- +// convAttribElem +//---------------------------------------------------------------------------- + +let rec convAttribElem cenv emEnv = function + | ILAttribElem.String (Some x) -> box x + | ILAttribElem.String None -> null + | ILAttribElem.Bool x -> box x + | ILAttribElem.Char x -> box x + | ILAttribElem.SByte x -> box x + | ILAttribElem.Int16 x -> box x + | ILAttribElem.Int32 x -> box x + | ILAttribElem.Int64 x -> box x + | ILAttribElem.Byte x -> box x + | ILAttribElem.UInt16 x -> box x + | ILAttribElem.UInt32 x -> box x + | ILAttribElem.UInt64 x -> box x + | ILAttribElem.Single x -> box x + | ILAttribElem.Double x -> box x + | ILAttribElem.Null -> null + | ILAttribElem.Type (Some t) -> box <| convCreatedType cenv emEnv t + | ILAttribElem.Type None -> null + | ILAttribElem.TypeRef (Some t) -> box <| envGetTypT cenv emEnv true t + | ILAttribElem.TypeRef None -> null + | ILAttribElem.Array (_, a) -> box [| for i in a -> convAttribElem cenv emEnv i |] + +#endif + +//---------------------------------------------------------------------------- +// Some types require hard work... +//---------------------------------------------------------------------------- + +// This is gross. TypeBuilderInstantiation should really be a public type, since we +// have to use alternative means for various Method/Field/Constructor lookups. However since +// it isn't we resort to this technique... +let TypeBuilderInstantiationT = + let ty = + if runningOnMono then + Type.GetType("System.Reflection.MonoGenericClass") + else + Type.GetType("System.Reflection.Emit.TypeBuilderInstantiation") + assert (not (isNull ty)) + ty + +let typeIsNotQueryable (typ : Type) = + (typ :? TypeBuilder) || ((typ.GetType()).Equals(TypeBuilderInstantiationT)) + +//---------------------------------------------------------------------------- +// convFieldSpec +//---------------------------------------------------------------------------- + +let queryableTypeGetField _emEnv (parentT:Type) (fref: ILFieldRef) = + parentT.GetField(fref.Name, BindingFlags.Public ||| BindingFlags.NonPublic ||| BindingFlags.Instance ||| BindingFlags.Static ) + |> nonNull "queryableTypeGetField" + +let nonQueryableTypeGetField (parentTI:Type) (fieldInfo : FieldInfo) : FieldInfo = + if parentTI.IsGenericType then TypeBuilder.GetField(parentTI,fieldInfo) else fieldInfo + + +let convFieldSpec cenv emEnv fspec = + let fref = fspec.FieldRef + let tref = fref.EnclosingTypeRef + let parentTI = convType cenv emEnv fspec.EnclosingType + if isEmittedTypeRef emEnv tref then + // NOTE: if "convType becomes convCreatedType", then handle queryable types here too. [bug 4063] (necessary? what repro?) + let fieldB = envGetFieldB emEnv fref + nonQueryableTypeGetField parentTI fieldB + else + // Prior type. + if typeIsNotQueryable parentTI then + let parentT = getTypeConstructor parentTI + let fieldInfo = queryableTypeGetField emEnv parentT fref + nonQueryableTypeGetField parentTI fieldInfo + else + queryableTypeGetField emEnv parentTI fspec.FieldRef + +//---------------------------------------------------------------------------- +// convMethodRef +//---------------------------------------------------------------------------- + +let queryableTypeGetMethodBySearch cenv emEnv parentT (mref:ILMethodRef) = + assert(not (typeIsNotQueryable(parentT))); + let cconv = (if mref.CallingConv.IsStatic then BindingFlags.Static else BindingFlags.Instance) + let methInfos = parentT.GetMethods(cconv ||| BindingFlags.Public ||| BindingFlags.NonPublic) |> Array.toList + (* First, filter on name, if unique, then binding "done" *) + let tyargTs = getGenericArgumentsOfType parentT + let methInfos = methInfos |> List.filter (fun methInfo -> methInfo.Name = mref.Name) + match methInfos with + | [methInfo] -> + methInfo + | _ -> + (* Second, type match. Note type erased (non-generic) F# code would not type match but they have unique names *) + let select (methInfo:MethodInfo) = + (* mref implied Types *) + let mtyargTIs = getGenericArgumentsOfMethod methInfo + if mtyargTIs.Length <> mref.GenericArity then false (* method generic arity mismatch *) else + let argTs,resT = + let emEnv = envPushTyvars emEnv (Array.append tyargTs mtyargTIs) + let argTs = convTypes cenv emEnv mref.ArgTypes + let resT = convType cenv emEnv mref.ReturnType + argTs,resT + + (* methInfo implied Types *) + let haveArgTs = methInfo.GetParameters() |> Array.toList |> List.map (fun param -> param.ParameterType) + + let haveResT = methInfo.ReturnType + (* check for match *) + if argTs.Length <> haveArgTs.Length then false (* method argument length mismatch *) else + let res = equalTypes resT haveResT && equalTypeLists (ILList.toList argTs) haveArgTs + res + + match List.tryFind select methInfos with + | None -> failwith "convMethodRef: could not bind to method" + | Some methInfo -> methInfo (* return MethodInfo for (generic) type's (generic) method *) + |> nonNull "convMethodRef" + +let queryableTypeGetMethod cenv emEnv parentT (mref:ILMethodRef) = + assert(not (typeIsNotQueryable(parentT))); + if mref.GenericArity = 0 then + let tyargTs = getGenericArgumentsOfType parentT + let argTs,resT = + let emEnv = envPushTyvars emEnv tyargTs + let argTs = convTypesToArray cenv emEnv mref.ArgTypes + let resT = convType cenv emEnv mref.ReturnType + argTs,resT + let stat = mref.CallingConv.IsStatic + let cconv = (if stat then BindingFlags.Static else BindingFlags.Instance) + let methInfo = + try + parentT.GetMethod(mref.Name,cconv ||| BindingFlags.Public ||| BindingFlags.NonPublic, + null, + argTs, + (null:ParameterModifier[])) + // This can fail if there is an ambiguity w.r.t. return type + with _ -> null + if (isNonNull methInfo && equalTypes resT methInfo.ReturnType) then + methInfo + else + queryableTypeGetMethodBySearch cenv emEnv parentT mref + else + queryableTypeGetMethodBySearch cenv emEnv parentT mref + +let nonQueryableTypeGetMethod (parentTI:Type) (methInfo : MethodInfo) : MethodInfo = + if (parentTI.IsGenericType && + not (equalTypes parentTI (getTypeConstructor parentTI))) + then TypeBuilder.GetMethod(parentTI,methInfo ) + else methInfo + +let convMethodRef cenv emEnv (parentTI:Type) (mref:ILMethodRef) = + let parent = mref.EnclosingTypeRef + if isEmittedTypeRef emEnv parent then + // NOTE: if "convType becomes convCreatedType", then handle queryable types here too. [bug 4063] + // Emitted type, can get fully generic MethodBuilder from env. + let methB = envGetMethB emEnv mref + nonQueryableTypeGetMethod parentTI methB + |> nonNull "convMethodRef (emitted)" + else + // Prior type. + if typeIsNotQueryable parentTI then + let parentT = getTypeConstructor parentTI + let methInfo = queryableTypeGetMethod cenv emEnv parentT mref + nonQueryableTypeGetMethod parentTI methInfo + else + queryableTypeGetMethod cenv emEnv parentTI mref + +//---------------------------------------------------------------------------- +// convMethodSpec +//---------------------------------------------------------------------------- + +let convMethodSpec cenv emEnv (mspec:ILMethodSpec) = + let typT = convType cenv emEnv mspec.EnclosingType (* (instanced) parent Type *) + let methInfo = convMethodRef cenv emEnv typT mspec.MethodRef (* (generic) method of (generic) parent *) + let methInfo = + if mspec.GenericArgs.Length = 0 then + methInfo // non generic + else + let minstTs = convTypesToArray cenv emEnv mspec.GenericArgs + let methInfo = methInfo.MakeGenericMethod minstTs // instantiate method + methInfo + methInfo |> nonNull "convMethodSpec" + +//---------------------------------------------------------------------------- +// - QueryableTypeGetConstructors: get a constructor on a non-TypeBuilder type +//---------------------------------------------------------------------------- + +let queryableTypeGetConstructor cenv emEnv (parentT:Type) (mref:ILMethodRef) = + let tyargTs = getGenericArgumentsOfType parentT + let reqArgTs = + let emEnv = envPushTyvars emEnv tyargTs + convTypesToArray cenv emEnv mref.ArgTypes + parentT.GetConstructor(BindingFlags.Public ||| BindingFlags.NonPublic ||| BindingFlags.Instance,null, reqArgTs,null) + +let nonQueryableTypeGetConstructor (parentTI:Type) (consInfo : ConstructorInfo) : ConstructorInfo = + if parentTI.IsGenericType then TypeBuilder.GetConstructor(parentTI,consInfo) else consInfo + +//---------------------------------------------------------------------------- +// convConstructorSpec (like convMethodSpec) +//---------------------------------------------------------------------------- + +let convConstructorSpec cenv emEnv (mspec:ILMethodSpec) = + let mref = mspec.MethodRef + let parentTI = convType cenv emEnv mspec.EnclosingType + if isEmittedTypeRef emEnv mref.EnclosingTypeRef then + // NOTE: if "convType becomes convCreatedType", then handle queryable types here too. [bug 4063] + let consB = envGetConsB emEnv mref + nonQueryableTypeGetConstructor parentTI consB |> nonNull "convConstructorSpec: (emitted)" + else + // Prior type. + if typeIsNotQueryable parentTI then + let parentT = getTypeConstructor parentTI + let ctorG = queryableTypeGetConstructor cenv emEnv parentT mref + nonQueryableTypeGetConstructor parentTI ctorG + else + queryableTypeGetConstructor cenv emEnv parentTI mref + +//---------------------------------------------------------------------------- +// emitLabelMark, defineLabel +//---------------------------------------------------------------------------- + +let emitLabelMark emEnv (ilG:ILGenerator) (label:ILCodeLabel) = + let lab = envGetLabel emEnv label + ilG.MarkLabelAndLog(lab) + + +let defineLabel (ilG:ILGenerator) emEnv (label:ILCodeLabel) = + let lab = ilG.DefineLabelAndLog() + envSetLabel emEnv label lab + + +//---------------------------------------------------------------------------- +// emitInstr cenv - I_arith +//---------------------------------------------------------------------------- + +///Emit comparison instructions +let emitInstrCompare emEnv (ilG:ILGenerator) comp targ = + match comp with + | BI_beq -> ilG.EmitAndLog(OpCodes.Beq,envGetLabel emEnv targ) + | BI_bge -> ilG.EmitAndLog(OpCodes.Bge ,envGetLabel emEnv targ) + | BI_bge_un -> ilG.EmitAndLog(OpCodes.Bge_Un ,envGetLabel emEnv targ) + | BI_bgt -> ilG.EmitAndLog(OpCodes.Bgt ,envGetLabel emEnv targ) + | BI_bgt_un -> ilG.EmitAndLog(OpCodes.Bgt_Un ,envGetLabel emEnv targ) + | BI_ble -> ilG.EmitAndLog(OpCodes.Ble ,envGetLabel emEnv targ) + | BI_ble_un -> ilG.EmitAndLog(OpCodes.Ble_Un ,envGetLabel emEnv targ) + | BI_blt -> ilG.EmitAndLog(OpCodes.Blt ,envGetLabel emEnv targ) + | BI_blt_un -> ilG.EmitAndLog(OpCodes.Blt_Un ,envGetLabel emEnv targ) + | BI_bne_un -> ilG.EmitAndLog(OpCodes.Bne_Un ,envGetLabel emEnv targ) + | BI_brfalse -> ilG.EmitAndLog(OpCodes.Brfalse,envGetLabel emEnv targ) + | BI_brtrue -> ilG.EmitAndLog(OpCodes.Brtrue ,envGetLabel emEnv targ) + + +/// Emit the volatile. prefix +let emitInstrVolatile (ilG:ILGenerator) = function + | Volatile -> ilG.EmitAndLog(OpCodes.Volatile) + | Nonvolatile -> () + +/// Emit the align. prefix +let emitInstrAlign (ilG:ILGenerator) = function + | Aligned -> () + | Unaligned1 -> ilG.Emit(OpCodes.Unaligned,1L) // note: doc says use "long" overload! + | Unaligned2 -> ilG.Emit(OpCodes.Unaligned,2L) + | Unaligned4 -> ilG.Emit(OpCodes.Unaligned,3L) + +/// Emit the tail. prefix if necessary +let emitInstrTail (ilG:ILGenerator) tail emitTheCall = + match tail with + | Tailcall -> ilG.EmitAndLog(OpCodes.Tailcall); emitTheCall(); ilG.EmitAndLog(OpCodes.Ret) + | Normalcall -> emitTheCall() + +let emitInstrNewobj cenv emEnv (ilG:ILGenerator) mspec varargs = + match varargs with + | None -> ilG.EmitAndLog(OpCodes.Newobj,convConstructorSpec cenv emEnv mspec) + | Some _vartyps -> failwith "emit: pending new varargs" // XXX - gap + +let emitSilverlightCheck (ilG:ILGenerator) = +#if SILVERLIGHT + if Microsoft.FSharp.Silverlight.EmitInterruptChecks then + let methWL = typeof.GetMethod("CheckInterrupt", BindingFlags.Static ||| BindingFlags.Public ||| BindingFlags.NonPublic, null, [||], null) + ilG.EmitCall(OpCodes.Call, methWL, [||]) +#else + ignore ilG + () +#endif + +let emitInstrCall cenv emEnv (ilG:ILGenerator) opCall tail (mspec:ILMethodSpec) varargs = + emitInstrTail ilG tail (fun () -> + if mspec.MethodRef.Name = ".ctor" || mspec.MethodRef.Name = ".cctor" then + let cinfo = convConstructorSpec cenv emEnv mspec + match varargs with + | None -> ilG.EmitAndLog (opCall,cinfo) + | Some _vartyps -> failwith "emitInstrCall: .ctor and varargs" + else + let minfo = convMethodSpec cenv emEnv mspec +#if SILVERLIGHT + let fullName = minfo.DeclaringType.FullName + "." + minfo.Name + let minfo = + if fullName = "System.Console.WriteLine" || fullName = "System.Console.Write" then + let args = minfo.GetParameters() |> Array.map (fun x -> x.ParameterType) + typeof.GetMethod(minfo.Name, BindingFlags.Static ||| BindingFlags.Public ||| BindingFlags.NonPublic, null, args, null) + else minfo +#endif + match varargs with + | None -> ilG.EmitAndLog(opCall,minfo) + | Some vartyps -> ilG.EmitCall (opCall,minfo,convTypesToArray cenv emEnv vartyps) + ) + +let getGenericMethodDefinition q (ty:Type) = + let gminfo = + match q with + | Quotations.Patterns.Call(_,minfo,_) -> minfo.GetGenericMethodDefinition() + | _ -> failwith "unexpected failure decoding quotation at ilreflect startup" + gminfo.MakeGenericMethod [| ty |] + +let getArrayMethInfo n ty = + match n with + | 2 -> getGenericMethodDefinition <@@ LanguagePrimitives.IntrinsicFunctions.GetArray2D null 0 0 @@> ty + | 3 -> getGenericMethodDefinition <@@ LanguagePrimitives.IntrinsicFunctions.GetArray3D null 0 0 0 @@> ty + | 4 -> getGenericMethodDefinition <@@ LanguagePrimitives.IntrinsicFunctions.GetArray4D null 0 0 0 0 @@> ty + | _ -> invalidArg "n" "not expecting array dimension > 4" + +let setArrayMethInfo n ty = + match n with + | 2 -> getGenericMethodDefinition <@@ LanguagePrimitives.IntrinsicFunctions.SetArray2D null 0 0 0 @@> ty + | 3 -> getGenericMethodDefinition <@@ LanguagePrimitives.IntrinsicFunctions.SetArray3D null 0 0 0 0 @@> ty + | 4 -> getGenericMethodDefinition <@@ LanguagePrimitives.IntrinsicFunctions.SetArray4D null 0 0 0 0 0 @@> ty + | _ -> invalidArg "n" "not expecting array dimension > 4" + + +//---------------------------------------------------------------------------- +// emitInstr cenv +//---------------------------------------------------------------------------- + +let rec emitInstr cenv (modB : ModuleBuilder) emEnv (ilG:ILGenerator) instr = + match instr with + | AI_add -> ilG.EmitAndLog(OpCodes.Add) + | AI_add_ovf -> ilG.EmitAndLog(OpCodes.Add_Ovf) + | AI_add_ovf_un -> ilG.EmitAndLog(OpCodes.Add_Ovf_Un) + | AI_and -> ilG.EmitAndLog(OpCodes.And) + | AI_div -> ilG.EmitAndLog(OpCodes.Div) + | AI_div_un -> ilG.EmitAndLog(OpCodes.Div_Un) + | AI_ceq -> ilG.EmitAndLog(OpCodes.Ceq) + | AI_cgt -> ilG.EmitAndLog(OpCodes.Cgt) + | AI_cgt_un -> ilG.EmitAndLog(OpCodes.Cgt_Un) + | AI_clt -> ilG.EmitAndLog(OpCodes.Clt) + | AI_clt_un -> ilG.EmitAndLog(OpCodes.Clt_Un) + (* conversion *) + | AI_conv dt -> (match dt with + | DT_I -> ilG.EmitAndLog(OpCodes.Conv_I) + | DT_I1 -> ilG.EmitAndLog(OpCodes.Conv_I1) + | DT_I2 -> ilG.EmitAndLog(OpCodes.Conv_I2) + | DT_I4 -> ilG.EmitAndLog(OpCodes.Conv_I4) + | DT_I8 -> ilG.EmitAndLog(OpCodes.Conv_I8) + | DT_U -> ilG.EmitAndLog(OpCodes.Conv_U) + | DT_U1 -> ilG.EmitAndLog(OpCodes.Conv_U1) + | DT_U2 -> ilG.EmitAndLog(OpCodes.Conv_U2) + | DT_U4 -> ilG.EmitAndLog(OpCodes.Conv_U4) + | DT_U8 -> ilG.EmitAndLog(OpCodes.Conv_U8) + | DT_R -> ilG.EmitAndLog(OpCodes.Conv_R_Un) + | DT_R4 -> ilG.EmitAndLog(OpCodes.Conv_R4) + | DT_R8 -> ilG.EmitAndLog(OpCodes.Conv_R8) + | DT_REF -> failwith "AI_conv DT_REF?" // XXX - check + ) + (* conversion - ovf checks *) + | AI_conv_ovf dt -> (match dt with + | DT_I -> ilG.EmitAndLog(OpCodes.Conv_Ovf_I) + | DT_I1 -> ilG.EmitAndLog(OpCodes.Conv_Ovf_I1) + | DT_I2 -> ilG.EmitAndLog(OpCodes.Conv_Ovf_I2) + | DT_I4 -> ilG.EmitAndLog(OpCodes.Conv_Ovf_I4) + | DT_I8 -> ilG.EmitAndLog(OpCodes.Conv_Ovf_I8) + | DT_U -> ilG.EmitAndLog(OpCodes.Conv_Ovf_U) + | DT_U1 -> ilG.EmitAndLog(OpCodes.Conv_Ovf_U1) + | DT_U2 -> ilG.EmitAndLog(OpCodes.Conv_Ovf_U2) + | DT_U4 -> ilG.EmitAndLog(OpCodes.Conv_Ovf_U4) + | DT_U8 -> ilG.EmitAndLog(OpCodes.Conv_Ovf_U8) + | DT_R -> failwith "AI_conv_ovf DT_R?" // XXX - check + | DT_R4 -> failwith "AI_conv_ovf DT_R4?" // XXX - check + | DT_R8 -> failwith "AI_conv_ovf DT_R8?" // XXX - check + | DT_REF -> failwith "AI_conv_ovf DT_REF?" // XXX - check + ) + (* conversion - ovf checks and unsigned *) + | AI_conv_ovf_un dt -> (match dt with + | DT_I -> ilG.EmitAndLog(OpCodes.Conv_Ovf_I_Un) + | DT_I1 -> ilG.EmitAndLog(OpCodes.Conv_Ovf_I1_Un) + | DT_I2 -> ilG.EmitAndLog(OpCodes.Conv_Ovf_I2_Un) + | DT_I4 -> ilG.EmitAndLog(OpCodes.Conv_Ovf_I4_Un) + | DT_I8 -> ilG.EmitAndLog(OpCodes.Conv_Ovf_I8_Un) + | DT_U -> ilG.EmitAndLog(OpCodes.Conv_Ovf_U_Un) + | DT_U1 -> ilG.EmitAndLog(OpCodes.Conv_Ovf_U1_Un) + | DT_U2 -> ilG.EmitAndLog(OpCodes.Conv_Ovf_U2_Un) + | DT_U4 -> ilG.EmitAndLog(OpCodes.Conv_Ovf_U4_Un) + | DT_U8 -> ilG.EmitAndLog(OpCodes.Conv_Ovf_U8_Un) + | DT_R -> failwith "AI_conv_ovf_un DT_R?" // XXX - check + | DT_R4 -> failwith "AI_conv_ovf_un DT_R4?" // XXX - check + | DT_R8 -> failwith "AI_conv_ovf_un DT_R8?" // XXX - check + | DT_REF -> failwith "AI_conv_ovf_un DT_REF?" // XXX - check + ) + | AI_mul -> ilG.EmitAndLog(OpCodes.Mul) + | AI_mul_ovf -> ilG.EmitAndLog(OpCodes.Mul_Ovf) + | AI_mul_ovf_un -> ilG.EmitAndLog(OpCodes.Mul_Ovf_Un) + | AI_rem -> ilG.EmitAndLog(OpCodes.Rem) + | AI_rem_un -> ilG.EmitAndLog(OpCodes.Rem_Un) + | AI_shl -> ilG.EmitAndLog(OpCodes.Shl) + | AI_shr -> ilG.EmitAndLog(OpCodes.Shr) + | AI_shr_un -> ilG.EmitAndLog(OpCodes.Shr_Un) + | AI_sub -> ilG.EmitAndLog(OpCodes.Sub) + | AI_sub_ovf -> ilG.EmitAndLog(OpCodes.Sub_Ovf) + | AI_sub_ovf_un -> ilG.EmitAndLog(OpCodes.Sub_Ovf_Un) + | AI_xor -> ilG.EmitAndLog(OpCodes.Xor) + | AI_or -> ilG.EmitAndLog(OpCodes.Or) + | AI_neg -> ilG.EmitAndLog(OpCodes.Neg) + | AI_not -> ilG.EmitAndLog(OpCodes.Not) + | AI_ldnull -> ilG.EmitAndLog(OpCodes.Ldnull) + | AI_dup -> ilG.EmitAndLog(OpCodes.Dup) + | AI_pop -> ilG.EmitAndLog(OpCodes.Pop) + | AI_ckfinite -> ilG.EmitAndLog(OpCodes.Ckfinite) + | AI_nop -> ilG.EmitAndLog(OpCodes.Nop) + | AI_ldc (DT_I4,ILConst.I4 i32) -> ilG.EmitAndLog(OpCodes.Ldc_I4,i32) + | AI_ldc (DT_I8,ILConst.I8 i64) -> ilG.Emit(OpCodes.Ldc_I8,i64) + | AI_ldc (DT_R4,ILConst.R4 r32) -> ilG.Emit(OpCodes.Ldc_R4,r32) + | AI_ldc (DT_R8,ILConst.R8 r64) -> ilG.Emit(OpCodes.Ldc_R8,r64) + | AI_ldc (_ ,_ ) -> failwith "emitInstrI_arith (AI_ldc (typ,const)) iltyped" + | I_ldarg u16 -> ilG.EmitAndLog(OpCodes.Ldarg ,int16 u16) + | I_ldarga u16 -> ilG.EmitAndLog(OpCodes.Ldarga,int16 u16) + | I_ldind (align,vol,dt) -> emitInstrAlign ilG align; + emitInstrVolatile ilG vol; + (match dt with + | DT_I -> ilG.EmitAndLog(OpCodes.Ldind_I) + | DT_I1 -> ilG.EmitAndLog(OpCodes.Ldind_I1) + | DT_I2 -> ilG.EmitAndLog(OpCodes.Ldind_I2) + | DT_I4 -> ilG.EmitAndLog(OpCodes.Ldind_I4) + | DT_I8 -> ilG.EmitAndLog(OpCodes.Ldind_I8) + | DT_R -> failwith "emitInstr cenv: ldind R" + | DT_R4 -> ilG.EmitAndLog(OpCodes.Ldind_R4) + | DT_R8 -> ilG.EmitAndLog(OpCodes.Ldind_R8) + | DT_U -> failwith "emitInstr cenv: ldind U" + | DT_U1 -> ilG.EmitAndLog(OpCodes.Ldind_U1) + | DT_U2 -> ilG.EmitAndLog(OpCodes.Ldind_U2) + | DT_U4 -> ilG.EmitAndLog(OpCodes.Ldind_U4) + | DT_U8 -> failwith "emitInstr cenv: ldind U8" + | DT_REF -> ilG.EmitAndLog(OpCodes.Ldind_Ref)) + | I_ldloc u16 -> ilG.EmitAndLog(OpCodes.Ldloc ,int16 u16) + | I_ldloca u16 -> ilG.EmitAndLog(OpCodes.Ldloca,int16 u16) + | I_starg u16 -> ilG.EmitAndLog(OpCodes.Starg ,int16 u16) + | I_stind (align,vol,dt) -> emitInstrAlign ilG align; + emitInstrVolatile ilG vol; + (match dt with + | DT_I -> ilG.EmitAndLog(OpCodes.Stind_I) + | DT_I1 -> ilG.EmitAndLog(OpCodes.Stind_I1) + | DT_I2 -> ilG.EmitAndLog(OpCodes.Stind_I2) + | DT_I4 -> ilG.EmitAndLog(OpCodes.Stind_I4) + | DT_I8 -> ilG.EmitAndLog(OpCodes.Stind_I8) + | DT_R -> failwith "emitInstr cenv: stind R" + | DT_R4 -> ilG.EmitAndLog(OpCodes.Stind_R4) + | DT_R8 -> ilG.EmitAndLog(OpCodes.Stind_R8) + | DT_U -> ilG.EmitAndLog(OpCodes.Stind_I) // NOTE: unsigned -> int conversion + | DT_U1 -> ilG.EmitAndLog(OpCodes.Stind_I1) // NOTE: follows code ilwrite.fs + | DT_U2 -> ilG.EmitAndLog(OpCodes.Stind_I2) // NOTE: is it ok? + | DT_U4 -> ilG.EmitAndLog(OpCodes.Stind_I4) // NOTE: it is generated by bytearray tests + | DT_U8 -> ilG.EmitAndLog(OpCodes.Stind_I8) // NOTE: unsigned -> int conversion + | DT_REF -> ilG.EmitAndLog(OpCodes.Stind_Ref)) + | I_stloc u16 -> ilG.EmitAndLog(OpCodes.Stloc,int16 u16) + | I_br _ -> () + | I_jmp mspec -> ilG.EmitAndLog(OpCodes.Jmp,convMethodSpec cenv emEnv mspec) + | I_brcmp (comp,targ,_) -> emitInstrCompare emEnv ilG comp targ + | I_switch (labels,_) -> ilG.Emit(OpCodes.Switch,Array.ofList (List.map (envGetLabel emEnv) labels)); + | I_ret -> ilG.EmitAndLog(OpCodes.Ret) + | I_call (tail,mspec,varargs) -> emitSilverlightCheck ilG + emitInstrCall cenv emEnv ilG OpCodes.Call tail mspec varargs + | I_callvirt (tail,mspec,varargs) -> emitSilverlightCheck ilG + emitInstrCall cenv emEnv ilG OpCodes.Callvirt tail mspec varargs + | I_callconstraint (tail,typ,mspec,varargs) -> ilG.Emit(OpCodes.Constrained,convType cenv emEnv typ); + emitInstrCall cenv emEnv ilG OpCodes.Callvirt tail mspec varargs +#if SILVERLIGHT + | I_calli (tail,_callsig,None) -> emitInstrTail ilG tail (fun () -> ()) + | I_calli (tail,_callsig,Some _vartyps) -> emitInstrTail ilG tail (fun () -> ()) +#else + + | I_calli (tail,callsig,None) -> emitInstrTail ilG tail (fun () -> + ilG.EmitCalli(OpCodes.Calli, + convCallConv callsig.CallingConv, + convType cenv emEnv callsig.ReturnType, + convTypesToArray cenv emEnv callsig.ArgTypes, + Unchecked.defaultof)) + | I_calli (tail,callsig,Some vartyps) -> emitInstrTail ilG tail (fun () -> + ilG.EmitCalli(OpCodes.Calli, + convCallConv callsig.CallingConv, + convType cenv emEnv callsig.ReturnType, + convTypesToArray cenv emEnv callsig.ArgTypes, + convTypesToArray cenv emEnv vartyps)) +#endif + | I_ldftn mspec -> ilG.EmitAndLog(OpCodes.Ldftn,convMethodSpec cenv emEnv mspec) + | I_newobj (mspec,varargs) -> emitInstrNewobj cenv emEnv ilG mspec varargs + | I_throw -> ilG.EmitAndLog(OpCodes.Throw) + | I_endfinally -> ilG.EmitAndLog(OpCodes.Endfinally) (* capitalization! *) + | I_endfilter -> () (* ilG.EmitAndLog(OpCodes.Endfilter) *) + | I_leave label -> ilG.EmitAndLog(OpCodes.Leave,envGetLabel emEnv label) + | I_ldsfld (vol,fspec) -> emitInstrVolatile ilG vol; ilG.EmitAndLog(OpCodes.Ldsfld ,convFieldSpec cenv emEnv fspec) + | I_ldfld (align,vol,fspec) -> emitInstrAlign ilG align; emitInstrVolatile ilG vol; ilG.EmitAndLog(OpCodes.Ldfld ,convFieldSpec cenv emEnv fspec) + | I_ldsflda fspec -> ilG.EmitAndLog(OpCodes.Ldsflda,convFieldSpec cenv emEnv fspec) + | I_ldflda fspec -> ilG.EmitAndLog(OpCodes.Ldflda ,convFieldSpec cenv emEnv fspec) + | I_stsfld (vol,fspec) -> emitInstrVolatile ilG vol; ilG.EmitAndLog(OpCodes.Stsfld ,convFieldSpec cenv emEnv fspec) + | I_stfld (align,vol,fspec) -> emitInstrAlign ilG align; emitInstrVolatile ilG vol; ilG.EmitAndLog(OpCodes.Stfld ,convFieldSpec cenv emEnv fspec) + | I_ldstr s -> ilG.EmitAndLog(OpCodes.Ldstr ,s) + | I_isinst typ -> ilG.EmitAndLog(OpCodes.Isinst ,convType cenv emEnv typ) + | I_castclass typ -> ilG.EmitAndLog(OpCodes.Castclass,convType cenv emEnv typ) + | I_ldtoken (ILToken.ILType typ) -> ilG.EmitAndLog(OpCodes.Ldtoken ,convType cenv emEnv typ) + | I_ldtoken (ILToken.ILMethod mspec) -> ilG.EmitAndLog(OpCodes.Ldtoken ,convMethodSpec cenv emEnv mspec) + | I_ldtoken (ILToken.ILField fspec) -> ilG.EmitAndLog(OpCodes.Ldtoken ,convFieldSpec cenv emEnv fspec) + | I_ldvirtftn mspec -> ilG.EmitAndLog(OpCodes.Ldvirtftn,convMethodSpec cenv emEnv mspec) + (* Value type instructions *) + | I_cpobj typ -> ilG.EmitAndLog(OpCodes.Cpobj ,convType cenv emEnv typ) + | I_initobj typ -> ilG.EmitAndLog(OpCodes.Initobj ,convType cenv emEnv typ) + | I_ldobj (align,vol,typ) -> emitInstrAlign ilG align; emitInstrVolatile ilG vol; ilG.EmitAndLog(OpCodes.Ldobj ,convType cenv emEnv typ) + | I_stobj (align,vol,typ) -> emitInstrAlign ilG align; emitInstrVolatile ilG vol; ilG.EmitAndLog(OpCodes.Stobj ,convType cenv emEnv typ) + | I_box typ -> ilG.EmitAndLog(OpCodes.Box ,convType cenv emEnv typ) + | I_unbox typ -> ilG.EmitAndLog(OpCodes.Unbox ,convType cenv emEnv typ) + | I_unbox_any typ -> ilG.EmitAndLog(OpCodes.Unbox_Any,convType cenv emEnv typ) + | I_sizeof typ -> ilG.EmitAndLog(OpCodes.Sizeof ,convType cenv emEnv typ) + // Generalized array instructions. + // In AbsIL these instructions include + // both the single-dimensional variants (with ILArrayShape == ILArrayShape.SingleDimensional) + // and calls to the "special" multi-dimensional "methods" such as + // newobj void string[,]::.ctor(int32, int32) + // call string string[,]::Get(int32, int32) + // call string& string[,]::Address(int32, int32) + // call void string[,]::Set(int32, int32,string) + // The IL reader transforms calls of this form to the corresponding + // generalized instruction with the corresponding ILArrayShape + // argument. This is done to simplify the IL and make it more uniform. + // The IL writer then reverses this when emitting the binary. + | I_ldelem dt -> (match dt with + | DT_I -> ilG.EmitAndLog(OpCodes.Ldelem_I) + | DT_I1 -> ilG.EmitAndLog(OpCodes.Ldelem_I1) + | DT_I2 -> ilG.EmitAndLog(OpCodes.Ldelem_I2) + | DT_I4 -> ilG.EmitAndLog(OpCodes.Ldelem_I4) + | DT_I8 -> ilG.EmitAndLog(OpCodes.Ldelem_I8) + | DT_R -> failwith "emitInstr cenv: ldelem R" + | DT_R4 -> ilG.EmitAndLog(OpCodes.Ldelem_R4) + | DT_R8 -> ilG.EmitAndLog(OpCodes.Ldelem_R8) + | DT_U -> failwith "emitInstr cenv: ldelem U" + | DT_U1 -> ilG.EmitAndLog(OpCodes.Ldelem_U1) + | DT_U2 -> ilG.EmitAndLog(OpCodes.Ldelem_U2) + | DT_U4 -> ilG.EmitAndLog(OpCodes.Ldelem_U4) + | DT_U8 -> failwith "emitInstr cenv: ldelem U8" + | DT_REF -> ilG.EmitAndLog(OpCodes.Ldelem_Ref)) + | I_stelem dt -> (match dt with + | DT_I -> ilG.EmitAndLog(OpCodes.Stelem_I) + | DT_I1 -> ilG.EmitAndLog(OpCodes.Stelem_I1) + | DT_I2 -> ilG.EmitAndLog(OpCodes.Stelem_I2) + | DT_I4 -> ilG.EmitAndLog(OpCodes.Stelem_I4) + | DT_I8 -> ilG.EmitAndLog(OpCodes.Stelem_I8) + | DT_R -> failwith "emitInstr cenv: stelem R" + | DT_R4 -> ilG.EmitAndLog(OpCodes.Stelem_R4) + | DT_R8 -> ilG.EmitAndLog(OpCodes.Stelem_R8) + | DT_U -> failwith "emitInstr cenv: stelem U" + | DT_U1 -> failwith "emitInstr cenv: stelem U1" + | DT_U2 -> failwith "emitInstr cenv: stelem U2" + | DT_U4 -> failwith "emitInstr cenv: stelem U4" + | DT_U8 -> failwith "emitInstr cenv: stelem U8" + | DT_REF -> ilG.EmitAndLog(OpCodes.Stelem_Ref)) + | I_ldelema (ro,_isNativePtr,shape,typ) -> + if (ro = ReadonlyAddress) then ilG.EmitAndLog(OpCodes.Readonly); + if (shape = ILArrayShape.SingleDimensional) + then ilG.EmitAndLog(OpCodes.Ldelema,convType cenv emEnv typ) + else + let aty = convType cenv emEnv (ILType.Array(shape,typ)) + let ety = aty.GetElementType() + let rty = ety.MakeByRefType() + let meth = modB.GetArrayMethodAndLog(aty,"Address",System.Reflection.CallingConventions.HasThis,rty,Array.create shape.Rank (typeof) ) + ilG.EmitAndLog(OpCodes.Call,meth) + | I_ldelem_any (shape,typ) -> + if (shape = ILArrayShape.SingleDimensional) then ilG.EmitAndLog(OpCodes.Ldelem,convType cenv emEnv typ) + else + let aty = convType cenv emEnv (ILType.Array(shape,typ)) + let ety = aty.GetElementType() + let meth = + // See bug 6254: Mono has a bug in reflection-emit dynamic calls to the "Get", "Address" or "Set" methods on arrays + if runningOnMono then + getArrayMethInfo shape.Rank ety + else + modB.GetArrayMethodAndLog(aty,"Get",System.Reflection.CallingConventions.HasThis,ety,Array.create shape.Rank (typeof) ) + ilG.EmitAndLog(OpCodes.Call,meth) + + | I_stelem_any (shape,typ) -> + if (shape = ILArrayShape.SingleDimensional) then ilG.EmitAndLog(OpCodes.Stelem,convType cenv emEnv typ) + else + let aty = convType cenv emEnv (ILType.Array(shape,typ)) + let ety = aty.GetElementType() + let meth = + // See bug 6254: Mono has a bug in reflection-emit dynamic calls to the "Get", "Address" or "Set" methods on arrays + if runningOnMono then + setArrayMethInfo shape.Rank ety + else + modB.GetArrayMethodAndLog(aty,"Set",System.Reflection.CallingConventions.HasThis,(null:Type),Array.append (Array.create shape.Rank (typeof)) (Array.ofList [ ety ])) + ilG.EmitAndLog(OpCodes.Call,meth) + + | I_newarr (shape,typ) -> + if (shape = ILArrayShape.SingleDimensional) + then ilG.EmitAndLog(OpCodes.Newarr,convType cenv emEnv typ) + else + let aty = convType cenv emEnv (ILType.Array(shape,typ)) + let meth = modB.GetArrayMethodAndLog(aty,".ctor",System.Reflection.CallingConventions.HasThis,(null:Type),Array.create shape.Rank (typeof)) + ilG.EmitAndLog(OpCodes.Newobj,meth) + | I_ldlen -> ilG.EmitAndLog(OpCodes.Ldlen) + | I_mkrefany typ -> ilG.EmitAndLog(OpCodes.Mkrefany,convType cenv emEnv typ) + | I_refanytype -> ilG.EmitAndLog(OpCodes.Refanytype) + | I_refanyval typ -> ilG.EmitAndLog(OpCodes.Refanyval,convType cenv emEnv typ) + | I_rethrow -> ilG.EmitAndLog(OpCodes.Rethrow) + | I_break -> ilG.EmitAndLog(OpCodes.Break) + | I_seqpoint src -> + if cenv.generatePdb && not (src.Document.File.EndsWith("stdin",StringComparison.Ordinal)) then + let guid x = match x with None -> Guid.Empty | Some g -> Guid(g:byte[]) in + let symDoc = modB.DefineDocumentAndLog(src.Document.File, guid src.Document.Language, guid src.Document.Vendor, guid src.Document.DocumentType) + ilG.MarkSequencePointAndLog(symDoc, src.Line, src.Column, src.EndLine, src.EndColumn) + | I_arglist -> ilG.EmitAndLog(OpCodes.Arglist) + | I_localloc -> ilG.EmitAndLog(OpCodes.Localloc) + | I_cpblk (align,vol) -> emitInstrAlign ilG align; + emitInstrVolatile ilG vol; + ilG.EmitAndLog(OpCodes.Cpblk) + | I_initblk (align,vol) -> emitInstrAlign ilG align; + emitInstrVolatile ilG vol; + ilG.EmitAndLog(OpCodes.Initblk) + | EI_ldlen_multi (_,m) -> + emitInstr cenv modB emEnv ilG (mkLdcInt32 m); + emitInstr cenv modB emEnv ilG (mkNormalCall(mkILNonGenericMethSpecInTy(cenv.ilg.typ_Array, ILCallingConv.Instance, "GetLength", [cenv.ilg.typ_int32], cenv.ilg.typ_int32))) + | I_other e when isIlxExtInstr e -> Printf.failwithf "the ILX instruction %s cannot be emitted" (e.ToString()) + | i -> Printf.failwithf "the IL instruction %s cannot be emitted" (i.ToString()) + +//---------------------------------------------------------------------------- +// emitCode +//---------------------------------------------------------------------------- + +let emitBasicBlock cenv modB emEnv (ilG:ILGenerator) bblock = + emitLabelMark emEnv ilG bblock.Label; + Array.iter (emitInstr cenv modB emEnv ilG) bblock.Instructions; + +let emitCode cenv modB emEnv (ilG:ILGenerator) code = + // pre define labels pending determining their actual marks + let labels = labelsOfCode code + let emEnv = List.fold (defineLabel ilG) emEnv labels + + let emitSusp susp = + match susp with + | Some dest -> ilG.EmitAndLog(OpCodes.Br, envGetLabel emEnv dest) + | _ -> () + + let commitSusp susp lab = + match susp with + | Some dest when dest <> lab -> emitSusp susp + | _ -> () + + let rec emitter susp code = + match code with + | ILBasicBlock bblock -> + commitSusp susp bblock.Label; + emitBasicBlock cenv modB emEnv ilG bblock + bblock.Fallthrough + | GroupBlock (_localDebugInfos,codes)-> + List.fold emitter susp codes + | RestrictBlock (_labels,code) -> + code |> emitter susp (* restrictions ignorable: code_labels unique *) + | TryBlock (code,seh) -> + commitSusp susp (uniqueEntryOfCode code); + let _endExBlockL = ilG.BeginExceptionBlockAndLog() + code |> emitter None |> emitSusp + //ilG.MarkLabel endExBlockL; + emitHandler seh; + ilG.EndExceptionBlockAndLog(); + None + and emitHandler seh = + match seh with + | FaultBlock code -> + ilG.BeginFaultBlockAndLog(); + emitter None code |> emitSusp + | FinallyBlock code -> + ilG.BeginFinallyBlockAndLog(); + emitter None code |> emitSusp + | FilterCatchBlock fcodes -> + let emitFilter (filter,code) = + match filter with + | TypeFilter typ -> + ilG.BeginCatchBlockAndLog (convType cenv emEnv typ); + emitter None code |> emitSusp + + | CodeFilter test -> + ilG.BeginExceptFilterBlockAndLog(); + emitter None test |> emitSusp + ilG.BeginCatchBlockAndLog null; + emitter None code |> emitSusp + fcodes |> List.iter emitFilter + let initialSusp = Some (uniqueEntryOfCode code) + emitter initialSusp code |> emitSusp + +//---------------------------------------------------------------------------- +// emitILMethodBody +//---------------------------------------------------------------------------- + +let emitLocal cenv emEnv (ilG : ILGenerator) (local: ILLocal) = + let ty = convType cenv emEnv local.Type + ilG.DeclareLocalAndLog(ty,local.IsPinned) + +let emitILMethodBody cenv modB emEnv (ilG:ILGenerator) ilmbody = + // XXX - REVIEW: + // NoInlining: bool; + // SourceMarker: source option } + // emit locals and record emEnv + let localBs = Array.map (emitLocal cenv emEnv ilG) (ILList.toArray ilmbody.Locals) + let emEnv = envSetLocals emEnv localBs + emitCode cenv modB emEnv ilG ilmbody.Code + + +//---------------------------------------------------------------------------- +// emitMethodBody +//---------------------------------------------------------------------------- + +let emitMethodBody cenv modB emEnv ilG _name (mbody: ILLazyMethodBody) = + match mbody.Contents with + | MethodBody.IL ilmbody -> emitILMethodBody cenv modB emEnv (ilG()) ilmbody + | MethodBody.PInvoke _pinvoke -> () (* printf "EMIT: pinvoke method %s\n" name *) (* XXX - check *) + | MethodBody.Abstract -> () (* printf "EMIT: abstract method %s\n" name *) (* XXX - check *) + | MethodBody.Native -> failwith "emitMethodBody cenv: native" (* XXX - gap *) + + +//---------------------------------------------------------------------------- +// emitCustomAttrs +//---------------------------------------------------------------------------- + +let convCustomAttr cenv emEnv cattr = + let methInfo = + match convConstructorSpec cenv emEnv cattr.Method with + | null -> failwithf "convCustomAttr: %+A" cattr.Method + | res -> res +// In Silverlight, we cannot use the byte[] data to generate attributes (security restriction). +// Instead, we return a function which creates a CustomAttributeBuilder to be used for SetCustomAttributes. +#if SILVERLIGHT + let ty : System.Type = convType cenv emEnv cattr.Method.EnclosingType + let convAttrArray arr = [|for i in arr -> convAttribElem cenv emEnv i|] + + let fixedArgs, namedArgs = cattr.Arguments + let prop, fields = List.partition (fun (_, _, isProp, _) -> isProp) namedArgs + let prop = prop |> List.map (fun (name, _, _, value) -> ty.GetProperty(name), value) |> List.toArray + let fields = fields |> List.map (fun (name, _, _, value) -> ty.GetField(name), value) |> List.toArray + + let data (cinfo: ConstructorInfo) = + CustomAttributeBuilder(cinfo, convAttrArray fixedArgs, + Array.map fst prop, convAttrArray (Array.map snd prop), + Array.map fst fields, convAttrArray (Array.map snd fields)) +#else + let data = cattr.Data +#endif + (methInfo,data) + +let emitCustomAttr cenv emEnv add cattr = add (convCustomAttr cenv emEnv cattr) +let emitCustomAttrs cenv emEnv add (cattrs : ILAttributes) = List.iter (emitCustomAttr cenv emEnv add) cattrs.AsList + +//---------------------------------------------------------------------------- +// buildGenParams +//---------------------------------------------------------------------------- + +let buildGenParamsPass1 _emEnv defineGenericParameters (gps : ILGenericParameterDefs) = + match gps with + | [] -> () + | gps -> + let gpsNames = gps |> List.map (fun gp -> gp.Name) + defineGenericParameters (Array.ofList gpsNames) |> ignore + + +let buildGenParamsPass1b cenv emEnv (genArgs : Type array) (gps : ILGenericParameterDefs) = + let genpBs = genArgs |> Array.map (fun x -> (x :?> GenericTypeParameterBuilder)) + gps |> List.iteri (fun i (gp:ILGenericParameterDef) -> + let gpB = genpBs.[i] + // the Constraints are either the parent (base) type or interfaces. + let constraintTs = convTypes cenv emEnv gp.Constraints + let interfaceTs,baseTs = List.partition (fun (typ:System.Type) -> typ.IsInterface) (ILList.toList constraintTs) + // set base type constraint + (match baseTs with + [ ] -> () // Q: should a baseType be set? It is in some samples. Should this be a failure case? + | [ baseT ] -> gpB.SetBaseTypeConstraint(baseT) + | _ -> failwith "buildGenParam: multiple base types" + ); + // set interface contraints (interfaces that instances of gp must meet) + gpB.SetInterfaceConstraints(Array.ofList interfaceTs); + gp.CustomAttrs |> emitCustomAttrs cenv emEnv (wrapCustomAttr gpB.SetCustomAttribute) + + let flags = GenericParameterAttributes.None + let flags = + match gp.Variance with + | NonVariant -> flags + | CoVariant -> flags ||| GenericParameterAttributes.Covariant + | ContraVariant -> flags ||| GenericParameterAttributes.Contravariant + + let flags = if gp.HasReferenceTypeConstraint then flags ||| GenericParameterAttributes.ReferenceTypeConstraint else flags + let flags = if gp.HasNotNullableValueTypeConstraint then flags ||| GenericParameterAttributes.NotNullableValueTypeConstraint else flags + let flags = if gp.HasDefaultConstructorConstraint then flags ||| GenericParameterAttributes.DefaultConstructorConstraint else flags + + gpB.SetGenericParameterAttributes(flags) + ) +//---------------------------------------------------------------------------- +// emitParameter +//---------------------------------------------------------------------------- + +let emitParameter cenv emEnv (defineParameter : int * ParameterAttributes * string -> ParameterBuilder) i param = + // -Type: typ; + // -Default: ILFieldInit option; + // -Marshal: NativeType option; (* Marshalling map for parameters. COM Interop only. *) + let attrs = flagsIf param.IsIn ParameterAttributes.In ||| + flagsIf param.IsOut ParameterAttributes.Out ||| + flagsIf param.IsOptional ParameterAttributes.Optional + let name = match param.Name with + | Some name -> name + | None -> "X"^string(i+1) + + let parB = defineParameter(i,attrs,name) + emitCustomAttrs cenv emEnv (wrapCustomAttr parB.SetCustomAttribute) param.CustomAttrs + +//---------------------------------------------------------------------------- +// convMethodAttributes +//---------------------------------------------------------------------------- + +let convMethodAttributes (mdef: ILMethodDef) = + let attrKind = + match mdef.mdKind with + | MethodKind.Static -> MethodAttributes.Static + | MethodKind.Cctor -> MethodAttributes.Static + | MethodKind.Ctor -> enum 0 + | MethodKind.NonVirtual -> enum 0 + | MethodKind.Virtual vinfo -> MethodAttributes.Virtual ||| + flagsIf vinfo.IsNewSlot MethodAttributes.NewSlot ||| + flagsIf vinfo.IsFinal MethodAttributes.Final ||| + flagsIf vinfo.IsCheckAccessOnOverride MethodAttributes.CheckAccessOnOverride ||| + flagsIf vinfo.IsAbstract MethodAttributes.Abstract + + let attrAccess = + match mdef.Access with + | ILMemberAccess.Assembly -> MethodAttributes.Assembly + | ILMemberAccess.CompilerControlled -> failwith "Method access compiler controled." + | ILMemberAccess.FamilyAndAssembly -> MethodAttributes.FamANDAssem + | ILMemberAccess.FamilyOrAssembly -> MethodAttributes.FamORAssem + | ILMemberAccess.Family -> MethodAttributes.Family + | ILMemberAccess.Private -> MethodAttributes.Private + | ILMemberAccess.Public -> MethodAttributes.Public + + let attrOthers = flagsIf mdef.HasSecurity MethodAttributes.HasSecurity ||| + flagsIf mdef.IsSpecialName MethodAttributes.SpecialName ||| + flagsIf mdef.IsHideBySig MethodAttributes.HideBySig ||| + flagsIf mdef.IsReqSecObj MethodAttributes.RequireSecObject + + attrKind ||| attrAccess ||| attrOthers + +let convMethodImplFlags mdef = + (match mdef.mdCodeKind with + | MethodCodeKind.Native -> MethodImplAttributes.Native + | MethodCodeKind.Runtime -> MethodImplAttributes.Runtime + | MethodCodeKind.IL -> MethodImplAttributes.IL) + ||| flagsIf mdef.IsInternalCall MethodImplAttributes.InternalCall + ||| (if mdef.IsManaged then MethodImplAttributes.Managed else MethodImplAttributes.Unmanaged) + ||| flagsIf mdef.IsForwardRef MethodImplAttributes.ForwardRef + ||| flagsIf mdef.IsPreserveSig MethodImplAttributes.PreserveSig + ||| flagsIf mdef.IsSynchronized MethodImplAttributes.Synchronized + ||| flagsIf (match mdef.mdBody.Contents with MethodBody.IL b -> b.NoInlining | _ -> false) MethodImplAttributes.NoInlining + +//---------------------------------------------------------------------------- +// buildMethodPass2 +//---------------------------------------------------------------------------- + +let rec buildMethodPass2 cenv tref (typB:TypeBuilder) emEnv (mdef : ILMethodDef) = + // remaining REVIEW: + // SecurityDecls: Permissions; + // IsUnmanagedExport: bool; (* -- The method is exported to unmanaged code using COM interop. *) + // IsMustRun: bool; (* Whidbey feature: SafeHandle finalizer must be run *) + let attrs = convMethodAttributes mdef + let implflags = convMethodImplFlags mdef + let cconv = convCallConv mdef.CallingConv + let mref = mkRefToILMethod (tref,mdef) + let emEnv = if mdef.IsEntryPoint && mdef.ParameterTypes.Length = 0 then + (* Bug 2209: + Here, we collect the entry points generated by ilxgen corresponding to the top-level effects. + Users can (now) annotate their own functions with EntryPoint attributes. + However, these user entry points functions must take string[] argument. + By only adding entry points with no arguments, we only collect the top-level effects. + *) + envAddEntryPt emEnv (typB,mdef.Name) + else + emEnv + match mdef.mdBody.Contents with + | MethodBody.PInvoke p -> + let argtys = convTypesToArray cenv emEnv mdef.ParameterTypes + let rty = convType cenv emEnv mdef.Return.Type + + let pcc = + match p.CallingConv with + | PInvokeCallingConvention.Cdecl -> CallingConvention.Cdecl + | PInvokeCallingConvention.Stdcall -> CallingConvention.StdCall + | PInvokeCallingConvention.Thiscall -> CallingConvention.ThisCall + | PInvokeCallingConvention.Fastcall -> CallingConvention.FastCall + | PInvokeCallingConvention.None + | PInvokeCallingConvention.WinApi -> CallingConvention.Winapi + + let pcs = + match p.CharEncoding with + | PInvokeCharEncoding.None -> CharSet.None + | PInvokeCharEncoding.Ansi -> CharSet.Ansi + | PInvokeCharEncoding.Unicode -> CharSet.Unicode + | PInvokeCharEncoding.Auto -> CharSet.Auto + +(* p.ThrowOnUnmappableChar *) +(* p.CharBestFit *) +(* p.NoMangle *) + +#if FX_ATLEAST_SILVERLIGHT_50 + failwith "PInvoke methods may not be defined when targeting Silverlight via System.Reflection.Emit" +#else + let methB = typB.DefinePInvokeMethod(mdef.Name, + p.Where.Name, + p.Name, + attrs, + cconv, + rty, + null, null, + argtys, + null, null, + pcc, + pcs) + methB.SetImplementationFlagsAndLog(implflags); + envBindMethodRef emEnv mref methB +#endif + + | _ -> + match mdef.Name with + | ".cctor" + | ".ctor" -> + let consB = typB.DefineConstructorAndLog(attrs,cconv,convTypesToArray cenv emEnv mdef.ParameterTypes) + consB.SetImplementationFlagsAndLog(implflags); + envBindConsRef emEnv mref consB + | _name -> + // Note the return/argument types may involve the generic parameters + let methB = typB.DefineMethodAndLog(mdef.Name,attrs,cconv) + + // Method generic type parameters + buildGenParamsPass1 emEnv methB.DefineGenericParametersAndLog mdef.GenericParams; + let genArgs = getGenericArgumentsOfMethod methB + let emEnv = envPushTyvars emEnv (Array.append (getGenericArgumentsOfType typB) genArgs) + buildGenParamsPass1b cenv emEnv genArgs mdef.GenericParams; + // set parameter and return types (may depend on generic args) + methB.SetParametersAndLog(convTypesToArray cenv emEnv mdef.ParameterTypes); + methB.SetReturnTypeAndLog(convType cenv emEnv mdef.Return.Type); + let emEnv = envPopTyvars emEnv + methB.SetImplementationFlagsAndLog(implflags); + envBindMethodRef emEnv mref methB + + +//---------------------------------------------------------------------------- +// buildMethodPass3 cenv +//---------------------------------------------------------------------------- + +let rec buildMethodPass3 cenv tref modB (typB:TypeBuilder) emEnv (mdef : ILMethodDef) = + let mref = mkRefToILMethod (tref,mdef) + let isPInvoke = + match mdef.mdBody.Contents with + | MethodBody.PInvoke _p -> true + | _ -> false + match mdef.Name with + | ".cctor" | ".ctor" -> + let consB = envGetConsB emEnv mref + // Constructors can not have generic parameters + assert isNil mdef.GenericParams + // Value parameters + let defineParameter (i,attr,name) = consB.DefineParameterAndLog(i+1,attr,name) + mdef.Parameters |> ILList.iteri (emitParameter cenv emEnv defineParameter); + // Body + emitMethodBody cenv modB emEnv consB.GetILGenerator mdef.Name mdef.mdBody; + emitCustomAttrs cenv emEnv (wrapCustomAttr consB.SetCustomAttribute) mdef.CustomAttrs; + () + | _name -> + + let methB = envGetMethB emEnv mref + let emEnv = envPushTyvars emEnv (Array.append + (getGenericArgumentsOfType typB) + (getGenericArgumentsOfMethod methB)) + + match mdef.Return.CustomAttrs.AsList with + | [] -> () + | _ -> + let retB = methB.DefineParameterAndLog(0,System.Reflection.ParameterAttributes.Retval,null) + emitCustomAttrs cenv emEnv (wrapCustomAttr retB.SetCustomAttribute) mdef.Return.CustomAttrs + + // Value parameters + let defineParameter (i,attr,name) = methB.DefineParameterAndLog(i+1,attr,name) + mdef.Parameters |> ILList.iteri (fun a b -> emitParameter cenv emEnv defineParameter a b); + // Body + if not isPInvoke then + emitMethodBody cenv modB emEnv methB.GetILGeneratorAndLog mdef.Name mdef.mdBody; + let emEnv = envPopTyvars emEnv // case fold later... + emitCustomAttrs cenv emEnv methB.SetCustomAttributeAndLog mdef.CustomAttrs + +//---------------------------------------------------------------------------- +// buildFieldPass2 +//---------------------------------------------------------------------------- + +let buildFieldPass2 cenv tref (typB:TypeBuilder) emEnv (fdef : ILFieldDef) = + + (*{ -Data: bytes option; + -Marshal: NativeType option; *) + let attrsAccess = match fdef.Access with + | ILMemberAccess.Assembly -> FieldAttributes.Assembly + | ILMemberAccess.CompilerControlled -> failwith "Field access compiler controled." + | ILMemberAccess.FamilyAndAssembly -> FieldAttributes.FamANDAssem + | ILMemberAccess.FamilyOrAssembly -> FieldAttributes.FamORAssem + | ILMemberAccess.Family -> FieldAttributes.Family + | ILMemberAccess.Private -> FieldAttributes.Private + | ILMemberAccess.Public -> FieldAttributes.Public + let attrsOther = flagsIf fdef.IsStatic FieldAttributes.Static ||| + flagsIf fdef.IsSpecialName FieldAttributes.SpecialName ||| + flagsIf fdef.IsLiteral FieldAttributes.Literal ||| + flagsIf fdef.IsInitOnly FieldAttributes.InitOnly ||| + flagsIf fdef.NotSerialized FieldAttributes.NotSerialized + let attrs = attrsAccess ||| attrsOther + let fieldT = convType cenv emEnv fdef.Type + let fieldB = +#if FX_ATLEAST_SILVERLIGHT_50 +#else + match fdef.Data with + | Some d -> typB.DefineInitializedData(fdef.Name, d, attrs) + | None -> +#endif + typB.DefineFieldAndLog(fdef.Name,fieldT,attrs) + + // set default value + fdef.LiteralValue |> Option.iter (fun initial -> fieldB.SetConstant(convFieldInit initial)); +#if FX_ATLEAST_SILVERLIGHT_50 +#else + fdef.Offset |> Option.iter (fun offset -> fieldB.SetOffset(offset)); +#endif + // custom attributes: done on pass 3 as they may reference attribute constructors generated on + // pass 2. + let fref = mkILFieldRef (tref,fdef.Name,fdef.Type) + envBindFieldRef emEnv fref fieldB + +let buildFieldPass3 cenv tref (_typB:TypeBuilder) emEnv (fdef : ILFieldDef) = + let fref = mkILFieldRef (tref,fdef.Name,fdef.Type) + let fieldB = envGetFieldB emEnv fref + emitCustomAttrs cenv emEnv (wrapCustomAttr fieldB.SetCustomAttribute) fdef.CustomAttrs + +//---------------------------------------------------------------------------- +// buildPropertyPass2,3 +//---------------------------------------------------------------------------- + +let buildPropertyPass2 cenv tref (typB:TypeBuilder) emEnv (prop : ILPropertyDef) = + let attrs = flagsIf prop.IsRTSpecialName PropertyAttributes.RTSpecialName ||| + flagsIf prop.IsSpecialName PropertyAttributes.SpecialName + + let propB = typB.DefinePropertyAndLog(prop.Name,attrs,convType cenv emEnv prop.Type,convTypesToArray cenv emEnv prop.Args) + + prop.SetMethod |> Option.iter (fun mref -> propB.SetSetMethod(envGetMethB emEnv mref)); + prop.GetMethod |> Option.iter (fun mref -> propB.SetGetMethod(envGetMethB emEnv mref)); + // set default value + prop.Init |> Option.iter (fun initial -> propB.SetConstant(convFieldInit initial)); + // custom attributes + let pref = ILPropertyRef.Create (tref,prop.Name) + envBindPropRef emEnv pref propB + +let buildPropertyPass3 cenv tref (_typB:TypeBuilder) emEnv (prop : ILPropertyDef) = + let pref = ILPropertyRef.Create (tref,prop.Name) + let propB = envGetPropB emEnv pref + emitCustomAttrs cenv emEnv (wrapCustomAttr propB.SetCustomAttribute) prop.CustomAttrs + +//---------------------------------------------------------------------------- +// buildEventPass3 +//---------------------------------------------------------------------------- + + +let buildEventPass3 cenv (typB:TypeBuilder) emEnv (eventDef : ILEventDef) = + let attrs = flagsIf eventDef.IsSpecialName EventAttributes.SpecialName ||| + flagsIf eventDef.IsRTSpecialName EventAttributes.RTSpecialName + assert eventDef.Type.IsSome + let eventB = typB.DefineEventAndLog(eventDef.Name,attrs,convType cenv emEnv eventDef.Type.Value) + + eventDef.AddMethod |> (fun mref -> eventB.SetAddOnMethod(envGetMethB emEnv mref)); + eventDef.RemoveMethod |> (fun mref -> eventB.SetRemoveOnMethod(envGetMethB emEnv mref)); + eventDef.FireMethod |> Option.iter (fun mref -> eventB.SetRaiseMethod(envGetMethB emEnv mref)); + eventDef.OtherMethods |> List.iter (fun mref -> eventB.AddOtherMethod(envGetMethB emEnv mref)); + emitCustomAttrs cenv emEnv (wrapCustomAttr eventB.SetCustomAttribute) eventDef.CustomAttrs + +//---------------------------------------------------------------------------- +// buildMethodImplsPass3 +//---------------------------------------------------------------------------- + +let buildMethodImplsPass3 cenv _tref (typB:TypeBuilder) emEnv (mimpl : IL.ILMethodImplDef) = + let bodyMethInfo = convMethodRef cenv emEnv (typB :> Type) mimpl.OverrideBy.MethodRef // doc: must be MethodBuilder + let (OverridesSpec (mref,dtyp)) = mimpl.Overrides + let declMethTI = convType cenv emEnv dtyp + let declMethInfo = convMethodRef cenv emEnv declMethTI mref + typB.DefineMethodOverride(bodyMethInfo,declMethInfo); + emEnv + +//---------------------------------------------------------------------------- +// typeAttributesOf* +//---------------------------------------------------------------------------- + +let typeAttrbutesOfTypeDefKind x = + match x with + // required for a TypeBuilder + | ILTypeDefKind.Class -> TypeAttributes.Class + | ILTypeDefKind.ValueType -> TypeAttributes.Class + | ILTypeDefKind.Interface -> TypeAttributes.Interface + | ILTypeDefKind.Enum -> TypeAttributes.Class + | ILTypeDefKind.Delegate -> TypeAttributes.Class + | ILTypeDefKind.Other _xtdk -> failwith "typeAttributes of other external" + +let typeAttrbutesOfTypeAccess x = + match x with + | ILTypeDefAccess.Public -> TypeAttributes.Public + | ILTypeDefAccess.Private -> TypeAttributes.NotPublic + | ILTypeDefAccess.Nested macc -> + match macc with + | ILMemberAccess.Assembly -> TypeAttributes.NestedAssembly + | ILMemberAccess.CompilerControlled -> failwith "Nested compiler controled." + | ILMemberAccess.FamilyAndAssembly -> TypeAttributes.NestedFamANDAssem + | ILMemberAccess.FamilyOrAssembly -> TypeAttributes.NestedFamORAssem + | ILMemberAccess.Family -> TypeAttributes.NestedFamily + | ILMemberAccess.Private -> TypeAttributes.NestedPrivate + | ILMemberAccess.Public -> TypeAttributes.NestedPublic + +let typeAttributesOfTypeEncoding x = + match x with + | ILDefaultPInvokeEncoding.Ansi -> TypeAttributes.AnsiClass + | ILDefaultPInvokeEncoding.Auto -> TypeAttributes.AutoClass + | ILDefaultPInvokeEncoding.Unicode -> TypeAttributes.UnicodeClass + + +let typeAttributesOfTypeLayout cenv emEnv x = + let attr p = + if p.Size =None && p.Pack = None then None + else + Some(convCustomAttr cenv emEnv + (IL.mkILCustomAttribute cenv.ilg + (mkILTyRef (cenv.ilg.mscorlibScopeRef,"System.Runtime.InteropServices.StructLayoutAttribute"), + [mkILNonGenericValueTy (mkILTyRef (cenv.ilg.mscorlibScopeRef,"System.Runtime.InteropServices.LayoutKind")) ], + [ ILAttribElem.Int32 0x02 ], + (p.Pack |> Option.toList |> List.map (fun x -> ("Pack", cenv.ilg.typ_int32, false, ILAttribElem.Int32 (int32 x)))) @ + (p.Size |> Option.toList |> List.map (fun x -> ("Size", cenv.ilg.typ_int32, false, ILAttribElem.Int32 x)))))) in + match x with + | ILTypeDefLayout.Auto -> TypeAttributes.AutoLayout,None + | ILTypeDefLayout.Explicit p -> TypeAttributes.ExplicitLayout,(attr p) + | ILTypeDefLayout.Sequential p -> TypeAttributes.SequentialLayout, (attr p) + + +//---------------------------------------------------------------------------- +// buildTypeDefPass1 cenv +//---------------------------------------------------------------------------- + +let rec buildTypeDefPass1 cenv emEnv (modB:ModuleBuilder) rootTypeBuilder nesting (tdef : ILTypeDef) = + // -IsComInterop: bool; (* Class or interface generated for COM interop *) + // -SecurityDecls: Permissions; + // -InitSemantics: ILTypeInit; + // TypeAttributes + let attrsKind = typeAttrbutesOfTypeDefKind tdef.tdKind + let attrsAccess = typeAttrbutesOfTypeAccess tdef.Access + let attrsLayout,cattrsLayout = typeAttributesOfTypeLayout cenv emEnv tdef.Layout + let attrsEnc = typeAttributesOfTypeEncoding tdef.Encoding + let attrsOther = flagsIf tdef.IsAbstract TypeAttributes.Abstract ||| + flagsIf tdef.IsSealed TypeAttributes.Sealed ||| + flagsIf tdef.IsSerializable TypeAttributes.Serializable ||| + flagsIf tdef.IsSpecialName TypeAttributes.SpecialName ||| + flagsIf tdef.HasSecurity TypeAttributes.HasSecurity + + let attrsType = attrsKind ||| attrsAccess ||| attrsLayout ||| attrsEnc ||| attrsOther + + // TypeBuilder from TypeAttributes. + let typB : TypeBuilder = rootTypeBuilder (tdef.Name,attrsType) + let typB = typB |> nonNull "buildTypeDefPass1 cenv: typB is null!" + cattrsLayout |> Option.iter typB.SetCustomAttributeAndLog; + + buildGenParamsPass1 emEnv typB.DefineGenericParametersAndLog tdef.GenericParams; + // bind tref -> (typT,typB) + let tref = mkRefForNestedILTypeDef ILScopeRef.Local (nesting,tdef) + let typT = + // Q: would it be ok to use typB :> Type ? + // Maybe not, recall TypeBuilder maybe subtype of Type, but it is not THE Type. + let nameInModule = tref.QualifiedName + modB.GetTypeAndLog(nameInModule,false,false) + + let emEnv = envBindTypeRef emEnv tref (typT,typB,tdef) + // recurse on nested types + let nesting = nesting @ [tdef] + let buildNestedType emEnv tdef = buildTypeTypeDef cenv emEnv modB typB nesting tdef + let emEnv = List.fold buildNestedType emEnv tdef.NestedTypes.AsList + emEnv + +and buildTypeTypeDef cenv emEnv modB (typB : TypeBuilder) nesting tdef = + buildTypeDefPass1 cenv emEnv modB typB.DefineNestedTypeAndLog nesting tdef + +//---------------------------------------------------------------------------- +// buildTypeDefPass1b +//---------------------------------------------------------------------------- + +let rec buildTypeDefPass1b cenv nesting emEnv (tdef : ILTypeDef) = + let tref = mkRefForNestedILTypeDef ILScopeRef.Local (nesting,tdef) + let typB = envGetTypB emEnv tref + let genArgs = getGenericArgumentsOfType typB + let emEnv = envPushTyvars emEnv genArgs + // Parent may reference types being defined, so has to come after it's Pass1 creation + tdef.Extends |> Option.iter (fun typ -> typB.SetParentAndLog(convType cenv emEnv typ)); + // build constraints on ILGenericParameterDefs. Constraints may reference types being defined, + // so have to come after all types are created + buildGenParamsPass1b cenv emEnv genArgs tdef.GenericParams; + let emEnv = envPopTyvars emEnv + let nesting = nesting @ [tdef] + List.iter (buildTypeDefPass1b cenv nesting emEnv) tdef.NestedTypes.AsList + +//---------------------------------------------------------------------------- +// buildTypeDefPass2 +//---------------------------------------------------------------------------- + +let rec buildTypeDefPass2 cenv nesting emEnv (tdef : ILTypeDef) = + let tref = mkRefForNestedILTypeDef ILScopeRef.Local (nesting,tdef) + let typB = envGetTypB emEnv tref + let emEnv = envPushTyvars emEnv (getGenericArgumentsOfType typB) + // add interface impls + tdef.Implements |> convTypes cenv emEnv |> ILList.iter (fun implT -> typB.AddInterfaceImplementationAndLog(implT)); + // add methods, properties + let emEnv = List.fold (buildMethodPass2 cenv tref typB) emEnv tdef.Methods.AsList + let emEnv = List.fold (buildFieldPass2 cenv tref typB) emEnv tdef.Fields.AsList + let emEnv = List.fold (buildPropertyPass2 cenv tref typB) emEnv tdef.Properties.AsList + let emEnv = envPopTyvars emEnv + // nested types + let nesting = nesting @ [tdef] + let emEnv = List.fold (buildTypeDefPass2 cenv nesting) emEnv tdef.NestedTypes.AsList + emEnv + +//---------------------------------------------------------------------------- +// buildTypeDefPass3 cenv +//---------------------------------------------------------------------------- + +let rec buildTypeDefPass3 cenv nesting modB emEnv (tdef : ILTypeDef) = + let tref = mkRefForNestedILTypeDef ILScopeRef.Local (nesting,tdef) + let typB = envGetTypB emEnv tref + let emEnv = envPushTyvars emEnv (getGenericArgumentsOfType typB) + // add method bodies, properties, events + tdef.Methods |> Seq.iter (buildMethodPass3 cenv tref modB typB emEnv); + tdef.Properties.AsList |> List.iter (buildPropertyPass3 cenv tref typB emEnv); + tdef.Events.AsList |> List.iter (buildEventPass3 cenv typB emEnv); + tdef.Fields.AsList |> List.iter (buildFieldPass3 cenv tref typB emEnv); + let emEnv = List.fold (buildMethodImplsPass3 cenv tref typB) emEnv tdef.MethodImpls.AsList + tdef.CustomAttrs |> emitCustomAttrs cenv emEnv typB.SetCustomAttributeAndLog ; + // custom attributes + let emEnv = envPopTyvars emEnv + // nested types + let nesting = nesting @ [tdef] + let emEnv = List.fold (buildTypeDefPass3 cenv nesting modB) emEnv tdef.NestedTypes.AsList + emEnv + +//---------------------------------------------------------------------------- +// buildTypeDefPass4 - Create the Types +// MSDN says: If this type is a nested type, the CreateType method must +// be called on the enclosing type before it is called on the nested type. +// If the current type derives from an incomplete type or implements +// incomplete interfaces, call the CreateType method on the parent +// type and the interface types before calling it on the current type. +// If the enclosing type contains a field that is a value type +// defined as a nested type (for example, a field that is an +// enumeration defined as a nested type), calling the CreateType method +// on the enclosing type will generate a AppDomain.TypeResolve event. +// This is because the loader cannot determine the size of the enclosing +// type until the nested type has been completed. The caller should define +// a handler for the TypeResolve event to complete the definition of the +// nested type by calling CreateType on the TypeBuilder object that represents +// the nested type. The code example for this topic shows how to define such +// an event handler. +//---------------------------------------------------------------------------- + +let getEnclosingTypeRefs (tref:ILTypeRef) = + match tref.Enclosing with + | [] -> [] + | h :: t -> List.scan (fun tr nm -> mkILTyRefInTyRef (tr,nm)) (mkILTyRef(tref.Scope, h)) t + +let rec getTypeRefsInType valueTypesOnly typ acc = + match typ with + | ILType.Void | ILType.TypeVar _ -> acc + | ILType.Ptr eltType | ILType.Byref eltType -> getTypeRefsInType valueTypesOnly eltType acc + | ILType.Array (_,eltType) -> if valueTypesOnly then acc else getTypeRefsInType valueTypesOnly eltType acc + | ILType.Value tspec -> tspec.TypeRef :: ILList.foldBack (getTypeRefsInType valueTypesOnly) tspec.GenericArgs acc + | ILType.Boxed tspec -> if valueTypesOnly then acc else tspec.TypeRef :: ILList.foldBack (getTypeRefsInType valueTypesOnly) tspec.GenericArgs acc + | ILType.FunctionPointer _callsig -> failwith "getTypeRefsInType: fptr" + | ILType.Modified _ -> failwith "getTypeRefsInType: modified" + +let verbose2 = false + +let createTypeRef (visited : Dictionary<_,_>, created : Dictionary<_,_>) emEnv tref = + let rec traverseTypeDef priority (tref:ILTypeRef) (tdef:ILTypeDef) = + if priority >= 2 then + if verbose2 then dprintf "buildTypeDefPass4: Creating Enclosing Types of %s\n" tdef.Name; + tref |> getEnclosingTypeRefs |> List.iter (traverseTypeRef priority); + + // WORKAROUND (ProductStudio FSharp 1.0 bug 615): the constraints on generic method parameters + // are resolved overly eagerly by reflection emit's CreateType. + if priority >= 1 then + if verbose2 then dprintf "buildTypeDefPass4: Doing type typar constraints of %s\n" tdef.Name; + tdef.GenericParams |> List.iter (fun gp -> gp.Constraints |> ILList.iter (traverseType false 2)); + if verbose2 then dprintf "buildTypeDefPass4: Doing method constraints of %s\n" tdef.Name; + tdef.Methods.AsList |> Seq.iter (fun md -> md.GenericParams |> List.iter (fun gp -> gp.Constraints |> ILList.iter (traverseType false 2))); + + // We absolutely need the parent type... + if priority >= 1 then + if verbose2 then dprintf "buildTypeDefPass4: Creating Super Class Chain of %s\n" tdef.Name; + tdef.Extends |> Option.iter (traverseType false priority); + + // We absolutely need the interface types... + if priority >= 1 then + if verbose2 then dprintf "buildTypeDefPass4: Creating Interface Chain of %s\n" tdef.Name; + tdef.Implements |> ILList.iter (traverseType false priority); + + // We have to define all struct types in all methods before a class is defined. This only has any effect when there is a struct type + // being defined simultaneously with this type. + if priority >= 1 then + if verbose2 then dprintf "buildTypeDefPass4: Doing value types in method signatures of %s, #mdefs = %d\n" tdef.Name tdef.Methods.AsList.Length; + tdef.Methods |> Seq.iter (fun md -> md.Parameters |> ILList.iter (fun p -> p.Type |> (traverseType true 1)) + md.Return.Type |> traverseType true 1); + + if priority >= 1 then + if verbose2 then dprintf "buildTypeDefPass4: Do value types in fields of %s\n" tdef.Name; + tdef.Fields.AsList |> List.iter (fun fd -> traverseType true 1 fd.Type); + + if verbose2 then dprintf "buildTypeDefPass4: Done with dependencies of %s\n" tdef.Name + + and traverseType valueTypesOnly priority typ = + if verbose2 then dprintf "- traverseType %+A\n" typ; + getTypeRefsInType valueTypesOnly typ [] + |> List.filter (isEmittedTypeRef emEnv) + |> List.iter (traverseTypeRef priority) + + and traverseTypeRef priority tref = + let typB = envGetTypB emEnv tref + if verbose2 then dprintf "- considering reference to type %s\n" typB.FullName; + if not (visited.ContainsKey(tref)) || visited.[tref] > priority then + visited.[tref] <- priority; + let tdef = envGetTypeDef emEnv tref + if verbose2 then dprintf "- traversing type %s\n" typB.FullName; +#if SILVERLIGHT + traverseTypeDef priority tref tdef; +#else + let typeCreationHandler = + let nestingToProbe = tref.Enclosing + ResolveEventHandler( + fun o r -> + let typeName = r.Name + let typeRef = ILTypeRef.Create(ILScopeRef.Local, nestingToProbe, typeName) + match emEnv.emTypMap.TryFind typeRef with + | Some(_,tb,_,_) -> + if not (tb.IsCreated()) then + tb.CreateTypeAndLog() |> ignore + tb.Assembly + | None -> null + ) + System.AppDomain.CurrentDomain.add_TypeResolve typeCreationHandler + try + traverseTypeDef priority tref tdef; + finally + System.AppDomain.CurrentDomain.remove_TypeResolve typeCreationHandler +#endif + if not (created.ContainsKey(tref)) then + created.[tref] <- true; + if verbose2 then dprintf "- creating type %s\n" typB.FullName; + typB.CreateTypeAndLog() |> ignore + + traverseTypeRef 2 tref + +let rec buildTypeDefPass4 (visited,created) nesting emEnv (tdef : ILTypeDef) = + if verbose2 then dprintf "buildTypeDefPass4 %s\n" tdef.Name; + let tref = mkRefForNestedILTypeDef ILScopeRef.Local (nesting,tdef) + createTypeRef (visited,created) emEnv tref; + + + // nested types + let nesting = nesting @ [tdef] + tdef.NestedTypes |> Seq.iter (buildTypeDefPass4 (visited,created) nesting emEnv) + +//---------------------------------------------------------------------------- +// buildModuleType +//---------------------------------------------------------------------------- + +let buildModuleTypePass1 cenv (modB:ModuleBuilder) emEnv (tdef:ILTypeDef) = + buildTypeDefPass1 cenv emEnv modB modB.DefineTypeAndLog [] tdef + +let buildModuleTypePass1b cenv emEnv tdef = buildTypeDefPass1b cenv [] emEnv tdef +let buildModuleTypePass2 cenv emEnv tdef = buildTypeDefPass2 cenv [] emEnv tdef +let buildModuleTypePass3 cenv modB emEnv tdef = buildTypeDefPass3 cenv [] modB emEnv tdef +let buildModuleTypePass4 visited emEnv tdef = buildTypeDefPass4 visited [] emEnv tdef + +//---------------------------------------------------------------------------- +// buildModuleFragment - only the types the fragment get written +//---------------------------------------------------------------------------- + +let buildModuleFragment cenv emEnv (asmB : AssemblyBuilder) (modB : ModuleBuilder) (m: ILModuleDef) = + let tdefs = m.TypeDefs.AsList + + let emEnv = List.fold (buildModuleTypePass1 cenv modB) emEnv tdefs + tdefs |> List.iter (buildModuleTypePass1b cenv emEnv) + let emEnv = List.fold (buildModuleTypePass2 cenv) emEnv tdefs + let emEnv = List.fold (buildModuleTypePass3 cenv modB) emEnv tdefs + let visited = new Dictionary<_,_>(10) + let created = new Dictionary<_,_>(10) + tdefs |> List.iter (buildModuleTypePass4 (visited,created) emEnv) + let emEnv = Seq.fold envUpdateCreatedTypeRef emEnv created.Keys // update typT with the created typT + emitCustomAttrs cenv emEnv modB.SetCustomAttributeAndLog m.CustomAttrs; + m.Resources.AsList |> List.iter (fun r -> + let attribs = (match r.Access with ILResourceAccess.Public -> ResourceAttributes.Public | ILResourceAccess.Private -> ResourceAttributes.Private) + match r.Location with + | ILResourceLocation.Local bf -> + modB.DefineManifestResourceAndLog(r.Name, new System.IO.MemoryStream(bf()), attribs) + | ILResourceLocation.File (mr,_n) -> +#if FX_ATLEAST_SILVERLIGHT_50 + () +#else + asmB.AddResourceFileAndLog(r.Name, mr.Name, attribs) +#endif + | ILResourceLocation.Assembly _ -> + failwith "references to resources other assemblies may not be emitted using System.Reflection"); + emEnv + +//---------------------------------------------------------------------------- +// test hook +//---------------------------------------------------------------------------- + +let mkDynamicAssemblyAndModule (assemblyName, optimize, debugInfo) = + let filename = assemblyName ^ ".dll" + let currentDom = System.AppDomain.CurrentDomain +#if SILVERLIGHT + let _asmDir = if optimize then "." else "." // TODO: factor out optimize + let asmName = new AssemblyName() + asmName.Name <- assemblyName; + let asmB = currentDom.DefineDynamicAssembly(asmName,AssemblyBuilderAccess.Run) + let modB = asmB.DefineDynamicModule(filename,debugInfo) +#else + let asmDir = "." + let asmName = new AssemblyName() + asmName.Name <- assemblyName; + let asmB = currentDom.DefineDynamicAssemblyAndLog(asmName,AssemblyBuilderAccess.RunAndSave,asmDir) + if not optimize then + let daType = typeof; + let daCtor = daType.GetConstructor [| typeof |] + let daBuilder = new CustomAttributeBuilder(daCtor, [| System.Diagnostics.DebuggableAttribute.DebuggingModes.DisableOptimizations ||| System.Diagnostics.DebuggableAttribute.DebuggingModes.Default |]) + asmB.SetCustomAttributeAndLog(daBuilder); + + let modB = asmB.DefineDynamicModuleAndLog(assemblyName,filename,debugInfo) +#endif + asmB,modB + +#if SILVERLIGHT +type EntryDelegate = delegate of unit -> unit +#endif + +let emitModuleFragment (ilg, emEnv, asmB : AssemblyBuilder, modB : ModuleBuilder, modul : IL.ILModuleDef, debugInfo : bool, resolvePath) = + let cenv = { ilg = ilg ; generatePdb = debugInfo; resolvePath=resolvePath } + + let emEnv = buildModuleFragment cenv emEnv asmB modB modul + match modul.Manifest with + | None -> () + | Some mani -> + // REVIEW: remainder of manifest + emitCustomAttrs cenv emEnv asmB.SetCustomAttributeAndLog mani.CustomAttrs; + // invoke entry point methods + let execEntryPtFun ((typB : TypeBuilder),methodName) () = + try +#if SILVERLIGHT + let mi = typB.GetMethod(methodName, BindingFlags.InvokeMethod ||| BindingFlags.Public ||| BindingFlags.Static) + System.Diagnostics.Debug.WriteLine("mi: {0}", string(mi.ToString())) + let dm = DynamicMethod((methodName+"dm"),null,null) + let ilg = dm.GetILGenerator(); + ilg.EmitCall(OpCodes.Call,mi,null) + ilg.Emit(OpCodes.Ret) + let invokedm = dm.CreateDelegate(typeof) + invokedm.DynamicInvoke(null) |> ignore +#else + ignore (typB.InvokeMemberAndLog(methodName,BindingFlags.InvokeMethod ||| BindingFlags.Public ||| BindingFlags.Static,[| |])); +#endif + None + with + | :? System.Reflection.TargetInvocationException as e -> + Some(e.InnerException) + + let emEnv,entryPts = envPopEntryPts emEnv + let execs = List.map execEntryPtFun entryPts + emEnv,execs + + +//---------------------------------------------------------------------------- +// lookup* allow conversion from AbsIL to their emitted representations +//---------------------------------------------------------------------------- + +// TypeBuilder is a subtype of Type. +// However, casting TypeBuilder to Type is not the same as getting Type proper. +// The builder version does not implement all methods on the parent. +// +// The emEnv stores (typT:Type) for each tref. +// Once the emitted type is created this typT is updated to ensure it is the Type proper. +// So Type lookup will return the proper Type not TypeBuilder. +let LookupTypeRef emEnv tref = Zmap.tryFind tref emEnv.emTypMap |> Option.map (function (_typ,_,_,Some createdTyp) -> createdTyp | (typ,_,_,None) -> typ) +let LookupType cenv emEnv typ = convCreatedType cenv emEnv typ + +// Lookups of ILFieldRef and MethodRef may require a similar non-Builder-fixup post Type-creation. +let LookupFieldRef emEnv fref = Zmap.tryFind fref emEnv.emFieldMap |> Option.map (fun fieldBuilder -> fieldBuilder :> FieldInfo) +let LookupMethodRef emEnv mref = Zmap.tryFind mref emEnv.emMethMap |> Option.map (fun methodBuilder -> methodBuilder :> MethodInfo) + + diff --git a/src/absil/ilsupp.fs b/src/absil/ilsupp.fs new file mode 100644 index 0000000..83c0e86 --- /dev/null +++ b/src/absil/ilsupp.fs @@ -0,0 +1,1489 @@ +//---------------------------------------------------------------------------- +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +module Microsoft.FSharp.Compiler.AbstractIL.Internal.Support + + +let DateTime1970Jan01 = new System.DateTime(1970,1,1,0,0,0,System.DateTimeKind.Utc) (* ECMA Spec (Oct2002), Part II, 24.2.2 PE File Header. *) +let absilWriteGetTimeStamp () = (System.DateTime.UtcNow - DateTime1970Jan01).TotalSeconds |> int + + +#if SILVERLIGHT +type PdbReader = | NeverImplemented +let pdbReadClose (_pdb:PdbReader) = () +type PdbWriter = | NeverImplemented +let pdbInitialize (_:string) (_:string) = PdbWriter.NeverImplemented +#else + +open Internal.Utilities +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Bytes +open Microsoft.FSharp.Compiler.AbstractIL.Diagnostics +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library + +open System +open System.IO +open System.Text +open System.Reflection +open System.Diagnostics.SymbolStore +open System.Runtime.InteropServices +open System.Runtime.CompilerServices + +// Force inline, so GetLastWin32Error calls are immediately after interop calls as seen by FxCop under Debug build. +let inline ignore _x = () + +// Native Resource linking/unlinking +type IStream = System.Runtime.InteropServices.ComTypes.IStream + +let check _action (hresult) = + if uint32 hresult >= 0x80000000ul then + System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(hresult) + //printf "action = %s, hresult = 0x%nx \n" action hresult + +// Depending on the configuration, we may want to include the output file extension in the name +// of the debug symbols file. This function takes output file name and returns debug file name. +let getDebugFileName outfile = + if IL.runningOnMono then + outfile^".mdb" + else + (Filename.chopExtension outfile)^".pdb" + +type PEFileType = X86 | X64 + +let MAX_PATH = 260 + +let E_FAIL = 0x80004005 + +let bytesToWord ((b0 : byte) , (b1 : byte)) = + (int16)b0 ||| ((int16)b1 <<< 8) +let bytesToDWord ((b0 : byte) , (b1 : byte) , (b2 : byte) , (b3 : byte)) = + (int)b0 ||| ((int)b1 <<< 8) ||| ((int)b2 <<< 16) ||| ((int)b3 <<< 24) +let bytesToQWord ((b0 : byte) , (b1 : byte) , (b2 : byte) , (b3 : byte) , (b4 : byte) , (b5 : byte) , (b6 : byte) , (b7 : byte)) = + (int64)b0 ||| ((int64)b1 <<< 8) ||| ((int64)b2 <<< 16) ||| ((int64)b3 <<< 24) ||| ((int64)b4 <<< 32) ||| ((int64)b5 <<< 40) ||| ((int64)b6 <<< 48) ||| ((int64)b7 <<< 56) + +let dwToBytes n = [| (byte)(n &&& 0xff) ; (byte)((n >>> 8) &&& 0xff) ; (byte)((n >>> 16) &&& 0xff) ; (byte)((n >>> 24) &&& 0xff) |], 4 +let wToBytes (n : int16) = [| (byte)(n &&& 0xffs) ; (byte)((n >>> 8) &&& 0xffs) |], 2 + +// REVIEW: factor these classes under one hierarchy, use reflection for creation from buffer and toBytes() +// Though, everything I'd like to unify is static - metaclasses? +type IMAGE_FILE_HEADER (m:int16, secs:int16, tds:int32, ptst:int32, nos:int32, soh:int16, c:int16) = + let mutable machine = m + let mutable numberOfSections = secs + let mutable timeDateStamp = tds + let mutable pointerToSymbolTable = ptst + let mutable numberOfSymbols = nos + let mutable sizeOfOptionalHeader = soh + let mutable characteristics = c + + member x.Machine + with get() = machine + and set(value) = machine <- value + + member x.NumberOfSections + with get() = numberOfSections + and set(value) = numberOfSections <- value + + member x.TimeDateStamp + with get() = timeDateStamp + and set(value) = timeDateStamp <- value + + member x.PointerToSymbolTable + with get() = pointerToSymbolTable + and set(value) = pointerToSymbolTable <- value + + member x.NumberOfSymbols + with get() = numberOfSymbols + and set(value) = numberOfSymbols <- value + + member x.SizeOfOptionalHeader + with get() = sizeOfOptionalHeader + and set(value) = sizeOfOptionalHeader <- value + + member x.Characteristics + with get() = characteristics + and set(value) = characteristics <- value + + static member Width + with get() = 20 + + member x.toBytes () = + let buf = ByteBuffer.Create IMAGE_FILE_HEADER.Width + buf.EmitUInt16 ((uint16)machine) + buf.EmitUInt16 ((uint16)numberOfSections) + buf.EmitInt32 timeDateStamp + buf.EmitInt32 pointerToSymbolTable + buf.EmitInt32 numberOfSymbols + buf.EmitUInt16 ((uint16)sizeOfOptionalHeader) + buf.EmitUInt16 ((uint16)characteristics) + buf.Close() + +let bytesToIFH (buffer : byte[]) (offset : int) = + if (buffer.Length - offset) < IMAGE_FILE_HEADER.Width then + invalidArg "buffer" "buffer too small to fit an IMAGE_FILE_HEADER" + IMAGE_FILE_HEADER( bytesToWord(buffer.[offset], buffer.[offset+1]), // Machine + bytesToWord(buffer.[offset+2], buffer.[offset+3]), // NumberOfSections + bytesToDWord(buffer.[offset+4], buffer.[offset+5], buffer.[offset+6], buffer.[offset+7]), // TimeDateStamp + bytesToDWord(buffer.[offset+8], buffer.[offset+9], buffer.[offset+10], buffer.[offset+11]), // PointerToSymbolTable + bytesToDWord(buffer.[offset+12], buffer.[offset+13], buffer.[offset+14], buffer.[offset+15]), // NumberOfSymbols + bytesToWord(buffer.[offset+16], buffer.[offset+17]), // SizeOfOptionalHeader + bytesToWord(buffer.[offset+18], buffer.[offset+19])) // Characteristics + +type IMAGE_SECTION_HEADER(n:int64, ai:int32, va:int32, srd:int32, prd:int32, pr:int32, pln:int32, nr:int16, nl:int16, c:int32) = + let mutable name = n + let mutable addressInfo = ai // PhysicalAddress / VirtualSize + let mutable virtualAddress = va + let mutable sizeOfRawData = srd + let mutable pointerToRawData = prd + let mutable pointerToRelocations = pr + let mutable pointerToLineNumbers = pln + let mutable numberOfRelocations = nr + let mutable numberOfLineNumbers = nl + let mutable characteristics = c + + member x.Name + with get() = name + and set(value) = name <- value + + member x.PhysicalAddress + with get() = addressInfo + and set(value) = addressInfo <- value + + member x.VirtualSize + with get() = addressInfo + and set(value) = addressInfo <- value + + member x.VirtualAddress + with get() = virtualAddress + and set(value) = virtualAddress <- value + + member x.SizeOfRawData + with get() = sizeOfRawData + and set(value) = sizeOfRawData <- value + + member x.PointerToRawData + with get() = pointerToRawData + and set(value) = pointerToRawData <- value + + member x.PointerToRelocations + with get() = pointerToRelocations + and set(value) = pointerToRelocations <- value + + member x.PointerToLineNumbers + with get() = pointerToLineNumbers + and set(value) = pointerToLineNumbers <- value + + member x.NumberOfRelocations + with get() = numberOfRelocations + and set(value) = numberOfRelocations <- value + + member x.NumberOfLineNumbers + with get() = numberOfLineNumbers + and set(value) = numberOfLineNumbers <- value + + member x.Characteristics + with get() = characteristics + and set(value) = characteristics <- value + + static member Width + with get() = 40 + + member x.toBytes () = + let buf = ByteBuffer.Create IMAGE_SECTION_HEADER.Width + buf.EmitInt64 name + buf.EmitInt32 addressInfo + buf.EmitInt32 virtualAddress + buf.EmitInt32 sizeOfRawData + buf.EmitInt32 pointerToRawData + buf.EmitInt32 pointerToRelocations + buf.EmitInt32 pointerToLineNumbers + buf.EmitUInt16 ((uint16)numberOfRelocations) + buf.EmitUInt16 ((uint16)numberOfLineNumbers) + buf.EmitInt32 characteristics + buf.Close() + + +let bytesToISH (buffer : byte[]) (offset : int) = + if (buffer.Length - offset) < IMAGE_SECTION_HEADER.Width then + invalidArg "buffer" "buffer too small to fit an IMAGE_SECTION_HEADER" + IMAGE_SECTION_HEADER(bytesToQWord(buffer.[offset], buffer.[offset+1], buffer.[offset+2], buffer.[offset+3], buffer.[offset+4], buffer.[offset+5], buffer.[offset+6], buffer.[offset+7]), // Name + bytesToDWord(buffer.[offset+8], buffer.[offset+9], buffer.[offset+10], buffer.[offset+11]), // AddressInfo + bytesToDWord(buffer.[offset+12], buffer.[offset+13], buffer.[offset+14], buffer.[offset+15]), // VirtualAddress + bytesToDWord(buffer.[offset+16], buffer.[offset+17], buffer.[offset+18], buffer.[offset+19]), // SizeOfRawData + bytesToDWord(buffer.[offset+20], buffer.[offset+21], buffer.[offset+22], buffer.[offset+23]), // PointerToRawData + bytesToDWord(buffer.[offset+24], buffer.[offset+25], buffer.[offset+26], buffer.[offset+27]), // PointerToRelocations + bytesToDWord(buffer.[offset+28], buffer.[offset+29], buffer.[offset+30], buffer.[offset+31]), // PointerToLineNumbers + bytesToWord(buffer.[offset+32], buffer.[offset+33]), // NumberOfRelocations + bytesToWord(buffer.[offset+34], buffer.[offset+35]), // NumberOfLineNumbers + bytesToDWord(buffer.[offset+36], buffer.[offset+37], buffer.[offset+38], buffer.[offset+39])) // Characteristics + +type IMAGE_SYMBOL(n:int64, v:int32, sn:int16, t:int16, sc:byte, nas:byte) = + let mutable name = n + let mutable value = v + let mutable sectionNumber = sn + let mutable stype = t + let mutable storageClass = sc + let mutable numberOfAuxSymbols = nas + + member x.Name + with get() = name + and set(v) = name <- v + + member x.Value + with get() = value + and set(v) = value <- v + + member x.SectionNumber + with get() = sectionNumber + and set(v) = sectionNumber <- v + + member x.Type + with get() = stype + and set(v) = stype <- v + + member x.StorageClass + with get() = storageClass + and set(v) = storageClass <- v + + member x.NumberOfAuxSymbols + with get() = numberOfAuxSymbols + and set(v) = numberOfAuxSymbols <- v + + static member Width + with get() = 18 + + member x.toBytes() = + let buf = ByteBuffer.Create IMAGE_SYMBOL.Width + buf.EmitInt64 name + buf.EmitInt32 value + buf.EmitUInt16 ((uint16)sectionNumber) + buf.EmitUInt16 ((uint16)stype) + buf.EmitByte storageClass + buf.EmitByte numberOfAuxSymbols + buf.Close() + +let bytesToIS (buffer : byte[]) (offset : int) = + if (buffer.Length - offset) < IMAGE_SYMBOL.Width then + invalidArg "buffer" "buffer too small to fit an IMAGE_SYMBOL" + IMAGE_SYMBOL( bytesToQWord(buffer.[offset], buffer.[offset+1], buffer.[offset+2], buffer.[offset+3], buffer.[offset+4], buffer.[offset+5], buffer.[offset+6], buffer.[offset+7]), // Name + bytesToDWord(buffer.[offset+8], buffer.[offset+9], buffer.[offset+10], buffer.[offset+11]), // Value + bytesToWord(buffer.[offset+12], buffer.[offset+13]), // SectionNumber + bytesToWord(buffer.[offset+14], buffer.[offset+15]), // Type + buffer.[offset+16], // StorageClass + buffer.[offset+17]) // NumberOfAuxSymbols + +type IMAGE_RELOCATION(va:int32, sti:int32, t:int16) = + let mutable virtualAddress = va // Also RelocCount + let mutable symbolTableIndex = sti + let mutable ty = t // type + + member x.VirtualAddress + with get() = virtualAddress + and set(v) = virtualAddress <- v + + member x.RelocCount + with get() = virtualAddress + and set(v) = virtualAddress <- v + + member x.SymbolTableIndex + with get() = symbolTableIndex + and set(v) = symbolTableIndex <- v + + member x.Type + with get() = ty + and set(v) = ty <- v + + static member Width + with get() = 10 + + member x.toBytes() = + let buf = ByteBuffer.Create IMAGE_RELOCATION.Width + buf.EmitInt32 virtualAddress + buf.EmitInt32 symbolTableIndex + buf.EmitUInt16 ((uint16)ty) + buf.Close() + +let bytesToIR (buffer : byte[]) (offset : int) = + if (buffer.Length - offset) < IMAGE_RELOCATION.Width then + invalidArg "buffer" "buffer too small to fit an IMAGE_RELOCATION" + IMAGE_RELOCATION( bytesToDWord(buffer.[offset], buffer.[offset+1], buffer.[offset+2], buffer.[offset+3]), + bytesToDWord(buffer.[offset+4], buffer.[offset+5], buffer.[offset+6], buffer.[offset+7]), + bytesToWord(buffer.[offset+8], buffer.[offset+9])) + +type IMAGE_RESOURCE_DIRECTORY(c:int32, tds:int32, mjv:int16, mnv:int16, nne:int16, nie:int16) = + let mutable characteristics = c + let mutable timeDateStamp = tds + let mutable majorVersion = mjv + let mutable minorVersion = mnv + let mutable numberOfNamedEntries = nne + let mutable numberOfIdEntries = nie + + member x.Characteristics + with get() = characteristics + and set(v) = characteristics <- v + + member x.TimeDateStamp + with get() = timeDateStamp + and set(v) = timeDateStamp <- v + + member x.MajorVersion + with get() = majorVersion + and set(v) = majorVersion <- v + + member x.MinorVersion + with get() = minorVersion + and set(v) = minorVersion <- v + + member x.NumberOfNamedEntries + with get() = numberOfNamedEntries + and set(v) = numberOfNamedEntries <- v + + member x.NumberOfIdEntries + with get() = numberOfIdEntries + and set(v) = numberOfIdEntries <- v + + static member Width = 16 + + member x.toBytes () = + let buf = ByteBuffer.Create IMAGE_RESOURCE_DIRECTORY.Width + buf.EmitInt32 characteristics + buf.EmitInt32 timeDateStamp + buf.EmitUInt16 ((uint16)majorVersion) + buf.EmitUInt16 ((uint16)minorVersion) + buf.EmitUInt16 ((uint16)numberOfNamedEntries) + buf.EmitUInt16 ((uint16)numberOfIdEntries) + buf.Close() + +let bytesToIRD (buffer:byte[]) (offset:int) = + if (buffer.Length - offset) < IMAGE_RESOURCE_DIRECTORY.Width then + invalidArg "buffer" "buffer too small to fit an IMAGE_RESOURCE_DIRECTORY" + IMAGE_RESOURCE_DIRECTORY( bytesToDWord(buffer.[offset], buffer.[offset+1], buffer.[offset+2], buffer.[offset+3]), // Characteristics + bytesToDWord(buffer.[offset+4], buffer.[offset+5], buffer.[offset+6], buffer.[offset+7]), // TimeDateStamp + bytesToWord(buffer.[offset+8], buffer.[offset+9]), // MajorVersion + bytesToWord(buffer.[offset+10], buffer.[offset+11]), // MinorVersion + bytesToWord(buffer.[offset+12], buffer.[offset+13]), // NumberOfNamedEntries + bytesToWord(buffer.[offset+14], buffer.[offset+15])) // NumberOfIdEntries + +type IMAGE_RESOURCE_DIRECTORY_ENTRY(n:int32, o:int32) = + let mutable name = n + let mutable offset = o + + member x.Name + with get() = name + and set(v) = name <- v + + member x.OffsetToData + with get() = offset + and set(v) = offset <- v + + member x.OffsetToDirectory + with get() = offset &&& 0x7fffffff + + member x.DataIsDirectory + with get() = (offset &&& 0x80000000) <> 0 + + static member Width = 8 + + member x.toBytes () = + let buf = ByteBuffer.Create IMAGE_RESOURCE_DIRECTORY_ENTRY.Width + buf.EmitInt32 name + buf.EmitInt32 offset + buf.Close() + +let bytesToIRDE (buffer:byte[]) (offset:int) = + if (buffer.Length - offset) < IMAGE_RESOURCE_DIRECTORY_ENTRY.Width then + invalidArg "buffer" "buffer too small to fit an IMAGE_RESOURCE_DIRECTORY_ENTRY" + IMAGE_RESOURCE_DIRECTORY_ENTRY( bytesToDWord(buffer.[offset], buffer.[offset+1], buffer.[offset+2], buffer.[offset+3]), // Name + bytesToDWord(buffer.[offset+4], buffer.[offset+5], buffer.[offset+6], buffer.[offset+7])) // Offset + +type IMAGE_RESOURCE_DATA_ENTRY(o:int32, s:int32, c:int32, r:int32) = + let mutable offsetToData = o + let mutable size = s + let mutable codePage = c + let mutable reserved = r + + member x.OffsetToData + with get() = offsetToData + and set(v) = offsetToData <- v + member x.Size + with get() = size + and set(v) = size <- v + member x.CodePage + with get() = codePage + and set(v) = codePage <- v + member x.Reserved + with get() = reserved + and set(v) = reserved <- v + + static member Width = 16 + + member x.toBytes() = + let buf = ByteBuffer.Create IMAGE_RESOURCE_DATA_ENTRY.Width + buf.EmitInt32 offsetToData + buf.EmitInt32 size + buf.EmitInt32 codePage + buf.EmitInt32 reserved + +let bytesToIRDataE (buffer:byte[]) (offset:int) = + if (buffer.Length - offset) < IMAGE_RESOURCE_DATA_ENTRY.Width then + invalidArg "buffer" "buffer too small to fit an IMAGE_RESOURCE_DATA_ENTRY" + IMAGE_RESOURCE_DATA_ENTRY(bytesToDWord(buffer.[offset], buffer.[offset+1], buffer.[offset+2], buffer.[offset+3]), // OffsetToData + bytesToDWord(buffer.[offset+4], buffer.[offset+5], buffer.[offset+6], buffer.[offset+7]), // Size + bytesToDWord(buffer.[offset+8], buffer.[offset+9], buffer.[offset+10], buffer.[offset+11]), // CodePage + bytesToDWord(buffer.[offset+12], buffer.[offset+13], buffer.[offset+14], buffer.[offset+15])) // Reserved + + +type ResFormatHeader() = + let mutable dwDataSize = 0 + let mutable dwHeaderSize = 32 // The eventual supposed size of this structure in memory + let mutable dwTypeID = 0xffff + let mutable dwNameID = 0xffff + let mutable dwDataVersion = 0 + let mutable wMemFlags = 0s + let mutable wLangID = 0s + let mutable dwVersion = 0 + let mutable dwCharacteristics = 0 + + member x.DataSize + with get() = dwDataSize + and set(v) = dwDataSize <- v + member x.HeaderSize + with get() = dwHeaderSize + and set(v) = dwHeaderSize <- v + member x.TypeID + with get() = dwTypeID + and set(v) = dwTypeID <- v + member x.NameID + with get() = dwNameID + and set(v) = dwNameID <- v + member x.DataVersion + with get() = dwDataVersion + and set(v) = dwDataVersion <- v + member x.MemFlags + with get() = wMemFlags + and set(v) = wMemFlags <- v + member x.LangID + with get() = wLangID + and set(v) = wLangID <- v + member x.Version + with get() = dwVersion + and set(v) = dwVersion <- v + member x.Characteristics + with get() = dwCharacteristics + and set(v) = dwCharacteristics <- v + + static member Width = 32 + + member x.toBytes() = + let buf = ByteBuffer.Create ResFormatHeader.Width + buf.EmitInt32 dwDataSize + buf.EmitInt32 dwHeaderSize + buf.EmitInt32 dwTypeID + buf.EmitInt32 dwNameID + buf.EmitInt32 dwDataVersion + buf.EmitUInt16 ((uint16)wMemFlags) + buf.EmitUInt16 ((uint16)wLangID) + buf.EmitInt32 dwVersion + buf.EmitInt32 dwCharacteristics + buf.Close() + +type ResFormatNode(tid:int32, nid:int32, lid:int32, dataOffset:int32, pbLinkedResource:byte[]) = + let mutable resHdr = ResFormatHeader() + let mutable dataEntry = Unchecked.defaultof + let mutable cType = 0 + let mutable wzType = Unchecked.defaultof + let mutable cName = 0 + let mutable wzName = Unchecked.defaultof + + do + if (tid &&& 0x80000000) <> 0 then // REVIEW: Are names and types mutually exclusive? The C++ code didn't seem to think so, but I can't find any documentation + resHdr.TypeID <- 0 ; + let mtid = tid &&& 0x7fffffff + cType <- bytesToDWord(pbLinkedResource.[mtid], pbLinkedResource.[mtid+1], pbLinkedResource.[mtid+2], pbLinkedResource.[mtid+3]) ; + wzType <- Bytes.zeroCreate ((cType + 1) * 2) ; + Bytes.blit pbLinkedResource 4 wzType 0 (cType * 2) + else + resHdr.TypeID <- (0xffff ||| ((tid &&& 0xffff) <<< 16)) ; + + if (nid &&& 0x80000000) <> 0 then + resHdr.NameID <- 0 ; + let mnid = nid &&& 0x7fffffff + cName <- bytesToDWord(pbLinkedResource.[mnid], pbLinkedResource.[mnid+1], pbLinkedResource.[mnid+2], pbLinkedResource.[mnid+3]) ; + wzName <- Bytes.zeroCreate ((cName + 1) * 2) ; + Bytes.blit pbLinkedResource 4 wzName 0 (cName * 2) + else + resHdr.NameID <- (0xffff ||| ((nid &&& 0xffff) <<< 16)) + + resHdr.LangID <- (int16)lid ; + dataEntry <- bytesToIRDataE pbLinkedResource dataOffset ; + resHdr.DataSize <- dataEntry.Size + + member x.ResHdr + with get() = resHdr + member x.DataEntry + with get() = dataEntry + member x.Type + with get() = wzType + member x.Name + with get() = wzName + + member x.Save(ulLinkedResourceBaseRVA:int32, pbLinkedResource:byte[], pUnlinkedResource:byte[], offset:int) = + // Dump them to pUnlinkedResource + // For each resource write header and data + let size = ref 0 + let unlinkedResourceOffset = ref 0 + //resHdr.HeaderSize <- 32 + if Unchecked.defaultof <> wzType then + resHdr.HeaderSize <- resHdr.HeaderSize + ((cType + 1) * 2) - 4 + if Unchecked.defaultof <> wzName then + resHdr.HeaderSize <- resHdr.HeaderSize + ((cName + 1) * 2) - 4 + + let SaveChunk(p : byte[], sz : int) = + if Unchecked.defaultof <> pUnlinkedResource then + Bytes.blit p 0 pUnlinkedResource (!unlinkedResourceOffset + offset) sz + unlinkedResourceOffset := !unlinkedResourceOffset + sz ; + size := !size + sz ; + + () + + // ---- Constant part of the header : DWORD, DWORD + SaveChunk(dwToBytes resHdr.DataSize) + SaveChunk(dwToBytes resHdr.HeaderSize) + + let mutable dwFiller = 0 + + if Unchecked.defaultof <> wzType then + SaveChunk(wzType,((cType + 1) * 2)) + dwFiller <- dwFiller + cType + 1 + else + SaveChunk(dwToBytes resHdr.TypeID) + if Unchecked.defaultof <> wzName then + SaveChunk(wzName, ((cName + 1) * 2)) + dwFiller <- dwFiller + cName + 1 + else + SaveChunk(dwToBytes resHdr.NameID) + + let bNil = Bytes.zeroCreate 3 + + // Align remaining fields on DWORD (nb. poor bit twiddling code taken from ildasm's dres.cpp) + if (dwFiller &&& 0x1) <> 0 then + SaveChunk(bNil, 2) + + //---- Constant part of the header: DWORD,WORD,WORD,DWORD,DWORD + SaveChunk(dwToBytes resHdr.DataVersion) + SaveChunk(wToBytes resHdr.MemFlags) + SaveChunk(wToBytes resHdr.LangID) + SaveChunk(dwToBytes resHdr.Version) + SaveChunk(dwToBytes resHdr.Characteristics) + + //---- Header done, now data + // just copying to make the code a bit cleaner - can blit if this ends up being a liability + let pbData = pbLinkedResource.[(dataEntry.OffsetToData - ulLinkedResourceBaseRVA) ..] + SaveChunk(pbData, dataEntry.Size) + + dwFiller <- dataEntry.Size &&& 0x3 ; + if dwFiller <> 0 then + SaveChunk(bNil, 4 - dwFiller) + + !size + + +let linkNativeResources (unlinkedResources:byte[] list) (ulLinkedResourceBaseRVA:int32) (fileType:PEFileType) (outputFilePath:string) = + let nPEFileType = match fileType with X86 -> 0 | X64 -> 2 + let mutable tempResFiles : string list = [] + let mutable objBytes : byte[] = [||] + + let unlinkedResources = unlinkedResources |> List.filter (fun arr -> arr.Length > 0) + if unlinkedResources.Length = 0 then // bail if there's nothing to link + objBytes + else + // Part 1: Write unlinked resources to an object file for linking + // check if the first dword is 0x0 + let firstDWord = bytesToDWord(unlinkedResources.[0].[0], unlinkedResources.[0].[1], unlinkedResources.[0].[2], unlinkedResources.[0].[3]) + if firstDWord = 0 then + // build the command line invocation string for cvtres.exe + let corSystemDir = System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory() + // We'll use the current dir and a random file name rather than System.IO.Path.GetTempFileName + // to try and prevent the command line invocation string from being > MAX_PATH + + + let outputFilePaths = + if outputFilePath = "" then + [ FileSystem.GetTempPathShim() ] + else + [ FileSystem.GetTempPathShim() ; (outputFilePath ^ "\\") ] + + // Get a unique random file + let rec GetUniqueRandomFileName(path) = + let tfn = path ^ System.IO.Path.GetRandomFileName() + if FileSystem.SafeExists(tfn) then + GetUniqueRandomFileName(path) + else + tfn + + + let machine = if 2 = nPEFileType then "X64" else "X86" + let cmdLineArgsPreamble = sprintf "/NOLOGO /READONLY /MACHINE:%s" machine + + let cvtres = corSystemDir^"cvtres.exe " + + let createCvtresArgs path = + let tempObjFileName = GetUniqueRandomFileName(path) + let mutable cmdLineArgs = sprintf "%s \"/Out:%s\"" cmdLineArgsPreamble tempObjFileName + let mutable resFiles : string list = [] + + for _ulr in unlinkedResources do + let tempResFileName = GetUniqueRandomFileName(path) + resFiles <- tempResFileName :: resFiles ; + cmdLineArgs <- cmdLineArgs ^ " \"" ^ tempResFileName ^ "\"" + let trf = resFiles + let cmd = cmdLineArgs + cmd,tempObjFileName,trf + + let cmdLineArgs,tempObjFileName,tempResFileNames = + let attempts = + outputFilePaths |> + List.map (fun path -> createCvtresArgs path) |> + List.filter (fun ((argstring:string),(_t:string),(_f:string list)) -> (cvtres.Length + argstring.Length) < MAX_PATH) + let invoc,tmp,files = + match attempts with + | [] -> createCvtresArgs ".\\" // hope for the best... + | (i,t,f) :: _rest -> i,t,f // use the first one, since they're listed in order of precedence + tempResFiles <- files + (invoc,tmp,files) + + let cvtresInvocation = cvtres ^ cmdLineArgs + + try + let mutable iFiles = 0 + + for ulr in unlinkedResources do + // REVIEW: What can go wrong here? What happens when the various file calls fail + // dump the unlinked resource bytes into the temp file + System.IO.File.WriteAllBytes(tempResFileNames.[iFiles], ulr) ; + iFiles <- iFiles + 1 + + // call cvtres.exe using the full cmd line string we've generated + + // check to see if the generated string is too long - if it is, fail with E_FAIL + if cvtresInvocation.Length >= MAX_PATH then + System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(E_FAIL) + + // REVIEW: We really shouldn't be calling out to cvtres + let mutable psi = System.Diagnostics.ProcessStartInfo(cvtres) + psi.Arguments <- cmdLineArgs ; + psi.CreateNoWindow <- true ; // REVIEW: For some reason, this still creates a window unless WindowStyle is set to hidden + psi.WindowStyle <- System.Diagnostics.ProcessWindowStyle.Hidden ; + let p = System.Diagnostics.Process.Start(psi) + + // Wait for the process to finish + p.WaitForExit() + + check "Process.Start" p.ExitCode // TODO: really need to check against 0 + + // Conversion was successful, so read the object file + objBytes <- FileSystem.ReadAllBytesShim(tempObjFileName) ; + //Array.Copy(objBytes, pbUnlinkedResource, pbUnlinkedResource.Length) + System.IO.File.Delete(tempObjFileName) + finally + // clean up the temp files + List.iter (fun tempResFileName -> System.IO.File.Delete(tempResFileName)) tempResFiles + + // Part 2: Read the COFF file held in pbUnlinkedResource, spit it out into pResBuffer and apply the COFF fixups + // pResBuffer will become the .rsrc section of the PE file + if (objBytes = Unchecked.defaultof) then + System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(E_FAIL) + + let hMod = bytesToIFH objBytes 0 + + if hMod.SizeOfOptionalHeader <> 0s then + System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(E_FAIL) + + let rsrc01Name = 0x313024637273722eL // ".rsrc$01" + let rsrc02Name = 0x323024637273722eL // ".rsrc$02" + let nullHdr = Unchecked.defaultof + let mutable rsrc01 = nullHdr + let mutable rsrc02 = nullHdr + + for i = 0 to (int)hMod.NumberOfSections do + let pSection = bytesToISH objBytes (IMAGE_FILE_HEADER.Width + (IMAGE_SECTION_HEADER.Width * i)) + if pSection.Name = rsrc01Name then + rsrc01 <- pSection + else if pSection.Name = rsrc02Name then + rsrc02 <- pSection + + if (nullHdr = rsrc01) || (nullHdr = rsrc02) then + // One of the rsrc sections wasn't found + System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(E_FAIL) + + let size = rsrc01.SizeOfRawData + rsrc02.SizeOfRawData + + + let pResBuffer = Bytes.zeroCreate size + + // Copy over the raw data + Bytes.blit objBytes rsrc01.PointerToRawData pResBuffer 0 rsrc01.SizeOfRawData + + // map all the relocs in .rsrc$01 using the reloc and symbol tables in the COFF object + let symbolTableHead = hMod.PointerToSymbolTable + let IMAGE_SYM_CLASS_STATIC = 0x3uy + let IMAGE_SYM_TYPE_NULL = 0x0s + + let GetSymbolEntry (buffer : byte[]) (idx : int) = + bytesToIS buffer (symbolTableHead + (idx * IMAGE_SYMBOL.Width) ) + + for iReloc = 0 to (int)(rsrc01.NumberOfRelocations - 1s) do + let pReloc = bytesToIR objBytes (rsrc01.PointerToRelocations + (iReloc * IMAGE_RELOCATION.Width)) + let IdxSymbol = pReloc.SymbolTableIndex + let pSymbolEntry = GetSymbolEntry objBytes IdxSymbol + + // Ensure the symbol entry is valid for a resource + if ((pSymbolEntry.StorageClass <> IMAGE_SYM_CLASS_STATIC) || + (pSymbolEntry.Type <> IMAGE_SYM_TYPE_NULL) || + (pSymbolEntry.SectionNumber <> 3s)) then + System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(E_FAIL) + + // Ensure that RVA is a valid address inside rsrc02 + if pSymbolEntry.Value >= rsrc02.SizeOfRawData then + // pSymbolEntry.Value is too big + System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(E_FAIL) + + // store the value + let vBuff, vSize = dwToBytes (ulLinkedResourceBaseRVA + rsrc01.SizeOfRawData + pSymbolEntry.Value) + //Bytes.blit objBytes rsrc02.PointerToRawData pResBuffer pReloc.VirtualAddress rsrc02.SizeOfRawData + Bytes.blit vBuff 0 pResBuffer pReloc.VirtualAddress vSize + // Copy $02 (resource raw into pResBuffer + Bytes.blit objBytes rsrc02.PointerToRawData pResBuffer rsrc01.SizeOfRawData rsrc02.SizeOfRawData + + // return the buffer + pResBuffer + + + +let unlinkResource (ulLinkedResourceBaseRVA:int32) (pbLinkedResource:byte[]) = + let mutable nResNodes = 0 + + let pirdType = bytesToIRD pbLinkedResource 0 + let mutable pirdeType = Unchecked.defaultof + let nEntries = pirdType.NumberOfNamedEntries + pirdType.NumberOfIdEntries + + // determine entry buffer size + // TODO: coalesce these two loops + for iEntry = 0 to ((int)nEntries - 1) do + pirdeType <- bytesToIRDE pbLinkedResource (IMAGE_RESOURCE_DIRECTORY.Width + (iEntry * IMAGE_RESOURCE_DIRECTORY_ENTRY.Width)) ; + + if pirdeType.DataIsDirectory then + let nameBase = pirdeType.OffsetToDirectory + let pirdName = bytesToIRD pbLinkedResource nameBase + let mutable pirdeName = Unchecked.defaultof + let nEntries2 = pirdName.NumberOfNamedEntries + pirdName.NumberOfIdEntries + + for iEntry2 = 0 to ((int)nEntries2 - 1) do + pirdeName <- bytesToIRDE pbLinkedResource (nameBase + (iEntry2 * IMAGE_RESOURCE_DIRECTORY_ENTRY.Width)) ; + + if pirdeName.DataIsDirectory then + let langBase = pirdeName.OffsetToDirectory + let pirdLang = bytesToIRD pbLinkedResource langBase + let nEntries3 = pirdLang.NumberOfNamedEntries + pirdLang.NumberOfIdEntries + + nResNodes <- nResNodes + ((int)nEntries3) ; + else + nResNodes <- nResNodes + 1 ; + else + nResNodes <- nResNodes + 1 ; + + let pResNodes : ResFormatNode [] = Array.zeroCreate nResNodes + nResNodes <- 0 ; + + // fill out the entry buffer + for iEntry = 0 to ((int)nEntries - 1) do + pirdeType <- bytesToIRDE pbLinkedResource (IMAGE_RESOURCE_DIRECTORY.Width + (iEntry * IMAGE_RESOURCE_DIRECTORY_ENTRY.Width)) ; + let dwTypeID = pirdeType.Name + // Need to skip VERSION and RT_MANIFEST resources + // REVIEW: ideally we shouldn't allocate space for these, or rename properly so we don't get the naming conflict + let skipResource = (0x10 = dwTypeID) || (0x18 = dwTypeID) + if pirdeType.DataIsDirectory then + let nameBase = pirdeType.OffsetToDirectory + let pirdName = bytesToIRD pbLinkedResource nameBase + let mutable pirdeName = Unchecked.defaultof + let nEntries2 = pirdName.NumberOfNamedEntries + pirdName.NumberOfIdEntries + + for iEntry2 = 0 to ((int)nEntries2 - 1) do + pirdeName <- bytesToIRDE pbLinkedResource (nameBase + (iEntry2 * IMAGE_RESOURCE_DIRECTORY_ENTRY.Width)) ; + let dwNameID = pirdeName.Name + + if pirdeName.DataIsDirectory then + let langBase = pirdeName.OffsetToDirectory + let pirdLang = bytesToIRD pbLinkedResource langBase + let mutable pirdeLang = Unchecked.defaultof + let nEntries3 = pirdLang.NumberOfNamedEntries + pirdLang.NumberOfIdEntries + + for iEntry3 = 0 to ((int)nEntries3 - 1) do + pirdeLang <- bytesToIRDE pbLinkedResource (langBase + (iEntry3 * IMAGE_RESOURCE_DIRECTORY_ENTRY.Width)) ; + let dwLangID = pirdeLang.Name + + if pirdeLang.DataIsDirectory then + // Resource hierarchy exceeds three levels + System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(E_FAIL) + else + if (not skipResource) then + let rfn = ResFormatNode(dwTypeID, dwNameID, dwLangID, pirdeLang.OffsetToData, pbLinkedResource) + pResNodes.[nResNodes] <- rfn ; + nResNodes <- nResNodes + 1 ; + else + if (not skipResource) then + let rfn = ResFormatNode(dwTypeID, dwNameID, 0, pirdeName.OffsetToData, pbLinkedResource) + pResNodes.[nResNodes] <- rfn ; + nResNodes <- nResNodes + 1 ; + else + if (not skipResource) then + let rfn = ResFormatNode(dwTypeID, 0, 0, pirdeType.OffsetToData, pbLinkedResource) // REVIEW: I believe these 0s are what's causing the duplicate res naming problems + pResNodes.[nResNodes] <- rfn ; + nResNodes <- nResNodes + 1 ; + + // Ok, all tree leaves are in ResFormatNode structs, and nResNodes ptrs are in pResNodes + let mutable size = 0 + if nResNodes <> 0 then + size <- size + ResFormatHeader.Width ; // sizeof(ResFormatHeader) + for i = 0 to (nResNodes - 1) do + size <- size + pResNodes.[i].Save(ulLinkedResourceBaseRVA, pbLinkedResource, Unchecked.defaultof, 0) ; + + let pResBuffer = Bytes.zeroCreate size + + if nResNodes <> 0 then + let mutable resBufferOffset = 0 + + // Write a dummy header + let rfh = ResFormatHeader() + let rfhBytes = rfh.toBytes() + Bytes.blit rfhBytes 0 pResBuffer 0 ResFormatHeader.Width + resBufferOffset <- resBufferOffset + ResFormatHeader.Width ; + + for i = 0 to (nResNodes - 1) do + resBufferOffset <- resBufferOffset + pResNodes.[i].Save(ulLinkedResourceBaseRVA, pbLinkedResource, pResBuffer, resBufferOffset) ; + + pResBuffer + + +// PDB Writing + +[] +[] +type IMetaDataDispenser = + abstract DefineScope : unit -> unit // need this here to fill the first vtable slot + abstract OpenScope : [] szScope : string * [] dwOpenFlags:Int32 * [] riid : System.Guid byref * [] punk:Object byref -> unit + +[] +[] +[] +type IMetadataImport = + abstract Placeholder : unit -> unit + +[] +[] +[] +type IMetadataEmit = + abstract Placeholder : unit -> unit + +[] +[< Guid("B01FAFEB-C450-3A4D-BEEC-B4CEEC01E006") ; InterfaceType(ComInterfaceType.InterfaceIsIUnknown) >] +[< ComVisible(false) >] +type ISymUnmanagedDocumentWriter = + abstract SetSource : sourceSize : int * source : byte[] -> unit + abstract SetCheckSum : algorithmId : System.Guid * checkSumSize : int * checkSum : byte [] -> unit + +// Struct used to retrieve info on the debug output +[] +type ImageDebugDirectory = + val Characteristics : int32 + val TimeDateStamp : int32 + val MajorVersion : int16 + val MinorVersion : int16 + val Type : int32 + val SizeOfData : int32 + val AddressOfRawData : int32 + val PointerToRawData : int32 + +[] +[] +type ISymUnmanagedWriter2 = + abstract DefineDocument : [] url : string * + language : System.Guid byref * + languageVendor : System.Guid byref * + documentType : System.Guid byref * + [] RetVal : ISymUnmanagedDocumentWriter byref -> unit + abstract SetUserEntryPoint : entryMethod : uint32 -> unit + abstract OpenMethod : meth : int -> unit + abstract CloseMethod : unit -> unit + abstract OpenScope : startOffset : int * pRetVal : int byref -> unit + abstract CloseScope : endOffset : int -> unit + abstract SetScopeRange : scopeID : int * startOffset : int * endOffset : int -> unit + abstract DefineLocalVariable : [] varname : string * + attributes : int * + cSig : int * + []signature : byte[] * + addressKind : int * + addr1 : int * + addr2 : int * + addr3 : int * + startOffset : int * + endOffset : int -> unit + abstract DefineParameter : [] paramname : string * + attributes : int * + sequence : int * + addressKind : int * + addr1 : int * + addr2 : int * + addr3 : int -> unit + abstract DefineField : parent : int * + [] fieldname : string * + attributes : int * + cSig : int * + []signature : byte[] * + addressKind : int * + addr1 : int * + addr2 : int * + addr3 : int -> unit + abstract DefineGlobalVariable : [] globalvarname : string * + attributes : int * + cSig : int * + []signature : byte[] * + addressKind : int * + addr1 : int * + addr2 : int * + addr3 : int -> unit + abstract Close : unit -> unit + abstract SetSymAttribute : parent : int * + [] attname : string * + cData : int * + []data : byte[] -> unit + abstract OpenNamespace : [] nsname : string -> unit + abstract CloseNamespace : unit -> unit + abstract UsingNamespace : [] fullName : string -> unit + abstract SetMethodSourceRange : startDoc : ISymUnmanagedDocumentWriter * + startLine : int * + startColumn : int * + endDoc : ISymUnmanagedDocumentWriter * + endLine : int * + endColumn : int -> unit + abstract Initialize : emitter : nativeint * + [] filename : string * + stream : IStream * + fullBuild : bool -> unit + abstract GetDebugInfo : iDD : ImageDebugDirectory byref * + cData : int * + pcData : int byref * + []data : byte[] -> unit + abstract DefineSequencePoints : document : ISymUnmanagedDocumentWriter * + spCount : int * + []offsets : int [] * + []lines : int [] * + []columns : int [] * + []endLines : int [] * + []endColumns : int [] -> unit + abstract RemapToken : oldToken : int * newToken : int -> unit + abstract Initialize2 : emitter : nativeint * + [] tempfilename : string * + stream : IStream * + fullBuild : bool * + [] finalfilename : string -> unit + abstract DefineConstant : [] constname : string * + value : Object * + cSig : int * + []signature : byte[] -> unit + abstract Abort : unit -> unit + abstract DefineLocalVariable2 : [] localvarname2 : string * + attributes : int * + sigToken : int * + addressKind : int * + addr1 : int * + addr2 : int * + addr3 : int * + startOffset : int * + endOffset : int -> unit + abstract DefineGlobalVariable2 : [] globalvarname2 : string * + attributes : int * + sigToken : int * + addressKind : int * + addr1 : int * + addr2 : int * + addr3 : int -> unit + abstract DefineConstant2 : [] constantname2 : string * + value : Object * + sigToken : int -> unit + abstract OpenMethod2 : method2 : int * + isect : int * + offset : int -> unit + + +type PdbWriter = { symWriter : ISymUnmanagedWriter2 } +type PdbDocumentWriter = { symDocWriter : ISymUnmanagedDocumentWriter } (* pointer to pDocumentWriter COM object *) + +type idd = + { iddCharacteristics: int32; + iddMajorVersion: int32; (* actually u16 in IMAGE_DEBUG_DIRECTORY *) + iddMinorVersion: int32; (* acutally u16 in IMAGE_DEBUG_DIRECTORY *) + iddType: int32; + iddData: byte[];} + +let pdbInitialize (binaryName:string) (pdbName:string) = + // collect necessary COM types + let CorMetaDataDispenser = System.Type.GetTypeFromProgID("CLRMetaData.CorMetaDataDispenser") + + // get the importer pointer + let mdd = System.Activator.CreateInstance(CorMetaDataDispenser) :?> IMetaDataDispenser + let mutable IID_IMetaDataEmit = new Guid("BA3FEE4C-ECB9-4E41-83B7-183FA41CD859"); + let mutable o = Object() + mdd.OpenScope(binaryName, 0x1, &IID_IMetaDataEmit, &o) // 0x1 = ofWrite + let emitterPtr = Marshal.GetComInterfaceForObject(o, typeof) + let writer = + try + let writer = Activator.CreateInstance(System.Type.GetTypeFromProgID("CorSymWriter_SxS")) :?> ISymUnmanagedWriter2 + writer.Initialize(emitterPtr, pdbName, Unchecked.defaultof, true) + writer + finally + // Marshal.GetComInterfaceForObject adds an extra ref for emitterPtr + if IntPtr.Zero <> emitterPtr then + Marshal.Release(emitterPtr) |> ignore + + { symWriter = writer } + + +[] +do() + +[] +let pdbClose (writer:PdbWriter) = + writer.symWriter.Close() + // CorSymWriter objects (ISymUnmanagedWriter) lock the files they're operating + // on (both the pdb and the binary). The locks are released only when their ref + // count reaches zero, but since we're dealing with RCWs, there's no telling when + // that will be. The result is that sometimes, the pdb and object files will + // still be locked well after the call to this function. + // The SymReader class gets around this problem by implementing the ISymUnmanagedDispose + // interface, which the SymWriter class, unfortunately, does not. + // Right now, take the same approach as mdbg, and manually forcing a collection. + + let rc = Marshal.ReleaseComObject(writer.symWriter) + for i = 0 to (rc - 1) do + Marshal.ReleaseComObject(writer.symWriter) |> ignore + + System.GC.Collect(); + System.GC.Collect(); + System.GC.WaitForPendingFinalizers(); + + System.GC.Collect(); + System.GC.Collect(); + System.GC.WaitForPendingFinalizers(); + + System.GC.Collect(); + System.GC.Collect(); + System.GC.WaitForPendingFinalizers() + +let pdbSetUserEntryPoint (writer:PdbWriter) (entryMethodToken:int32) = + writer.symWriter.SetUserEntryPoint((uint32)entryMethodToken) + +let pdbDefineDocument (writer:PdbWriter) (url:string) = + //3F5162F8-07C6-11D3-9053-00C04FA302A1 + //let mutable corSymLanguageTypeCSharp = System.Guid(0x3F5162F8u, 0x07C6us, 0x11D3us, 0x90uy, 0x53uy, 0x00uy, 0xC0uy, 0x4Fuy, 0xA3uy, 0x02uy, 0xA1uy) + let mutable corSymLanguageTypeFSharp = System.Guid(0xAB4F38C9u, 0xB6E6us, 0x43baus, 0xBEuy, 0x3Buy, 0x58uy, 0x08uy, 0x0Buy, 0x2Cuy, 0xCCuy, 0xE3uy) + let mutable corSymLanguageVendorMicrosoft = System.Guid(0x994b45c4u, 0xe6e9us, 0x11d2us, 0x90uy, 0x3fuy, 0x00uy, 0xc0uy, 0x4fuy, 0xa3uy, 0x02uy, 0xa1uy) + let mutable corSymDocumentTypeText = System.Guid(0x5a869d0bu, 0x6611us, 0x11d3us, 0xbduy, 0x2auy, 0x0uy, 0x0uy, 0xf8uy, 0x8uy, 0x49uy, 0xbduy) + let mutable docWriter = Unchecked.defaultof + writer.symWriter.DefineDocument(url, &corSymLanguageTypeFSharp, &corSymLanguageVendorMicrosoft, &corSymDocumentTypeText, &docWriter) + { symDocWriter = docWriter } + +let pdbOpenMethod (writer:PdbWriter) (methodToken:int32) = + writer.symWriter.OpenMethod(methodToken) + +let pdbCloseMethod (writer:PdbWriter) = + writer.symWriter.CloseMethod() + +let pdbOpenScope (writer:PdbWriter) (startOffset:int32) = + let mutable retInt = 0 + writer.symWriter.OpenScope(startOffset, &retInt) + check "action" (retInt) + +let pdbCloseScope (writer:PdbWriter) (endOffset:int32) = + writer.symWriter.CloseScope(endOffset) + +let pdbDefineLocalVariable (writer:PdbWriter) (name:string) (signature:byte[]) (addr1:int32) = + writer.symWriter.DefineLocalVariable(name, 0, signature.Length, signature, (int)System.Diagnostics.SymbolStore.SymAddressKind.ILOffset, addr1, 0, 0, 0, 0) + +let pdbSetMethodRange (writer:PdbWriter) (docWriter1: PdbDocumentWriter) (startLine:int) (startCol:int) (docWriter2: PdbDocumentWriter) (endLine:int) (endCol:int) = + writer.symWriter.SetMethodSourceRange(docWriter1.symDocWriter, startLine, startCol, docWriter2.symDocWriter, endLine, endCol) + +let pdbDefineSequencePoints (writer:PdbWriter) (docWriter: PdbDocumentWriter) (pts: (int * int * int * int * int) array) = + let offsets = (Array.map (fun (x,_,_,_,_) -> x) pts) + let lines = (Array.map (fun (_,x,_,_,_) -> x) pts) + let columns = (Array.map (fun (_,_,x,_,_) -> x) pts) + let endLines = (Array.map (fun (_,_,_,x,_) -> x) pts) + let endColumns = (Array.map (fun (_,_,_,_,x) -> x) pts) + writer.symWriter.DefineSequencePoints(docWriter.symDocWriter, pts.Length, offsets, lines, columns, endLines, endColumns) + +let pdbGetDebugInfo (writer: PdbWriter) = + let mutable iDD = new ImageDebugDirectory() + let mutable length = 0 + writer.symWriter.GetDebugInfo(&iDD, 0, &length, null) + let mutable data : byte [] = Array.zeroCreate length + writer.symWriter.GetDebugInfo(&iDD, length, &length, data) + + { iddCharacteristics = iDD.Characteristics; + iddMajorVersion = (int32)iDD.MajorVersion; + iddMinorVersion = (int32)iDD.MinorVersion; + iddType = iDD.Type; + iddData = data} + + +// PDB reading +type PdbReader = { symReader: ISymbolReader } +type PdbDocument = { symDocument: ISymbolDocument } +type PdbMethod = { symMethod: ISymbolMethod } +type PdbVariable = { symVariable: ISymbolVariable } +type PdbMethodScope = { symScope: ISymbolScope } + +type PdbSequencePoint = + { pdbSeqPointOffset: int; + pdbSeqPointDocument: PdbDocument; + pdbSeqPointLine: int; + pdbSeqPointColumn: int; + pdbSeqPointEndLine: int; + pdbSeqPointEndColumn: int; } + +let pdbReadOpen (moduleName:string) (path:string) : PdbReader = + if IL.runningOnMono then + { symReader = null } + else + let CorMetaDataDispenser = System.Type.GetTypeFromProgID("CLRMetaData.CorMetaDataDispenser") + let mutable IID_IMetaDataImport = new Guid("7DAC8207-D3AE-4c75-9B67-92801A497D44"); + let mdd = System.Activator.CreateInstance(CorMetaDataDispenser) :?> IMetaDataDispenser + let mutable o : Object = new Object() + mdd.OpenScope(moduleName, 0, &IID_IMetaDataImport, &o) ; + let importerPtr = Marshal.GetComInterfaceForObject(o, typeof) + try +#if CROSS_PLATFORM_COMPILER + // ISymWrapper.dll is not available as a compile-time dependency for the cross-platform compiler, since it is Windows-only + // Access it via reflection instead.System.Diagnostics.SymbolStore.SymBinder + try + let isym = System.Reflection.Assembly.Load("ISymWrapper, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a") + let symbolBinder = isym.CreateInstance("System.Diagnostics.SymbolStore.SymBinder") + let symbolBinderTy = symbolBinder.GetType() + let reader = symbolBinderTy.InvokeMember("GetReader",BindingFlags.Public ||| BindingFlags.InvokeMethod ||| BindingFlags.Instance, null,symbolBinder,[| box importerPtr; box moduleName; box path |]) + { symReader = reader :?> ISymbolReader } + with _ -> + { symReader = null } +#else + let symbolBinder = System.Diagnostics.SymbolStore.SymBinder() + { symReader = symbolBinder.GetReader(importerPtr, moduleName, path) } +#endif + finally + // Marshal.GetComInterfaceForObject adds an extra ref for importerPtr + if IntPtr.Zero <> importerPtr then + Marshal.Release(importerPtr) |> ignore + +// Note, the symbol reader's finalize method will clean up any unmanaged resources. +// If file locks persist, we may want to manually invoke finalize +let pdbReadClose (_reader:PdbReader) : unit = () + +let pdbReaderGetMethod (reader:PdbReader) (token:int32) : PdbMethod = + { symMethod = reader.symReader.GetMethod(System.Diagnostics.SymbolStore.SymbolToken(token)) } + +let pdbReaderGetMethodFromDocumentPosition (reader:PdbReader) (document:PdbDocument) (line:int) (column:int) : PdbMethod = + { symMethod = reader.symReader.GetMethodFromDocumentPosition(document.symDocument, line, column) } + +let pdbReaderGetDocuments (reader:PdbReader) : PdbDocument array = + let arr = reader.symReader.GetDocuments() + Array.map (fun i -> { symDocument=i }) arr + +let pdbReaderGetDocument (reader:PdbReader) (url:string) (language:byte[]) (languageVendor:byte[]) (documentType:byte[]) : PdbDocument = + { symDocument = reader.symReader.GetDocument(url, System.Guid(language), System.Guid(languageVendor), System.Guid(documentType)) } + +let pdbDocumentGetURL (document:PdbDocument) : string = + document.symDocument.URL + +let pdbDocumentGetType (document:PdbDocument) : byte[] (* guid *) = + let guid = document.symDocument.DocumentType + guid.ToByteArray() + +let pdbDocumentGetLanguage (document:PdbDocument) : byte[] (* guid *) = + let guid = document.symDocument.Language + guid.ToByteArray() + +let pdbDocumentGetLanguageVendor (document:PdbDocument) : byte[] = + let guid = document.symDocument.LanguageVendor + guid.ToByteArray() + +let pdbDocumentFindClosestLine (document:PdbDocument) (line:int) : int = + document.symDocument.FindClosestLine(line) + +let pdbMethodGetToken (meth:PdbMethod) : int32 = + let token = meth.symMethod.Token + token.GetToken() + +let pdbMethodGetRootScope (meth:PdbMethod) : PdbMethodScope = + { symScope = meth.symMethod.RootScope } + +let pdbMethodGetSequencePoints (meth:PdbMethod) : PdbSequencePoint array = + let pSize = meth.symMethod.SequencePointCount + let offsets = Array.zeroCreate pSize + let docs = Array.zeroCreate pSize + let lines = Array.zeroCreate pSize + let cols = Array.zeroCreate pSize + let endLines = Array.zeroCreate pSize + let endColumns = Array.zeroCreate pSize + + meth.symMethod.GetSequencePoints(offsets, docs, lines, cols, endLines, endColumns) + + Array.init pSize (fun i -> + { pdbSeqPointOffset = offsets.[i]; + pdbSeqPointDocument = { symDocument = docs.[i] }; + pdbSeqPointLine = lines.[i]; + pdbSeqPointColumn = cols.[i]; + pdbSeqPointEndLine = endLines.[i]; + pdbSeqPointEndColumn = endColumns.[i]; }) + +let pdbScopeGetChildren (scope:PdbMethodScope) : PdbMethodScope array = + let arr = scope.symScope.GetChildren() + Array.map (fun i -> { symScope=i }) arr + +let pdbScopeGetOffsets (scope:PdbMethodScope) : int * int = + (scope.symScope.StartOffset, scope.symScope.EndOffset) + +let pdbScopeGetLocals (scope:PdbMethodScope) : PdbVariable array = + let arr = scope.symScope.GetLocals() + Array.map (fun i -> { symVariable=i }) arr + +let pdbVariableGetName (variable:PdbVariable) : string = + variable.symVariable.Name + +let pdbVariableGetSignature (variable:PdbVariable) : byte[] = + variable.symVariable.GetSignature() + +// the tuple is (AddressKind, AddressField1) +let pdbVariableGetAddressAttributes (variable:PdbVariable) : (int32 * int32) = + (int32 variable.symVariable.AddressKind,variable.symVariable.AddressField1) + +// Key signing +type keyContainerName = string +type keyPair = byte[] +type pubkey = byte[] + +// new mscoree functionality +// This type represents methods that we don't currently need, so I'm leaving unimplemented +type UnusedCOMMethod = unit -> unit +[] +[] +type ICLRMetaHost = + [] + abstract GetRuntime : + [] version : string * + [] interfaceId : System.Guid -> [] System.Object + + // Note, methods that we don't need are stubbed out for now... + abstract GetVersionFromFile : UnusedCOMMethod + abstract EnumerateInstalledRuntimes : UnusedCOMMethod + abstract EnumerateLoadedRuntimes : UnusedCOMMethod + abstract Reserved01 : UnusedCOMMethod + +// Note, We don't currently support ComConversionLoss +[] +[] +type ICLRStrongName = + // Note, methods that we don't need are stubbed out for now... + abstract GetHashFromAssemblyFile : UnusedCOMMethod + abstract GetHashFromAssemblyFileW : UnusedCOMMethod + abstract GetHashFromBlob : UnusedCOMMethod + abstract GetHashFromFile : UnusedCOMMethod + abstract GetHashFromFileW : UnusedCOMMethod + abstract GetHashFromHandle : UnusedCOMMethod + abstract StrongNameCompareAssemblies : UnusedCOMMethod + + [] + abstract StrongNameFreeBuffer : [] pbMemory : nativeint -> unit + + abstract StrongNameGetBlob : UnusedCOMMethod + abstract StrongNameGetBlobFromImage : UnusedCOMMethod + + [] + abstract StrongNameGetPublicKey : + [] pwzKeyContainer : string * + [] pbKeyBlob : byte[] * + [] cbKeyBlob : uint32 * + [] ppbPublicKeyBlob : nativeint byref * + [] pcbPublicKeyBlob : uint32 byref -> unit + + abstract StrongNameHashSize : UnusedCOMMethod + + [] + abstract StrongNameKeyDelete : [] pwzKeyContainer : string -> unit + + abstract StrongNameKeyGen : UnusedCOMMethod + abstract StrongNameKeyGenEx : UnusedCOMMethod + abstract StrongNameKeyInstall : UnusedCOMMethod + + [] + abstract StrongNameSignatureGeneration : + [] pwzFilePath : string * + [] pwzKeyContainer : string * + [] pbKeyBlob : byte [] * + [] cbKeyBlob : uint32 * + [] ppbSignatureBlob : nativeint * + [] pcbSignatureBlob : uint32 byref -> unit + + abstract StrongNameSignatureGenerationEx : UnusedCOMMethod + + [] + abstract StrongNameSignatureSize : + [] pbPublicKeyBlob : byte[] * + [] cbPublicKeyBlob : uint32 * + [] pcbSize : uint32 byref -> unit + + abstract StrongNameSignatureVerification : UnusedCOMMethod + + [] + abstract StrongNameSignatureVerificationEx : + [] pwzFilePath : string * + [] fForceVerification : bool * + [] pfWasVerified : bool byref -> [] bool + + abstract StrongNameSignatureVerificationFromImage : UnusedCOMMethod + abstract StrongNameTokenFromAssembly : UnusedCOMMethod + abstract StrongNameTokenFromAssemblyEx : UnusedCOMMethod + abstract StrongNameTokenFromPublicKey : UnusedCOMMethod + + +[] +[] +type ICLRRuntimeInfo = + // REVIEW: Methods that we don't need will be stubbed out for now... + abstract GetVersionString : unit -> unit + abstract GetRuntimeDirectory : unit -> unit + abstract IsLoaded : unit -> unit + abstract LoadErrorString : unit -> unit + abstract LoadLibrary : unit -> unit + abstract GetProcAddress : unit -> unit + + [] + abstract GetInterface : + [] coClassId : System.Guid * + [] interfaceId : System.Guid -> []System.Object + +[] +[] +let CreateInterface ( + ([] _clsidguid : System.Guid), + ([] _guid : System.Guid), + ([] _metaHost : + ICLRMetaHost byref)) : unit = failwith "CreateInterface" + +let signerOpenPublicKeyFile filePath = + FileSystem.ReadAllBytesShim(filePath) + +let signerOpenKeyPairFile filePath = + FileSystem.ReadAllBytesShim(filePath) + +let mutable iclrsn : ICLRStrongName option = None +let getICLRStrongName () = + match iclrsn with + | None -> + let CLSID_CLRStrongName = System.Guid(0xB79B0ACDu, 0xF5CDus, 0x409bus, 0xB5uy, 0xA5uy, 0xA1uy, 0x62uy, 0x44uy, 0x61uy, 0x0Buy, 0x92uy) + let IID_ICLRStrongName = System.Guid(0x9FD93CCFu, 0x3280us, 0x4391us, 0xB3uy, 0xA9uy, 0x96uy, 0xE1uy, 0xCDuy, 0xE7uy, 0x7Cuy, 0x8Duy) + let CLSID_CLRMetaHost = System.Guid(0x9280188Du, 0x0E8Eus, 0x4867us, 0xB3uy, 0x0Cuy, 0x7Fuy, 0xA8uy, 0x38uy, 0x84uy, 0xE8uy, 0xDEuy) + let IID_ICLRMetaHost = System.Guid(0xD332DB9Eu, 0xB9B3us, 0x4125us, 0x82uy, 0x07uy, 0xA1uy, 0x48uy, 0x84uy, 0xF5uy, 0x32uy, 0x16uy) + let clrRuntimeInfoGuid = System.Guid(0xBD39D1D2u, 0xBA2Fus, 0x486aus, 0x89uy, 0xB0uy, 0xB4uy, 0xB0uy, 0xCBuy, 0x46uy, 0x68uy, 0x91uy) + + let runtimeVer = System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion() + let mutable metaHost = Unchecked.defaultof + CreateInterface(CLSID_CLRMetaHost, IID_ICLRMetaHost, &metaHost) + if Unchecked.defaultof = metaHost then + failwith "Unable to obtain ICLRMetaHost object - check freshness of mscoree.dll" + let runtimeInfo = metaHost.GetRuntime(runtimeVer, clrRuntimeInfoGuid) :?> ICLRRuntimeInfo + let sn = runtimeInfo.GetInterface(CLSID_CLRStrongName, IID_ICLRStrongName) :?> ICLRStrongName + if Unchecked.defaultof = sn then + failwith "Unable to obtain ICLRStrongName object" + iclrsn <- Some(sn) + sn + | Some(sn) -> sn + +let signerGetPublicKeyForKeyPair (kp:byte[]) = + if IL.runningOnMono then + let snt = System.Type.GetType("Mono.Security.StrongName") + let sn = System.Activator.CreateInstance(snt, [| box kp |]) + snt.InvokeMember("PublicKey", (BindingFlags.GetProperty ||| BindingFlags.Instance ||| BindingFlags.Public), null, sn, [| |], Globalization.CultureInfo.InvariantCulture) :?> byte[] + + else + let mutable pSize = 0u + let mutable pBuffer : nativeint = (nativeint)0 + let iclrSN = getICLRStrongName() + + iclrSN.StrongNameGetPublicKey(Unchecked.defaultof, kp, (uint32) kp.Length, &pBuffer, &pSize) |> ignore + let mutable keybuffer : byte [] = Bytes.zeroCreate ((int)pSize) + // Copy the marshalled data over - we'll have to free this ourselves + Marshal.Copy(pBuffer, keybuffer, 0, (int)pSize) + iclrSN.StrongNameFreeBuffer(pBuffer) |> ignore + keybuffer + +let signerGetPublicKeyForKeyContainer kc = + if IL.runningOnMono then + failwith "the use of key containers for strong name signing is not yet supported when running on Mono" + else + let mutable pSize = 0u + let mutable pBuffer : nativeint = (nativeint)0 + let iclrSN = getICLRStrongName() + iclrSN.StrongNameGetPublicKey(kc, Unchecked.defaultof, 0u, &pBuffer, &pSize) |> ignore + let mutable keybuffer : byte [] = Bytes.zeroCreate ((int)pSize) + // Copy the marshalled data over - we'll have to free this ourselves later + Marshal.Copy(pBuffer, keybuffer, 0, (int)pSize) + iclrSN.StrongNameFreeBuffer(pBuffer) |> ignore + keybuffer + +let signerCloseKeyContainer kc = + if IL.runningOnMono then + failwith "the use of key containers for strong name signing is not yet supported when running on Mono" + else + let iclrSN = getICLRStrongName() + iclrSN.StrongNameKeyDelete(kc) |> ignore + +let signerSignatureSize (pk:byte[]) = + if IL.runningOnMono then + if pk.Length > 32 then pk.Length - 32 else 128 + else + let mutable pSize = 0u + let iclrSN = getICLRStrongName() + iclrSN.StrongNameSignatureSize(pk, uint32 pk.Length, &pSize) |> ignore + int pSize + +let signerSignFileWithKeyPair fileName (kp:byte[]) = + if IL.runningOnMono then + let snt = System.Type.GetType("Mono.Security.StrongName") + let sn = System.Activator.CreateInstance(snt, [| box kp |]) + let conv (x:obj) = if (unbox x : bool) then 0 else -1 + snt.InvokeMember("Sign", (BindingFlags.InvokeMethod ||| BindingFlags.Instance ||| BindingFlags.Public), null, sn, [| box fileName |], Globalization.CultureInfo.InvariantCulture) |> conv |> check "Sign" + snt.InvokeMember("Verify", (BindingFlags.InvokeMethod ||| BindingFlags.Instance ||| BindingFlags.Public), null, sn, [| box fileName |], Globalization.CultureInfo.InvariantCulture) |> conv |> check "Verify" + else + let mutable pcb = 0u + let mutable ppb = (nativeint)0 + let mutable ok = false + let iclrSN = getICLRStrongName() + iclrSN.StrongNameSignatureGeneration(fileName, Unchecked.defaultof, kp, uint32 kp.Length, ppb, &pcb) |> ignore + iclrSN.StrongNameSignatureVerificationEx(fileName, true, &ok) |> ignore + +let signerSignFileWithKeyContainer fileName kcName = + if IL.runningOnMono then + failwith "the use of key containers for strong name signing is not yet supported when running on Mono" + else + let mutable pcb = 0u + let mutable ppb = (nativeint)0 + let mutable ok = false + let iclrSN = getICLRStrongName() + iclrSN.StrongNameSignatureGeneration(fileName, kcName, Unchecked.defaultof, 0u, ppb, &pcb) |> ignore + iclrSN.StrongNameSignatureVerificationEx(fileName, true, &ok) |> ignore +#endif diff --git a/src/absil/ilsupp.fsi b/src/absil/ilsupp.fsi new file mode 100644 index 0000000..b52500a --- /dev/null +++ b/src/absil/ilsupp.fsi @@ -0,0 +1,138 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +/// Functions associated with writing binaries which +/// vary between supported implementations of the CLI Common Language +/// Runtime, e.g. between the SSCLI, Mono and the Microsoft CLR. +/// +/// The implementation of the functions can be found in ilsupp-*.fs +module Microsoft.FSharp.Compiler.AbstractIL.Internal.Support + + +type PdbReader +type PdbWriter +val pdbReadClose: PdbReader -> unit +val pdbInitialize : string -> string -> PdbWriter +val absilWriteGetTimeStamp: unit -> int32 + + +#if SILVERLIGHT +#else +open System +open System.Runtime.InteropServices +open System.Diagnostics.SymbolStore +open Internal.Utilities +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.IL + +type IStream = System.Runtime.InteropServices.ComTypes.IStream + + +/// Takes the output file name and returns debug file name. +val getDebugFileName: string -> string + +/// Unmanaged resource file linker - for native resources (not managed ones). +/// The function may be called twice, once with a zero-RVA and +/// arbitrary buffer, and once with the real buffer. The size of the +/// required buffer is returned. +type PEFileType = X86 | X64 + +val linkNativeResources: unlinkedResources:byte[] list -> rva:int32 -> PEFileType -> tempFilePath:string -> byte[] +val unlinkResource: int32 -> byte[] -> byte[] + +/// PDB reader and associated types +type PdbDocument +type PdbMethod +type PdbVariable +type PdbMethodScope + +type PdbSequencePoint = + { pdbSeqPointOffset: int; + pdbSeqPointDocument: PdbDocument; + pdbSeqPointLine: int; + pdbSeqPointColumn: int; + pdbSeqPointEndLine: int; + pdbSeqPointEndColumn: int; } + +val pdbReadOpen: string (* module *) -> string (* path *) -> PdbReader +val pdbReadClose: PdbReader -> unit +val pdbReaderGetMethod: PdbReader -> int32 (* token *) -> PdbMethod +val pdbReaderGetMethodFromDocumentPosition: PdbReader -> PdbDocument -> int (* line *) -> int (* col *) -> PdbMethod +val pdbReaderGetDocuments: PdbReader -> PdbDocument array +val pdbReaderGetDocument: PdbReader -> string (* url *) -> byte[] (* guid *) -> byte[] (* guid *) -> byte[] (* guid *) -> PdbDocument + +val pdbDocumentGetURL: PdbDocument -> string +val pdbDocumentGetType: PdbDocument -> byte[] (* guid *) +val pdbDocumentGetLanguage: PdbDocument -> byte[] (* guid *) +val pdbDocumentGetLanguageVendor: PdbDocument -> byte[] (* guid *) +val pdbDocumentFindClosestLine: PdbDocument -> int -> int + +val pdbMethodGetToken: PdbMethod -> int32 +val pdbMethodGetRootScope: PdbMethod -> PdbMethodScope +val pdbMethodGetSequencePoints: PdbMethod -> PdbSequencePoint array + +val pdbScopeGetChildren: PdbMethodScope -> PdbMethodScope array +val pdbScopeGetOffsets: PdbMethodScope -> int * int +val pdbScopeGetLocals: PdbMethodScope -> PdbVariable array + +val pdbVariableGetName: PdbVariable -> string +val pdbVariableGetSignature: PdbVariable -> byte[] +val pdbVariableGetAddressAttributes: PdbVariable -> int32 (* kind *) * int32 (* addrField1 *) + + +//--------------------------------------------------------------------- +// PDB writer. +//--------------------------------------------------------------------- + +type PdbDocumentWriter + +type idd = + { iddCharacteristics: int32; + iddMajorVersion: int32; (* actually u16 in IMAGE_DEBUG_DIRECTORY *) + iddMinorVersion: int32; (* acutally u16 in IMAGE_DEBUG_DIRECTORY *) + iddType: int32; + iddData: byte[];} + +val pdbInitialize: + string (* .exe/.dll already written and closed *) -> + string (* .pdb to write *) -> + PdbWriter +val pdbClose: PdbWriter -> unit +val pdbSetUserEntryPoint: PdbWriter -> int32 -> unit +val pdbDefineDocument: PdbWriter -> string -> PdbDocumentWriter +val pdbOpenMethod: PdbWriter -> int32 -> unit +val pdbCloseMethod: PdbWriter -> unit +val pdbOpenScope: PdbWriter -> int -> unit +val pdbCloseScope: PdbWriter -> int -> unit +val pdbDefineLocalVariable: PdbWriter -> string -> byte[] -> int32 -> unit +val pdbSetMethodRange: PdbWriter -> PdbDocumentWriter -> int -> int -> PdbDocumentWriter -> int -> int -> unit +val pdbDefineSequencePoints: PdbWriter -> PdbDocumentWriter -> (int * int * int * int * int) array -> unit +val pdbGetDebugInfo: PdbWriter -> idd + +//--------------------------------------------------------------------- +// Strong name signing +//--------------------------------------------------------------------- + +type keyContainerName = string +type keyPair = byte[] +type pubkey = byte[] + +val signerOpenPublicKeyFile: string -> pubkey +val signerOpenKeyPairFile: string -> keyPair +val signerGetPublicKeyForKeyPair: keyPair -> pubkey +val signerGetPublicKeyForKeyContainer: string -> pubkey +val signerCloseKeyContainer: keyContainerName -> unit +val signerSignatureSize: pubkey -> int +val signerSignFileWithKeyPair: string -> keyPair -> unit +val signerSignFileWithKeyContainer: string -> keyContainerName -> unit +#endif diff --git a/src/absil/ilwrite.fs b/src/absil/ilwrite.fs new file mode 100644 index 0000000..05ef087 --- /dev/null +++ b/src/absil/ilwrite.fs @@ -0,0 +1,4655 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + + +module Microsoft.FSharp.Compiler.AbstractIL.ILBinaryWriter + +open Internal.Utilities +open Microsoft.FSharp.Compiler.AbstractIL +#if SILVERLIGHT +#else +open Microsoft.FSharp.Compiler.AbstractIL.ILAsciiWriter +#endif +open Microsoft.FSharp.Compiler.AbstractIL.IL +open Microsoft.FSharp.Compiler.AbstractIL.Diagnostics +open Microsoft.FSharp.Compiler.AbstractIL.Extensions.ILX.Types +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.BinaryConstants +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Support +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library +open Microsoft.FSharp.Compiler.DiagnosticMessage +open Microsoft.FSharp.Compiler.ErrorLogger +open Microsoft.FSharp.Compiler.Range + +open System.Collections.Generic +open System.IO + +#if DEBUG +let showEntryLookups = false +#endif + +//--------------------------------------------------------------------- +// Library +//--------------------------------------------------------------------- + +let reportTime = +#if SILVERLIGHT + (fun _ _ -> ()) +#else + let tFirst = ref None + let tPrev = ref None + fun showTimes descr -> + if showTimes then + let t = System.Diagnostics.Process.GetCurrentProcess().UserProcessorTime.TotalSeconds + let prev = match !tPrev with None -> 0.0 | Some t -> t + let first = match !tFirst with None -> (tFirst := Some t; t) | Some t -> t + dprintf "ilwrite: TIME %10.3f (total) %10.3f (delta) - %s\n" (t - first) (t - prev) descr; + tPrev := Some t +#endif + +//--------------------------------------------------------------------- +// Byte, byte array fragments and other concrete representations +// manipulations. +//--------------------------------------------------------------------- + +// Little-endian encoding of int32 +let b0 n = byte (n &&& 0xFF) +let b1 n = byte ((n >>> 8) &&& 0xFF) +let b2 n = byte ((n >>> 16) &&& 0xFF) +let b3 n = byte ((n >>> 24) &&& 0xFF) + +// Little-endian encoding of int64 +let dw7 n = byte ((n >>> 56) &&& 0xFFL) +let dw6 n = byte ((n >>> 48) &&& 0xFFL) +let dw5 n = byte ((n >>> 40) &&& 0xFFL) +let dw4 n = byte ((n >>> 32) &&& 0xFFL) +let dw3 n = byte ((n >>> 24) &&& 0xFFL) +let dw2 n = byte ((n >>> 16) &&& 0xFFL) +let dw1 n = byte ((n >>> 8) &&& 0xFFL) +let dw0 n = byte (n &&& 0xFFL) + +let bitsOfSingle (x:float32) = System.BitConverter.ToInt32(System.BitConverter.GetBytes(x),0) +let bitsOfDouble (x:float) = System.BitConverter.DoubleToInt64Bits(x) + +let emitBytesViaBuffer f = let bb = ByteBuffer.Create 10 in f bb; bb.Close() + +/// Alignment and padding +let align alignment n = ((n + alignment - 1) / alignment) * alignment + +//--------------------------------------------------------------------- +// Concrete token representations etc. used in PE files +//--------------------------------------------------------------------- + + +type ByteBuffer with + + /// Z32 = compressed unsigned integer + static member Z32Size n = + if n <= 0x7F then 1 + elif n <= 0x3FFF then 2 + else 4 + + /// Emit int32 as compressed unsigned integer + member buf.EmitZ32 n = + if n >= 0 && n <= 0x7F then + buf.EmitIntAsByte n + elif n >= 0x80 && n <= 0x3FFF then + buf.EmitIntAsByte (0x80 ||| (n >>> 8)); + buf.EmitIntAsByte (n &&& 0xFF) + else + buf.EmitIntAsByte (0xc0l ||| ((n >>> 24) &&& 0xFF)); + buf.EmitIntAsByte ( (n >>> 16) &&& 0xFF); + buf.EmitIntAsByte ( (n >>> 8) &&& 0xFF); + buf.EmitIntAsByte ( n &&& 0xFF) + + member buf.EmitPadding n = + for i = 0 to n-1 do + buf.EmitByte 0x0uy + + // Emit compressed untagged integer + member buf.EmitZUntaggedIndex big idx = + if big then buf.EmitInt32 idx + elif idx > 0xffff then failwith "EmitZUntaggedIndex: too big for small address or simple index" + else buf.EmitInt32AsUInt16 idx + + // Emit compressed tagged integer + member buf.EmitZTaggedIndex tag nbits big idx = + let idx2 = (idx <<< nbits) ||| tag + if big then buf.EmitInt32 idx2 + else buf.EmitInt32AsUInt16 idx2 + +let getUncodedToken (tab:TableName) idx = ((tab.Index <<< 24) ||| idx) + +// From ECMA for UserStrings: +// This final byte holds the value 1 if and only if any UTF16 character within the string has any bit set in its top byte, or its low byte is any of the following: +// 0x01–0x08, 0x0E–0x1F, 0x27, 0x2D, +// 0x7F. Otherwise, it holds 0. The 1 signifies Unicode characters that require handling beyond that normally provided for 8-bit encoding sets. + +// HOWEVER, there is a discrepancy here between the ECMA spec and the Microsoft C# implementation. The code below follows the latter. We’ve raised the issue with both teams. See Dev10 bug 850073 for details. + +let markerForUnicodeBytes (b:byte[]) = + let len = b.Length + let rec scan i = + i < len/2 && + (let b1 = Bytes.get b (i*2) + let b2 = Bytes.get b (i*2+1) + (b2 <> 0) + || (b1 >= 0x01 && b1 <= 0x08) // as per ECMA and C# + || (b1 >= 0xE && b1 <= 0x1F) // as per ECMA and C# + || (b1 = 0x27) // as per ECMA and C# + || (b1 = 0x2D) // as per ECMA and C# + || (b1 > 0x7F) // as per C# (but ECMA omits this) + || scan (i+1)) + let marker = if scan 0 then 0x01 else 0x00 + marker + + +// -------------------------------------------------------------------- +// Fixups +// -------------------------------------------------------------------- + +/// Check that the data held at a fixup is some special magic value, as a sanity check +/// to ensure the fixup is being placed at a ood lcoation. +let checkFixup32 (data: byte[]) offset exp = + if data.[offset + 3] <> b3 exp then failwith "fixup sanity check failed"; + if data.[offset + 2] <> b2 exp then failwith "fixup sanity check failed"; + if data.[offset + 1] <> b1 exp then failwith "fixup sanity check failed"; + if data.[offset] <> b0 exp then failwith "fixup sanity check failed" + +let applyFixup32 (data:byte[]) offset v = + data.[offset] <- b0 v; + data.[offset+1] <- b1 v; + data.[offset+2] <- b2 v; + data.[offset+3] <- b3 v + +// -------------------------------------------------------------------- +// PDB data +// -------------------------------------------------------------------- + +type PdbDocumentData = ILSourceDocument + +type PdbLocalVar = + { Name: string; + Signature: byte[]; + /// the local index the name corresponds to + Index: int32 } + +type PdbMethodScope = + { Children: PdbMethodScope array; + StartOffset: int; + EndOffset: int; + Locals: PdbLocalVar array; + (* REVIEW open_namespaces: pdb_namespace array; *) } + +type PdbSourceLoc = + { Document: int; + Line: int; + Column: int; } + +type PdbSequencePoint = + { Document: int; + Offset: int; + Line: int; + Column: int; + EndLine: int; + EndColumn: int; } + override x.ToString() = sprintf "(%d,%d)-(%d,%d)" x.Line x.Column x.EndLine x.EndColumn + +type PdbMethodData = + { MethToken: int32; + MethName:string; + Params: PdbLocalVar array; + RootScope: PdbMethodScope; + Range: (PdbSourceLoc * PdbSourceLoc) option; + SequencePoints: PdbSequencePoint array; } + +module SequencePoint = + let orderBySource sp1 sp2 = + let c1 = compare sp1.Document sp2.Document + if c1 <> 0 then c1 else + let c1 = compare sp1.Line sp2.Line + if c1 <> 0 then c1 else + compare sp1.Column sp2.Column + + let orderByOffset sp1 sp2 = + compare sp1.Offset sp2.Offset + +/// 28 is the size of the IMAGE_DEBUG_DIRECTORY in ntimage.h +let sizeof_IMAGE_DEBUG_DIRECTORY = 28 + +[] +type PdbData = + { EntryPoint: int32 option; + // MVID of the generated .NET module (used by MDB files to identify debug info) + ModuleID: byte[]; + Documents: PdbDocumentData[]; + Methods: PdbMethodData[] } + +//--------------------------------------------------------------------- +// PDB Writer. The function [WritePdbInfo] abstracts the +// imperative calls to the Symbol Writer API. +//--------------------------------------------------------------------- + +#if SILVERLIGHT +#else +let WritePdbInfo fixupOverlappingSequencePoints showTimes f fpdb info = + (try FileSystem.FileDelete fpdb with _ -> ()); + let pdbw = ref Unchecked.defaultof + + try + pdbw := pdbInitialize f fpdb + with _ -> error(Error(FSComp.SR.ilwriteErrorCreatingPdb(fpdb), rangeCmdArgs)) + + match info.EntryPoint with + | None -> () + | Some x -> pdbSetUserEntryPoint !pdbw x + + let docs = info.Documents |> Array.map (fun doc -> pdbDefineDocument !pdbw doc.File) + let getDocument i = + if i < 0 || i > docs.Length then failwith "getDocument: bad doc number"; + docs.[i] + reportTime showTimes (sprintf "PDB: Defined %d documents" info.Documents.Length); + Array.sortInPlaceBy (fun x -> x.MethToken) info.Methods; + + reportTime showTimes (sprintf "PDB: Sorted %d methods" info.Methods.Length); + + // This next bit is a workaround. The sequence points we get + // from F# (which has nothing to do with this module) are actually expression + // marks, i.e. the source ranges they denote are typically + // nested, and each point indicates where the + // code for an expression with a particular range begins. + // This is in many ways a much more convenient form to emit. + // However, it is not the form that debug tools accept nicely. + // However, sequence points are really a non-overlapping, non-nested + // partition of the source code of a method. So here we shorten the + // length of all sequence point marks so they do not go further than + // the next sequence point in the source. + let spCounts = info.Methods |> Array.map (fun x -> x.SequencePoints.Length) + let allSps = Array.concat (Array.map (fun x -> x.SequencePoints) info.Methods |> Array.toList) + let allSps = Array.mapi (fun i sp -> (i,sp)) allSps + if fixupOverlappingSequencePoints then + // sort the sequence points into source order + Array.sortInPlaceWith (fun (_,sp1) (_,sp2) -> SequencePoint.orderBySource sp1 sp2) allSps; + // shorten the ranges of any that overlap with following sequence points + // sort the sequence points back into offset order + for i = 0 to Array.length allSps - 2 do + let n,sp1 = allSps.[i] + let _,sp2 = allSps.[i+1] + if (sp1.Document = sp2.Document) && + (sp1.EndLine > sp2.Line || + (sp1.EndLine = sp2.Line && + sp1.EndColumn >= sp2.Column)) then + let adjustToPrevLine = (sp1.Line < sp2.Line) + allSps.[i] <- n,{sp1 with EndLine = (if adjustToPrevLine then sp2.Line-1 else sp2.Line); + EndColumn = (if adjustToPrevLine then 80 else sp2.Column); } + Array.sortInPlaceBy fst allSps; + + + + let spOffset = ref 0 + info.Methods |> Array.iteri (fun i minfo -> + + let sps = Array.sub allSps !spOffset spCounts.[i] + spOffset := !spOffset + spCounts.[i]; + begin match minfo.Range with + | None -> () + | Some (a,b) -> + pdbOpenMethod !pdbw minfo.MethToken; + + pdbSetMethodRange !pdbw + (getDocument a.Document) a.Line a.Column + (getDocument b.Document) b.Line b.Column; + + // Partition the sequence points by document + let spsets = + let res = (Map.empty : Map) + let add res (_,sp) = + let k = sp.Document + match Map.tryFind k res with + Some xsR -> xsR := sp :: !xsR; res + | None -> Map.add k (ref [sp]) res + + let res = Array.fold add res sps + let res = Map.toList res // ordering may not be stable + List.map (fun (_,x) -> Array.ofList !x) res + + spsets |> List.iter (fun spset -> + if spset.Length > 0 then + Array.sortInPlaceWith SequencePoint.orderByOffset spset; + let sps = + spset |> Array.map (fun sp -> + // Ildiag.dprintf "token 0x%08lx has an sp at offset 0x%08x\n" minfo.MethToken sp.Offset; + (sp.Offset, sp.Line, sp.Column,sp.EndLine, sp.EndColumn)) + // Use of alloca in implementation of pdbDefineSequencePoints can give stack overflow here + if sps.Length < 5000 then + pdbDefineSequencePoints !pdbw (getDocument spset.[0].Document) sps;); + + // Write the scopes + let rec writePdbScope top sco = + if top || sco.Locals.Length <> 0 || sco.Children.Length <> 0 then + pdbOpenScope !pdbw sco.StartOffset; + sco.Locals |> Array.iter (fun v -> pdbDefineLocalVariable !pdbw v.Name v.Signature v.Index); + sco.Children |> Array.iter (writePdbScope false); + pdbCloseScope !pdbw sco.EndOffset; + writePdbScope true minfo.RootScope; + + pdbCloseMethod !pdbw + end); + reportTime showTimes "PDB: Wrote methods"; + let res = pdbGetDebugInfo !pdbw + pdbClose !pdbw; + reportTime showTimes "PDB: Closed"; + res + +#endif + +//--------------------------------------------------------------------- +// Support functions for calling 'Mono.CompilerServices.SymbolWriter' +// assembly dynamically if it is available to the compiler +//--------------------------------------------------------------------- + +open System.Reflection +open Microsoft.FSharp.Reflection + +// Dynamic invoke operator. Implements simple overload resolution based +// on the name and number of parameters only. +// Supports the following cases: +// obj?Foo() // call with no arguments +// obj?Foo(1, "a") // call with two arguments (extracted from tuple) +// NOTE: This doesn’t actually handle all overloads. It just picks first entry with right +// number of arguments. +let (?) this memb (args:'Args) : 'R = + // Get array of 'obj' arguments for the reflection call + let args = + if typeof<'Args> = typeof then [| |] + elif FSharpType.IsTuple typeof<'Args> then Microsoft.FSharp.Reflection.FSharpValue.GetTupleFields(args) + else [| box args |] + + // Get methods and perform overload resolution + let methods = this.GetType().GetMethods() + let bestMatch = methods |> Array.tryFind (fun mi -> mi.Name = memb && mi.GetParameters().Length = args.Length) + match bestMatch with + | Some(mi) -> unbox(mi.Invoke(this, args)) + | None -> error(Error(FSComp.SR.ilwriteMDBMemberMissing(memb), rangeCmdArgs)) + +// Creating instances of needed classes from 'Mono.CompilerServices.SymbolWriter' assembly + +let monoCompilerSvc = "Mono.CompilerServices.SymbolWriter, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" +let ctor (asmName:string) (clsName:string) (args:obj[]) = + let asm = Assembly.Load(asmName) + let ty = asm.GetType(clsName) + System.Activator.CreateInstance(ty, args) + +let createSourceMethodImpl (name:string) (token:int) (namespaceID:int) = + ctor monoCompilerSvc "Mono.CompilerServices.SymbolWriter.SourceMethodImpl" [| box name; box token; box namespaceID |] + +let createWriter (f:string) = + ctor monoCompilerSvc "Mono.CompilerServices.SymbolWriter.MonoSymbolWriter" [| box f |] + +//--------------------------------------------------------------------- +// MDB Writer. Generate debug symbols using the MDB format +//--------------------------------------------------------------------- + +let WriteMdbInfo fmdb f info = + // Note, if we can’t delete it code will fail later + (try FileSystem.FileDelete fmdb with _ -> ()); + + // Try loading the MDB symbol writer from an assembly available on Mono dynamically + // Report an error if the assembly is not available. + let wr = + try createWriter f + with e -> error(Error(FSComp.SR.ilwriteErrorCreatingMdb(), rangeCmdArgs)) + + // NOTE: MonoSymbolWriter doesn't need information about entrypoints, so 'info.EntryPoint' is unused here. + // Write information about Documents. Returns '(SourceFileEntry*CompileUnitEntry)[]' + let docs = + [| for doc in info.Documents do + let doc = wr?DefineDocument(doc.File) + let unit = wr?DefineCompilationUnit(doc) + yield doc, unit |] + + let getDocument i = + if i < 0 || i >= Array.length docs then failwith "getDocument: bad doc number" else docs.[i] + + // Sort methods and write them to the MDB file + Array.sortInPlaceBy (fun x -> x.MethToken) info.Methods + for meth in info.Methods do + // Creates an instance of 'SourceMethodImpl' which is a private class that implements 'IMethodDef' interface + // We need this as an argument to 'OpenMethod' below. Using private class is ugly, but since we don't reference + // the assembly, the only way to implement 'IMethodDef' interface would be dynamically using Reflection.Emit... + let sm = createSourceMethodImpl meth.MethName meth.MethToken 0 + match meth.Range with + | Some(mstart, _) -> + // NOTE: 'meth.Params' is not needed, Mono debugger apparently reads this from meta-data + let _, cue = getDocument mstart.Document + wr?OpenMethod(cue, 0, sm) |> ignore + + // Write sequence points + for sp in meth.SequencePoints do + wr?MarkSequencePoint(sp.Offset, cue?get_SourceFile(), sp.Line, sp.Column, false) + + // Walk through the tree of scopes and write all variables + let rec writeScope (scope:PdbMethodScope) = + wr?OpenScope(scope.StartOffset) |> ignore + for local in scope.Locals do + wr?DefineLocalVariable(local.Index, local.Name) + for child in scope.Children do + writeScope(child) + wr?CloseScope(scope.EndOffset) + writeScope(meth.RootScope) + + // Finished generating debug information for the curretn method + wr?CloseMethod() + | _ -> () + + // Finalize - MDB requires the MVID of the generated .NET module + let moduleGuid = new System.Guid(info.ModuleID |> Array.map byte) + wr?WriteSymbolFile(moduleGuid) + +//--------------------------------------------------------------------- +// Dumps debug info into a text file for testing purposes +//--------------------------------------------------------------------- +open Printf + +let DumpDebugInfo (outfile:string) (info:PdbData) = + use sw = new StreamWriter(outfile + ".debuginfo") + + fprintfn sw "ENTRYPOINT\r\n %b\r\n" info.EntryPoint.IsSome + fprintfn sw "DOCUMENTS" + for i, doc in Seq.zip [0 .. info.Documents.Length-1] info.Documents do + fprintfn sw " [%d] %s" i doc.File + fprintfn sw " Type: %A" doc.DocumentType + fprintfn sw " Language: %A" doc.Language + fprintfn sw " Vendor: %A" doc.Vendor + + // Sort methods (because they are sorted in PDBs/MDBs too) + fprintfn sw "\r\nMETHODS" + Array.sortInPlaceBy (fun x -> x.MethToken) info.Methods + for meth in info.Methods do + fprintfn sw " %s" meth.MethName + fprintfn sw " Params: %A" [ for p in meth.Params -> sprintf "%d: %s" p.Index p.Name ] + fprintfn sw " Range: %A" (meth.Range |> Option.map (fun (f, t) -> + sprintf "[%d,%d:%d] - [%d,%d:%d]" f.Document f.Line f.Column t.Document t.Line t.Column)) + fprintfn sw " Points:" + + for sp in meth.SequencePoints do + fprintfn sw " - Doc: %d Offset:%d [%d:%d]-[%d-%d]" sp.Document sp.Offset sp.Line sp.Column sp.EndLine sp.EndColumn + + // Walk through the tree of scopes and write all variables + fprintfn sw " Scopes:" + let rec writeScope offs (scope:PdbMethodScope) = + fprintfn sw " %s- [%d-%d]" offs scope.StartOffset scope.EndOffset + if scope.Locals.Length > 0 then + fprintfn sw " %s Locals: %A" offs [ for p in scope.Locals -> sprintf "%d: %s" p.Index p.Name ] + for child in scope.Children do writeScope (offs + " ") child + writeScope "" meth.RootScope + fprintfn sw "" + + +//--------------------------------------------------------------------- +// Strong name signing +//--------------------------------------------------------------------- + +#if SILVERLIGHT +type ILStrongNameSigner = + | NeverImplemented + static member OpenPublicKeyFile (_s:string) = NeverImplemented + static member OpenPublicKey (_pubkey:byte[]) = NeverImplemented + static member OpenKeyPairFile (_s:string) = NeverImplemented + static member OpenKeyContainer (_s:string) = NeverImplemented + member s.Close() = () + member s.IsFullySigned = true + member s.PublicKey = [| |] + member s.SignatureSize = 0x80 + member s.SignFile _file = () +#else +type ILStrongNameSigner = + | PublicKeySigner of Support.pubkey + | KeyPair of Support.keyPair + | KeyContainer of Support.keyContainerName + + static member OpenPublicKeyFile s = PublicKeySigner(Support.signerOpenPublicKeyFile s) + + static member OpenPublicKey pubkey = PublicKeySigner(pubkey) + + static member OpenKeyPairFile s = KeyPair(Support.signerOpenKeyPairFile s) + + static member OpenKeyContainer s = KeyContainer(s) + + member s.Close() = + match s with + | PublicKeySigner _ + | KeyPair _ -> () + | KeyContainer containerName -> Support.signerCloseKeyContainer(containerName) + + member s.IsFullySigned = + match s with + | PublicKeySigner _ -> false + | KeyPair _ | KeyContainer _ -> true + + member s.PublicKey = + match s with + | PublicKeySigner p -> p + | KeyPair kp -> Support.signerGetPublicKeyForKeyPair kp + | KeyContainer kn -> Support.signerGetPublicKeyForKeyContainer kn + + member s.SignatureSize = + try Support.signerSignatureSize(s.PublicKey) + with e -> + failwith ("A call to StrongNameSignatureSize failed ("+e.Message+")"); + 0x80 + + member s.SignFile file = + match s with + | PublicKeySigner _ -> () + | KeyPair kp -> Support.signerSignFileWithKeyPair file kp + | KeyContainer kn -> Support.signerSignFileWithKeyContainer file kn + +#endif + +//--------------------------------------------------------------------- +// TYPES FOR TABLES +//--------------------------------------------------------------------- + +module RowElementTags = + let [] UShort = 0 + let [] ULong = 1 + let [] Data = 2 + let [] DataResources = 3 + let [] Guid = 4 + let [] Blob = 5 + let [] String = 6 + let [] SimpleIndexMin = 7 + let SimpleIndex (t : TableName) = assert (t.Index <= 112); SimpleIndexMin + t.Index + let [] SimpleIndexMax = 119 + + let [] TypeDefOrRefOrSpecMin = 120 + let TypeDefOrRefOrSpec (t: TypeDefOrRefTag) = assert (t.Tag <= 2); TypeDefOrRefOrSpecMin + t.Tag (* + 111 + 1 = 0x70 + 1 = max TableName.Tndex + 1 *) + let [] TypeDefOrRefOrSpecMax = 122 + + let [] TypeOrMethodDefMin = 123 + let TypeOrMethodDef (t: TypeOrMethodDefTag) = assert (t.Tag <= 1); TypeOrMethodDefMin + t.Tag (* + 2 + 1 = max TypeDefOrRefOrSpec.Tag + 1 *) + let [] TypeOrMethodDefMax = 124 + + let [] HasConstantMin = 125 + let HasConstant (t: HasConstantTag) = assert (t.Tag <= 2); HasConstantMin + t.Tag (* + 1 + 1 = max TypeOrMethodDef.Tag + 1 *) + let [] HasConstantMax = 127 + + let [] HasCustomAttributeMin = 128 + let HasCustomAttribute (t: HasCustomAttributeTag) = assert (t.Tag <= 21); HasCustomAttributeMin + t.Tag (* + 2 + 1 = max HasConstant.Tag + 1 *) + let [] HasCustomAttributeMax = 149 + + let [] HasFieldMarshalMin = 150 + let HasFieldMarshal (t: HasFieldMarshalTag) = assert (t.Tag <= 1); HasFieldMarshalMin + t.Tag (* + 21 + 1 = max HasCustomAttribute.Tag + 1 *) + let [] HasFieldMarshalMax = 151 + + let [] HasDeclSecurityMin = 152 + let HasDeclSecurity (t: HasDeclSecurityTag) = assert (t.Tag <= 2); HasDeclSecurityMin + t.Tag (* + 1 + 1 = max HasFieldMarshal.Tag + 1 *) + let [] HasDeclSecurityMax = 154 + + let [] MemberRefParentMin = 155 + let MemberRefParent (t: MemberRefParentTag) = assert (t.Tag <= 4); MemberRefParentMin + t.Tag (* + 2 + 1 = max HasDeclSecurity.Tag + 1 *) + let [] MemberRefParentMax = 159 + + let [] HasSemanticsMin = 160 + let HasSemantics (t: HasSemanticsTag) = assert (t.Tag <= 1); HasSemanticsMin + t.Tag (* + 4 + 1 = max MemberRefParent.Tag + 1 *) + let [] HasSemanticsMax = 161 + + let [] MethodDefOrRefMin = 162 + let MethodDefOrRef (t: MethodDefOrRefTag) = assert (t.Tag <= 2); MethodDefOrRefMin + t.Tag (* + 1 + 1 = max HasSemantics.Tag + 1 *) + let [] MethodDefOrRefMax = 164 + + let [] MemberForwardedMin = 165 + let MemberForwarded (t: MemberForwardedTag) = assert (t.Tag <= 1); MemberForwardedMin + t.Tag (* + 2 + 1 = max MethodDefOrRef.Tag + 1 *) + let [] MemberForwardedMax = 166 + + let [] ImplementationMin = 167 + let Implementation (t: ImplementationTag) = assert (t.Tag <= 2); ImplementationMin + t.Tag (* + 1 + 1 = max MemberForwarded.Tag + 1 *) + let [] ImplementationMax = 169 + + let [] CustomAttributeTypeMin = 170 + let CustomAttributeType (t: CustomAttributeTypeTag) = assert (t.Tag <= 3); CustomAttributeTypeMin + t.Tag (* + 2 + 1 = max Implementation.Tag + 1 *) + let [] CustomAttributeTypeMax = 173 + + let [] ResolutionScopeMin = 174 + let ResolutionScope (t: ResolutionScopeTag) = assert (t.Tag <= 4); ResolutionScopeMin + t.Tag (* + 3 + 1 = max CustomAttributeType.Tag + 1 *) + let [] ResolutionScopeMax = 178 + +[] +type RowElement(tag:int32, idx: int32) = + + member x.Tag = tag + member x.Val = idx + +// These create RowElements +let UShort (x:uint16) = RowElement(RowElementTags.UShort, int32 x) +let ULong (x:int32) = RowElement(RowElementTags.ULong, x) +/// Index into cenv.data or cenv.resources. Gets fixed up later once we known an overall +/// location for the data section. flag indicates if offset is relative to cenv.resources. +let Data (x:int, k:bool) = RowElement((if k then RowElementTags.DataResources else RowElementTags.Data ), x) +/// pos. in guid array +let Guid (x:int) = RowElement(RowElementTags.Guid, x) +/// pos. in blob array +let Blob (x:int) = RowElement(RowElementTags.Blob, x) +/// pos. in string array +let StringE (x:int) = RowElement(RowElementTags.String, x) +/// pos. in some table +let SimpleIndex (t, x:int) = RowElement(RowElementTags.SimpleIndex t, x) +let TypeDefOrRefOrSpec (t, x:int) = RowElement(RowElementTags.TypeDefOrRefOrSpec t, x) +let TypeOrMethodDef (t, x:int) = RowElement(RowElementTags.TypeOrMethodDef t, x) +let HasConstant (t, x:int) = RowElement(RowElementTags.HasConstant t, x) +let HasCustomAttribute (t, x:int) = RowElement(RowElementTags.HasCustomAttribute t, x) +let HasFieldMarshal (t, x:int) = RowElement(RowElementTags.HasFieldMarshal t, x) +let HasDeclSecurity (t, x:int) = RowElement(RowElementTags.HasDeclSecurity t, x) +let MemberRefParent (t, x:int) = RowElement(RowElementTags.MemberRefParent t, x) +let HasSemantics (t, x:int) = RowElement(RowElementTags.HasSemantics t, x) +let MethodDefOrRef (t, x:int) = RowElement(RowElementTags.MethodDefOrRef t, x) +let MemberForwarded (t, x:int) = RowElement(RowElementTags.MemberForwarded t, x) +let Implementation (t, x:int) = RowElement(RowElementTags.Implementation t, x) +let CustomAttributeType (t, x:int) = RowElement(RowElementTags.CustomAttributeType t, x) +let ResolutionScope (t, x:int) = RowElement(RowElementTags.ResolutionScope t, x) +(* +type RowElement = + | UShort of uint16 + | ULong of int32 + | Data of int * bool // Index into cenv.data or cenv.resources. Will be adjusted later in writing once we fix an overall location for the data section. flag indicates if offset is relative to cenv.resources. + | Guid of int // pos. in guid array + | Blob of int // pos. in blob array + | String of int // pos. in string array + | SimpleIndex of TableName * int // pos. in some table + | TypeDefOrRefOrSpec of TypeDefOrRefTag * int + | TypeOrMethodDef of TypeOrMethodDefTag * int + | HasConstant of HasConstantTag * int + | HasCustomAttribute of HasCustomAttributeTag * int + | HasFieldMarshal of HasFieldMarshalTag * int + | HasDeclSecurity of HasDeclSecurityTag * int + | MemberRefParent of MemberRefParentTag * int + | HasSemantics of HasSemanticsTag * int + | MethodDefOrRef of MethodDefOrRefTag * int + | MemberForwarded of MemberForwardedTag * int + | Implementation of ImplementationTag * int + | CustomAttributeType of CustomAttributeTypeTag * int + | ResolutionScope of ResolutionScopeTag * int +*) + +type BlobIndex = int +type StringIndex = int + +let BlobIndex (x:BlobIndex) : int = x +let StringIndex (x:StringIndex) : int = x + +/// Abstract, general type of metadata table rows +type IGenericRow = + abstract GetGenericRow : unit -> RowElement[] + +/// Shared rows are used for the ILTypeRef, ILMethodRef, ILMethodSpec, etc. tables +/// where entries can be shared and need to be made unique through hash-cons'ing +type ISharedRow = + inherit IGenericRow + +/// This is the representation of shared rows is used for most shared row types. +/// Rows ILAssemblyRef and ILMethodRef are very common and are given their own +/// representations. +type SimpleSharedRow(elems: RowElement[]) = + let hashCode = hash elems // precompute to give more efficient hashing and equality comparisons + interface ISharedRow with + member x.GetGenericRow() = elems + member x.GenericRow = elems + override x.GetHashCode() = hashCode + override x.Equals(obj:obj) = + match obj with + | :? SimpleSharedRow as y -> elems = y.GenericRow + | _ -> false + +let inline combineHash x2 acc = 37 * acc + x2 // (acc <<< 6 + acc >>> 2 + x2 + 0x9e3779b9) + +let hashRow (elems:RowElement[]) = + let mutable acc = 0 + for i in 0 .. elems.Length - 1 do + acc <- (acc <<< 1) + elems.[i].Tag + elems.[i].Val + 631 + acc + +let equalRows (elems:RowElement[]) (elems2:RowElement[]) = + if elems.Length <> elems2.Length then false else + let mutable ok = true + let n = elems.Length + let mutable i = 0 + while ok && i < n do + if elems.[i].Tag <> elems2.[i].Tag || elems.[i].Val <> elems2.[i].Val then ok <- false + i <- i + 1 + ok + +/// Unshared rows are used for definitional tables where elements do not need to be made unique +/// e.g. ILMethodDef and ILTypeDef. Most tables are like this. We don't precompute a +/// hash code for these rows, and indeed the GetHashCode and Equals should not be needed. +type UnsharedRow(elems: RowElement[]) = + interface IGenericRow with + member x.GetGenericRow() = elems + member x.GenericRow = elems + override x.GetHashCode() = hashRow elems + override x.Equals(obj:obj) = + match obj with + | :? UnsharedRow as y -> equalRows elems y.GenericRow + | _ -> false + +/// Special representation for ILAssemblyRef rows with pre-computed hash +type AssemblyRefRow(s1,s2,s3,s4,l1,b1,nameIdx,str2,b2) = + let hashCode = hash nameIdx + let genericRow = [| UShort s1; UShort s2; UShort s3; UShort s4; ULong l1; Blob b1; StringE nameIdx; StringE str2; Blob b2 |] + interface ISharedRow with + member x.GetGenericRow() = genericRow + member x.GenericRow = genericRow + override x.GetHashCode() = hashCode + override x.Equals(obj:obj) = + match obj with + | :? AssemblyRefRow as y -> equalRows genericRow y.GenericRow + | _ -> false + +/// Special representation of a very common kind of row with pre-computed hash +type MemberRefRow(mrp:RowElement,nmIdx:StringIndex,blobIdx:BlobIndex) = + let hash = combineHash (hash blobIdx) (combineHash (hash nmIdx) (hash mrp)) + let genericRow = [| mrp; StringE nmIdx; Blob blobIdx |] + interface ISharedRow with + member x.GetGenericRow() = genericRow + member x.GenericRow = genericRow + override x.GetHashCode() = hash + override x.Equals(obj:obj) = + match obj with + | :? MemberRefRow as y -> equalRows genericRow y.GenericRow + | _ -> false + +//===================================================================== +//===================================================================== +// IL --> TABLES+CODE +//===================================================================== +//===================================================================== + +// This environment keeps track of how many generic parameters are in scope. +// This lets us translate AbsIL type variable number to IL type variable numbering +type ILTypeWriterEnv = { EnclosingTyparCount: int } +let envForTypeDef (td:ILTypeDef) = { EnclosingTyparCount=td.GenericParams.Length } +let envForMethodRef env (typ:ILType) = { EnclosingTyparCount=(match typ with ILType.Array _ -> env.EnclosingTyparCount | _ -> typ.GenericArgs.Length) } +let envForNonGenericMethodRef _mref = { EnclosingTyparCount=System.Int32.MaxValue } +let envForFieldSpec (fspec:ILFieldSpec) = { EnclosingTyparCount=fspec.EnclosingType.GenericArgs.Length } +let envForOverrideSpec (ospec:ILOverridesSpec) = { EnclosingTyparCount=ospec.EnclosingType.GenericArgs.Length } + +//--------------------------------------------------------------------- +// TABLES +//--------------------------------------------------------------------- + +[] +type MetadataTable<'T> = + { name: string; + dict: Dictionary<'T, int>; // given a row, find its entry number +#if DEBUG + mutable lookups: int; +#endif + mutable rows: ResizeArray<'T> ; } + member x.Count = x.rows.Count + + static member New(nm,hashEq) = + { name=nm; +#if DEBUG + lookups=0; +#endif + dict = new Dictionary<_,_>(100, hashEq); + rows= new ResizeArray<_>(); } + + member tbl.EntriesAsArray = +#if DEBUG + if showEntryLookups then dprintf "--> table %s had %d entries and %d lookups\n" tbl.name tbl.Count tbl.lookups; +#endif + tbl.rows |> ResizeArray.toArray + + member tbl.Entries = +#if DEBUG + if showEntryLookups then dprintf "--> table %s had %d entries and %d lookups\n" tbl.name tbl.Count tbl.lookups; +#endif + tbl.rows |> ResizeArray.toList + + member tbl.AddSharedEntry x = + let n = tbl.rows.Count + 1 + tbl.dict.[x] <- n; + tbl.rows.Add(x); + n + + member tbl.AddUnsharedEntry x = + let n = tbl.rows.Count + 1 + tbl.rows.Add(x); + n + + member tbl.FindOrAddSharedEntry x = +#if DEBUG + tbl.lookups <- tbl.lookups + 1; +#endif + let mutable res = Unchecked.defaultof<_> + let ok = tbl.dict.TryGetValue(x,&res) + if ok then res + else tbl.AddSharedEntry x + + + /// This is only used in one special place - see further below. + member tbl.SetRowsOfTable t = + tbl.rows <- ResizeArray.ofArray t; + let h = tbl.dict + h.Clear(); + t |> Array.iteri (fun i x -> h.[x] <- (i+1)) + + member tbl.AddUniqueEntry nm geterr x = + if tbl.dict.ContainsKey x then failwith ("duplicate entry '"+geterr x+"' in "+nm+" table") + else tbl.AddSharedEntry x + + member tbl.GetTableEntry x = tbl.dict.[x] + +//--------------------------------------------------------------------- +// Keys into some of the tables +//--------------------------------------------------------------------- + +/// We use this key type to help find ILMethodDefs for MethodRefs +type MethodDefKey(tidx:int,garity:int,nm:string,rty:ILType,argtys:ILTypes,isStatic:bool) = + // Precompute the hash. The hash doesn't include the return type or + // argument types (only argument type count). This is very important, since + // hashing these is way too expensive + let hashCode = + hash tidx + |> combineHash (hash garity) + |> combineHash (hash nm) + |> combineHash (hash argtys.Length) + |> combineHash (hash isStatic) + member key.TypeIdx = tidx + member key.GenericArity = garity + member key.Name = nm + member key.ReturnType = rty + member key.ArgTypes = argtys + member key.IsStatic = isStatic + override x.GetHashCode() = hashCode + override x.Equals(obj:obj) = + match obj with + | :? MethodDefKey as y -> + tidx = y.TypeIdx && + garity = y.GenericArity && + nm = y.Name && + // note: these next two use structural equality on AbstractIL ILType values + rty = y.ReturnType && + ILList.lengthsEqAndForall2 (fun a b -> a = b) argtys y.ArgTypes && + isStatic = y.IsStatic + | _ -> false + +/// We use this key type to help find ILFieldDefs for FieldRefs +type FieldDefKey(tidx:int,nm:string,ty:ILType) = + // precompute the hash. hash doesn't include the type + let hashCode = hash tidx |> combineHash (hash nm) + member key.TypeIdx = tidx + member key.Name = nm + member key.Type = ty + override x.GetHashCode() = hashCode + override x.Equals(obj:obj) = + match obj with + | :? FieldDefKey as y -> + tidx = y.TypeIdx && + nm = y.Name && + ty = y.Type + | _ -> false + +type PropertyTableKey = PropKey of int (* type. def. idx. *) * string * ILType * ILTypes +type EventTableKey = EventKey of int (* type. def. idx. *) * string +type TypeDefTableKey = TdKey of string list (* enclosing *) * string (* type name *) + +//--------------------------------------------------------------------- +// The Writer Context +//--------------------------------------------------------------------- + +[] +type cenv = + { mscorlib: ILScopeRef; + ilg: ILGlobals; + emitTailcalls: bool; + showTimes: bool; + desiredMetadataVersion: ILVersionInfo; + requiredDataFixups: (int32 * (int * bool)) list ref; + /// References to strings in codestreams: offset of code and a (fixup-location , string token) list) + mutable requiredStringFixups: (int32 * (int * int) list) list; + codeChunks: ByteBuffer; + mutable nextCodeAddr: int32; + + // Collected debug information + mutable moduleGuid: byte[] + generatePdb: bool; + pdbinfo: ResizeArray; + documents: MetadataTable; + /// Raw data, to go into the data section + data: ByteBuffer; + /// Raw resource data, to go into the data section + resources: ByteBuffer; + mutable entrypoint: (bool * int) option; + + /// Caches + trefCache: Dictionary; + + /// The following are all used to generate unique items in the output + tables: array>; + AssemblyRefs: MetadataTable; + fieldDefs: MetadataTable; + methodDefIdxsByKey: MetadataTable; + methodDefIdxs: Dictionary; + propertyDefs: MetadataTable; + eventDefs: MetadataTable; + typeDefs: MetadataTable; + guids: MetadataTable; + blobs: MetadataTable; + strings: MetadataTable; + userStrings: MetadataTable; + } + member cenv.GetTable (tab:TableName) = cenv.tables.[tab.Index] + + + member cenv.AddCode ((reqdStringFixupsOffset,requiredStringFixups),code) = + if align 4 cenv.nextCodeAddr <> cenv.nextCodeAddr then dprintn "warning: code not 4-byte aligned"; + cenv.requiredStringFixups <- (cenv.nextCodeAddr + reqdStringFixupsOffset, requiredStringFixups) :: cenv.requiredStringFixups; + cenv.codeChunks.EmitBytes code; + cenv.nextCodeAddr <- cenv.nextCodeAddr + code.Length + + member cenv.GetCode() = cenv.codeChunks.Close() + + +let FindOrAddRow (cenv:cenv) tbl (x:IGenericRow) = cenv.GetTable(tbl).FindOrAddSharedEntry x + +// Shared rows must be hash-cons'd to be made unique (no duplicates according to contents) +let AddSharedRow (cenv:cenv) tbl (x:ISharedRow) = cenv.GetTable(tbl).AddSharedEntry (x :> IGenericRow) + +// Unshared rows correspond to definition elements (e.g. a ILTypeDef or a ILMethodDef) +let AddUnsharedRow (cenv:cenv) tbl (x:UnsharedRow) = cenv.GetTable(tbl).AddUnsharedEntry (x :> IGenericRow) + +let metadataSchemaVersionSupportedByCLRVersion v = + // Whidbey Beta 1 version numbers are between 2.0.40520.0 and 2.0.40607.0 + // Later Whidbey versions are post 2.0.40607.0.. However we assume + // internal builds such as 2.0.x86chk are Whidbey Beta 2 or later + if compareILVersions v (parseILVersion ("2.0.40520.0")) >= 0 && + compareILVersions v (parseILVersion ("2.0.40608.0")) < 0 then 1,1 + elif compareILVersions v (parseILVersion ("2.0.0.0")) >= 0 then 2,0 + else 1,0 + +let headerVersionSupportedByCLRVersion v = + // The COM20HEADER version number + // Whidbey version numbers are 2.5 + // Earlier are 2.0 + // From an email from jeffschw: "Be built with a compiler that marks the COM20HEADER with Major >=2 and Minor >= 5. The V2.0 compilers produce images with 2.5, V1.x produces images with 2.0." + if compareILVersions v (parseILVersion ("2.0.0.0")) >= 0 then 2,5 + else 2,0 + +let peOptionalHeaderByteByCLRVersion v = + // A flag in the PE file optional header seems to depend on CLI version + // Whidbey version numbers are 8 + // Earlier are 6 + // Tools are meant to ignore this, but the VS Profiler wants it to have the right value + if compareILVersions v (parseILVersion ("2.0.0.0")) >= 0 then 8 + else 6 + +// returned by writeBinaryAndReportMappings +[] +type ILTokenMappings = + { TypeDefTokenMap: ILTypeDef list * ILTypeDef -> int32; + FieldDefTokenMap: ILTypeDef list * ILTypeDef -> ILFieldDef -> int32; + MethodDefTokenMap: ILTypeDef list * ILTypeDef -> ILMethodDef -> int32; + PropertyTokenMap: ILTypeDef list * ILTypeDef -> ILPropertyDef -> int32; + EventTokenMap: ILTypeDef list * ILTypeDef -> ILEventDef -> int32 } + +let recordRequiredDataFixup requiredDataFixups (buf: ByteBuffer) pos lab = + requiredDataFixups := (pos,lab) :: !requiredDataFixups; + // Write a special value in that we check later when applying the fixup + buf.EmitInt32 0xdeaddddd + +//--------------------------------------------------------------------- +// The UserString, BlobHeap, GuidHeap tables +//--------------------------------------------------------------------- + +let GetUserStringHeapIdx cenv s = + cenv.userStrings.FindOrAddSharedEntry s + +let GetBytesAsBlobIdx cenv (bytes:byte[]) = + if bytes.Length = 0 then 0 + else cenv.blobs.FindOrAddSharedEntry bytes + +let GetStringHeapIdx cenv s = + if s = "" then 0 + else cenv.strings.FindOrAddSharedEntry s + +let GetGuidIdx cenv info = cenv.guids.FindOrAddSharedEntry info + +let GetStringHeapIdxOption cenv sopt = + match sopt with + | Some ns -> GetStringHeapIdx cenv ns + | None -> 0 + +let GetTypeNameAsElemPair cenv n = + let (n1,n2) = splitTypeNameRight n + StringE (GetStringHeapIdxOption cenv n1), + StringE (GetStringHeapIdx cenv n2) + +//===================================================================== +// Pass 1 - allocate indexes for types +//===================================================================== + +let rec GenTypeDefPass1 enc cenv (td:ILTypeDef) = + ignore (cenv.typeDefs.AddUniqueEntry "type index" (fun (TdKey (_,n)) -> n) (TdKey (enc,td.Name))); + GenTypeDefsPass1 (enc@[td.Name]) cenv td.NestedTypes.AsList + +and GenTypeDefsPass1 enc cenv tds = List.iter (GenTypeDefPass1 enc cenv) tds + + +//===================================================================== +// Pass 2 - allocate indexes for methods and fields and write rows for types +//===================================================================== + +let rec GetIdxForTypeDef cenv key = + try cenv.typeDefs.GetTableEntry key + with + :? KeyNotFoundException -> + let (TdKey (enc,n) ) = key + errorR(InternalError("One of your modules expects the type '"+String.concat "." (enc@[n])+"' to be defined within the module being emitted. You may be missing an input file",range0)) + 0 + +// -------------------------------------------------------------------- +// Assembly and module references +// -------------------------------------------------------------------- + +let rec GetAssemblyRefAsRow cenv (aref:ILAssemblyRef) = + AssemblyRefRow + ((match aref.Version with None -> 0us | Some (x,_,_,_) -> x), + (match aref.Version with None -> 0us | Some (_,y,_,_) -> y), + (match aref.Version with None -> 0us | Some (_,_,z,_) -> z), + (match aref.Version with None -> 0us | Some (_,_,_,w) -> w), + ((match aref.PublicKey with Some (PublicKey _) -> 0x0001 | _ -> 0x0000) + ||| (if aref.Retargetable then 0x0100 else 0x0000)), + BlobIndex (match aref.PublicKey with + | None -> 0 + | Some (PublicKey b | PublicKeyToken b) -> GetBytesAsBlobIdx cenv b), + StringIndex (GetStringHeapIdx cenv aref.Name), + StringIndex (match aref.Locale with None -> 0 | Some s -> GetStringHeapIdx cenv s), + BlobIndex (match aref.Hash with None -> 0 | Some s -> GetBytesAsBlobIdx cenv s)) + +and GetAssemblyRefAsIdx cenv aref = + FindOrAddRow cenv TableNames.AssemblyRef (GetAssemblyRefAsRow cenv aref) + +and GetModuleRefAsRow cenv (mref:ILModuleRef) = + SimpleSharedRow + [| StringE (GetStringHeapIdx cenv mref.Name) |] + +and GetModuleRefAsFileRow cenv (mref:ILModuleRef) = + SimpleSharedRow + [| ULong (if mref.HasMetadata then 0x0000 else 0x0001); + StringE (GetStringHeapIdx cenv mref.Name); + (match mref.Hash with None -> Blob 0 | Some s -> Blob (GetBytesAsBlobIdx cenv s)); |] + +and GetModuleRefAsIdx cenv mref = + FindOrAddRow cenv TableNames.ModuleRef (GetModuleRefAsRow cenv mref) + +and GetModuleRefAsFileIdx cenv mref = + FindOrAddRow cenv TableNames.File (GetModuleRefAsFileRow cenv mref) + +// -------------------------------------------------------------------- +// Does a ILScopeRef point to this module? +// -------------------------------------------------------------------- + +let isScopeRefLocal scoref = (scoref = ILScopeRef.Local) +let isTypeRefLocal (tref:ILTypeRef) = isScopeRefLocal tref.Scope +let isTypeLocal (typ:ILType) = typ.IsNominal && typ.GenericArgs.Length = 0 && isTypeRefLocal typ.TypeRef + +// -------------------------------------------------------------------- +// Scopes to Implementation elements. +// -------------------------------------------------------------------- + +let GetScopeRefAsImplementationElem cenv scoref = + match scoref with + | ILScopeRef.Local -> (i_AssemblyRef, 0) + | ILScopeRef.Assembly aref -> (i_AssemblyRef, GetAssemblyRefAsIdx cenv aref) + | ILScopeRef.Module mref -> (i_File, GetModuleRefAsFileIdx cenv mref) + +// -------------------------------------------------------------------- +// Type references, types etc. +// -------------------------------------------------------------------- + +let rec GetTypeRefAsTypeRefRow cenv (tref:ILTypeRef) = + let nselem,nelem = GetTypeNameAsElemPair cenv tref.Name + let rs1,rs2 = GetResolutionScopeAsElem cenv (tref.Scope,tref.Enclosing) + SimpleSharedRow [| ResolutionScope (rs1,rs2); nelem; nselem |] + +and GetTypeRefAsTypeRefIdx cenv tref = + let mutable res = 0 + if cenv.trefCache.TryGetValue(tref,&res) then res else + let res = FindOrAddRow cenv TableNames.TypeRef (GetTypeRefAsTypeRefRow cenv tref) + cenv.trefCache.[tref] <- res; + res + +and GetTypeDescAsTypeRefIdx cenv (scoref,enc,n) = + GetTypeRefAsTypeRefIdx cenv (mkILNestedTyRef (scoref,enc,n)) + +and GetResolutionScopeAsElem cenv (scoref,enc) = + if isNil enc then + match scoref with + | ILScopeRef.Local -> (rs_Module, 1) + | ILScopeRef.Assembly aref -> (rs_AssemblyRef, GetAssemblyRefAsIdx cenv aref) + | ILScopeRef.Module mref -> (rs_ModuleRef, GetModuleRefAsIdx cenv mref) + else + let enc2,n2 = List.frontAndBack enc + (rs_TypeRef, GetTypeDescAsTypeRefIdx cenv (scoref,enc2,n2)) + + +let emitTypeInfoAsTypeDefOrRefEncoded cenv (bb: ByteBuffer) (scoref,enc,nm) = + if isScopeRefLocal scoref then + let idx = GetIdxForTypeDef cenv (TdKey(enc,nm)) + bb.EmitZ32 (idx <<< 2) // ECMA 22.2.8 TypeDefOrRefEncoded - ILTypeDef + else + let idx = GetTypeDescAsTypeRefIdx cenv (scoref,enc,nm) + bb.EmitZ32 ((idx <<< 2) ||| 0x01) // ECMA 22.2.8 TypeDefOrRefEncoded - ILTypeRef + +let getTypeDefOrRefAsUncodedToken (tag,idx) = + let tab = + if tag = tdor_TypeDef then TableNames.TypeDef + elif tag = tdor_TypeRef then TableNames.TypeRef + elif tag = tdor_TypeSpec then TableNames.TypeSpec + else failwith "getTypeDefOrRefAsUncodedToken" + getUncodedToken tab idx + +// REVIEW: write into an accumuating buffer +let EmitArrayShape (bb: ByteBuffer) (ILArrayShape shape) = + let sized = List.filter (function (_,Some _) -> true | _ -> false) shape + let lobounded = List.filter (function (Some _,_) -> true | _ -> false) shape + bb.EmitZ32 shape.Length; + bb.EmitZ32 sized.Length; + sized |> List.iter (function (_,Some sz) -> bb.EmitZ32 sz | _ -> failwith "?"); + bb.EmitZ32 lobounded.Length; + lobounded |> List.iter (function (Some low,_) -> bb.EmitZ32 low | _ -> failwith "?") + +let hasthisToByte hasthis = + match hasthis with + | ILThisConvention.Instance -> e_IMAGE_CEE_CS_CALLCONV_INSTANCE + | ILThisConvention.InstanceExplicit -> e_IMAGE_CEE_CS_CALLCONV_INSTANCE_EXPLICIT + | ILThisConvention.Static -> 0x00uy + +let callconvToByte ntypars (Callconv (hasthis,bcc)) = + hasthisToByte hasthis ||| + (if ntypars > 0 then e_IMAGE_CEE_CS_CALLCONV_GENERIC else 0x00uy) ||| + (match bcc with + | ILArgConvention.FastCall -> e_IMAGE_CEE_CS_CALLCONV_FASTCALL + | ILArgConvention.StdCall -> e_IMAGE_CEE_CS_CALLCONV_STDCALL + | ILArgConvention.ThisCall -> e_IMAGE_CEE_CS_CALLCONV_THISCALL + | ILArgConvention.CDecl -> e_IMAGE_CEE_CS_CALLCONV_CDECL + | ILArgConvention.Default -> 0x00uy + | ILArgConvention.VarArg -> e_IMAGE_CEE_CS_CALLCONV_VARARG) + + +// REVIEW: write into an accumuating buffer +let rec EmitTypeSpec cenv env (bb: ByteBuffer) (et,tspec:ILTypeSpec) = + if ILList.isEmpty tspec.GenericArgs then + bb.EmitByte et; + emitTypeInfoAsTypeDefOrRefEncoded cenv bb (tspec.Scope,tspec.Enclosing,tspec.Name) + else + bb.EmitByte et_WITH; + bb.EmitByte et; + emitTypeInfoAsTypeDefOrRefEncoded cenv bb (tspec.Scope,tspec.Enclosing,tspec.Name); + bb.EmitZ32 tspec.GenericArgs.Length; + EmitTypes cenv env bb tspec.GenericArgs + +and GetTypeAsTypeDefOrRef cenv env (ty:ILType) = + if isTypeLocal ty then + let tref = ty.TypeRef + (tdor_TypeDef, GetIdxForTypeDef cenv (TdKey(tref.Enclosing,tref.Name))) + elif ty.IsNominal && ILList.isEmpty ty.GenericArgs then + (tdor_TypeRef, GetTypeRefAsTypeRefIdx cenv ty.TypeRef) + else + (tdor_TypeSpec, GetTypeAsTypeSpecIdx cenv env ty) + +and GetTypeAsBytes cenv env ty = emitBytesViaBuffer (fun bb -> EmitType cenv env bb ty) + +and GetTypeAsBlobIdx cenv env (ty:ILType) = + GetBytesAsBlobIdx cenv (GetTypeAsBytes cenv env ty) + +and GetTypeAsTypeSpecRow cenv env (ty:ILType) = + SimpleSharedRow [| Blob (GetTypeAsBlobIdx cenv env ty) |] + +and GetTypeAsTypeSpecIdx cenv env ty = + FindOrAddRow cenv TableNames.TypeSpec (GetTypeAsTypeSpecRow cenv env ty) + +and EmitType cenv env bb ty = + let ilg = cenv.ilg + match ty with + // REVIEW: what are these doing here? + | ILType.Value tspec when tspec.Name = "System.String" -> bb.EmitByte et_STRING + | ILType.Value tspec when tspec.Name = "System.Object" -> bb.EmitByte et_OBJECT + | typ when isILSByteTy ilg typ -> bb.EmitByte et_I1 + | typ when isILInt16Ty ilg typ -> bb.EmitByte et_I2 + | typ when isILInt32Ty ilg typ -> bb.EmitByte et_I4 + | typ when isILInt64Ty ilg typ -> bb.EmitByte et_I8 + | typ when isILByteTy ilg typ -> bb.EmitByte et_U1 + | typ when isILUInt16Ty ilg typ -> bb.EmitByte et_U2 + | typ when isILUInt32Ty ilg typ -> bb.EmitByte et_U4 + | typ when isILUInt64Ty ilg typ -> bb.EmitByte et_U8 + | typ when isILDoubleTy ilg typ -> bb.EmitByte et_R8 + | typ when isILSingleTy ilg typ -> bb.EmitByte et_R4 + | typ when isILBoolTy ilg typ -> bb.EmitByte et_BOOLEAN + | typ when isILCharTy ilg typ -> bb.EmitByte et_CHAR + | typ when isILStringTy ilg typ -> bb.EmitByte et_STRING + | typ when isILObjectTy ilg typ -> bb.EmitByte et_OBJECT + | typ when isILIntPtrTy ilg typ -> bb.EmitByte et_I + | typ when isILUIntPtrTy ilg typ -> bb.EmitByte et_U + | typ when isILTypedReferenceTy ilg typ -> bb.EmitByte et_TYPEDBYREF + + | ILType.Boxed tspec -> EmitTypeSpec cenv env bb (et_CLASS,tspec) + | ILType.Value tspec -> EmitTypeSpec cenv env bb (et_VALUETYPE,tspec) + | ILType.Array (shape,ty) -> + if shape = ILArrayShape.SingleDimensional then (bb.EmitByte et_SZARRAY ; EmitType cenv env bb ty) + else (bb.EmitByte et_ARRAY; EmitType cenv env bb ty; EmitArrayShape bb shape) + | ILType.TypeVar tv -> + let cgparams = env.EnclosingTyparCount + if int32 tv < cgparams then + bb.EmitByte et_VAR; + bb.EmitZ32 (int32 tv) + else + bb.EmitByte et_MVAR; + bb.EmitZ32 (int32 tv - cgparams) + + | ILType.Byref typ -> + bb.EmitByte et_BYREF; + EmitType cenv env bb typ + | ILType.Ptr typ -> + bb.EmitByte et_PTR; + EmitType cenv env bb typ + | ILType.Void -> + bb.EmitByte et_VOID + | ILType.FunctionPointer x -> + bb.EmitByte et_FNPTR; + EmitCallsig cenv env bb (x.CallingConv,x.ArgTypes,x.ReturnType,None,0) + | ILType.Modified (req,tref,ty) -> + bb.EmitByte (if req then et_CMOD_REQD else et_CMOD_OPT); + emitTypeInfoAsTypeDefOrRefEncoded cenv bb (tref.Scope, tref.Enclosing,tref.Name); + EmitType cenv env bb ty + | _ -> failwith "EmitType" + +and EmitCallsig cenv env bb (callconv,args:ILTypes,ret,varargs:ILVarArgs,genarity) = + bb.EmitByte (callconvToByte genarity callconv); + if genarity > 0 then bb.EmitZ32 genarity; + bb.EmitZ32 ((args.Length + (match varargs with None -> 0 | Some l -> l.Length))); + EmitType cenv env bb ret; + args |> ILList.iter (EmitType cenv env bb); + match varargs with + | None -> ()// no extra arg = no sentinel + | Some tys -> + if ILList.isEmpty tys then () // no extra arg = no sentinel + else + bb.EmitByte et_SENTINEL; + ILList.iter (EmitType cenv env bb) tys + +and GetCallsigAsBytes cenv env x = emitBytesViaBuffer (fun bb -> EmitCallsig cenv env bb x) + +// REVIEW: write into an accumuating buffer +and EmitTypes cenv env bb (inst: ILTypes) = + inst |> ILList.iter (EmitType cenv env bb) + +let GetTypeAsMemberRefParent cenv env ty = + match GetTypeAsTypeDefOrRef cenv env ty with + | (tag,_) when tag = tdor_TypeDef -> dprintn "GetTypeAsMemberRefParent: mspec should have been encoded as mdtMethodDef?"; MemberRefParent (mrp_TypeRef, 1) + | (tag,tok) when tag = tdor_TypeRef -> MemberRefParent (mrp_TypeRef, tok) + | (tag,tok) when tag = tdor_TypeSpec -> MemberRefParent (mrp_TypeSpec, tok) + | _ -> failwith "GetTypeAsMemberRefParent" + + +// -------------------------------------------------------------------- +// Native types +// -------------------------------------------------------------------- + +let rec GetVariantTypeAsInt32 ty = + if List.memAssoc ty (Lazy.force ILVariantTypeMap) then + (List.assoc ty (Lazy.force ILVariantTypeMap )) + else + match ty with + | ILNativeVariant.Array vt -> vt_ARRAY ||| GetVariantTypeAsInt32 vt + | ILNativeVariant.Vector vt -> vt_VECTOR ||| GetVariantTypeAsInt32 vt + | ILNativeVariant.Byref vt -> vt_BYREF ||| GetVariantTypeAsInt32 vt + | _ -> failwith "Unexpected variant type" + +// based on information in ECMA and asmparse.y in the CLR codebase +let rec GetNativeTypeAsBlobIdx cenv (ty:ILNativeType) = + GetBytesAsBlobIdx cenv (GetNativeTypeAsBytes ty) + +and GetNativeTypeAsBytes ty = emitBytesViaBuffer (fun bb -> EmitNativeType bb ty) + +// REVIEW: write into an accumuating buffer +and EmitNativeType bb ty = + if List.memAssoc ty (Lazy.force ILNativeTypeRevMap) then + bb.EmitByte (List.assoc ty (Lazy.force ILNativeTypeRevMap)) + else + match ty with + | ILNativeType.Empty -> () + | ILNativeType.Custom (guid,nativeTypeName,custMarshallerName,cookieString) -> + let u1 = System.Text.Encoding.UTF8.GetBytes nativeTypeName + let u2 = System.Text.Encoding.UTF8.GetBytes custMarshallerName + let u3 = cookieString + bb.EmitByte nt_CUSTOMMARSHALER; + bb.EmitZ32 guid.Length; + bb.EmitBytes guid; + bb.EmitZ32 u1.Length; bb.EmitBytes u1; + bb.EmitZ32 u2.Length; bb.EmitBytes u2; + bb.EmitZ32 u3.Length; bb.EmitBytes u3 + | ILNativeType.FixedSysString i -> + bb.EmitByte nt_FIXEDSYSSTRING; + bb.EmitZ32 i + + | ILNativeType.FixedArray i -> + bb.EmitByte nt_FIXEDARRAY; + bb.EmitZ32 i + | (* COM interop *) ILNativeType.SafeArray (vt,name) -> + bb.EmitByte nt_SAFEARRAY; + bb.EmitZ32 (GetVariantTypeAsInt32 vt); + match name with + | None -> () + | Some n -> + let u1 = Bytes.stringAsUtf8NullTerminated n + bb.EmitZ32 (Array.length u1) ; bb.EmitBytes u1 + | ILNativeType.Array (nt,sizeinfo) -> (* REVIEW: check if this corresponds to the ECMA spec *) + bb.EmitByte nt_ARRAY; + match nt with + | None -> bb.EmitZ32 (int nt_MAX) + | Some ntt -> + (if ntt = ILNativeType.Empty then + bb.EmitZ32 (int nt_MAX) + else + EmitNativeType bb ntt); + match sizeinfo with + | None -> () // chunk out with zeroes because some tools (e.g. asmmeta) read these poorly and expect further elements. + | Some (pnum,additive) -> + // ParamNum + bb.EmitZ32 pnum; + (* ElemMul *) (* z_u32 0x1l *) + match additive with + | None -> () + | Some n -> (* NumElem *) bb.EmitZ32 n + | _ -> failwith "Unexpected native type" + +// -------------------------------------------------------------------- +// Native types +// -------------------------------------------------------------------- + +let rec GetFieldInitAsBlobIdx cenv (x:ILFieldInit) = + GetBytesAsBlobIdx cenv (emitBytesViaBuffer (fun bb -> GetFieldInit bb x)) + +// REVIEW: write into an accumuating buffer +and GetFieldInit (bb: ByteBuffer) x = + match x with + | ILFieldInit.String b -> bb.EmitBytes (System.Text.Encoding.Unicode.GetBytes b) + | ILFieldInit.Bool b -> bb.EmitByte (if b then 0x01uy else 0x00uy) + | ILFieldInit.Char x -> bb.EmitUInt16 x + | ILFieldInit.Int8 x -> bb.EmitByte (byte x) + | ILFieldInit.Int16 x -> bb.EmitUInt16 (uint16 x) + | ILFieldInit.Int32 x -> bb.EmitInt32 x + | ILFieldInit.Int64 x -> bb.EmitInt64 x + | ILFieldInit.UInt8 x -> bb.EmitByte x + | ILFieldInit.UInt16 x -> bb.EmitUInt16 x + | ILFieldInit.UInt32 x -> bb.EmitInt32 (int32 x) + | ILFieldInit.UInt64 x -> bb.EmitInt64 (int64 x) + | ILFieldInit.Single x -> bb.EmitInt32 (bitsOfSingle x) + | ILFieldInit.Double x -> bb.EmitInt64 (bitsOfDouble x) + | ILFieldInit.Null -> bb.EmitInt32 0 + +and GetFieldInitFlags i = + UShort + (uint16 + (match i with + | ILFieldInit.String _ -> et_STRING + | ILFieldInit.Bool _ -> et_BOOLEAN + | ILFieldInit.Char _ -> et_CHAR + | ILFieldInit.Int8 _ -> et_I1 + | ILFieldInit.Int16 _ -> et_I2 + | ILFieldInit.Int32 _ -> et_I4 + | ILFieldInit.Int64 _ -> et_I8 + | ILFieldInit.UInt8 _ -> et_U1 + | ILFieldInit.UInt16 _ -> et_U2 + | ILFieldInit.UInt32 _ -> et_U4 + | ILFieldInit.UInt64 _ -> et_U8 + | ILFieldInit.Single _ -> et_R4 + | ILFieldInit.Double _ -> et_R8 + | ILFieldInit.Null -> et_CLASS)) + +// -------------------------------------------------------------------- +// Type definitions +// -------------------------------------------------------------------- + +let GetMemberAccessFlags access = + match access with + | ILMemberAccess.CompilerControlled -> 0x00000000 + | ILMemberAccess.Public -> 0x00000006 + | ILMemberAccess.Private -> 0x00000001 + | ILMemberAccess.Family -> 0x00000004 + | ILMemberAccess.FamilyAndAssembly -> 0x00000002 + | ILMemberAccess.FamilyOrAssembly -> 0x00000005 + | ILMemberAccess.Assembly -> 0x00000003 + +let GetTypeAccessFlags access = + match access with + | ILTypeDefAccess.Public -> 0x00000001 + | ILTypeDefAccess.Private -> 0x00000000 + | ILTypeDefAccess.Nested ILMemberAccess.Public -> 0x00000002 + | ILTypeDefAccess.Nested ILMemberAccess.Private -> 0x00000003 + | ILTypeDefAccess.Nested ILMemberAccess.Family -> 0x00000004 + | ILTypeDefAccess.Nested ILMemberAccess.FamilyAndAssembly -> 0x00000006 + | ILTypeDefAccess.Nested ILMemberAccess.FamilyOrAssembly -> 0x00000007 + | ILTypeDefAccess.Nested ILMemberAccess.Assembly -> 0x00000005 + | ILTypeDefAccess.Nested ILMemberAccess.CompilerControlled -> failwith "bad type acccess" + +let rec GetTypeDefAsRow cenv env _enc (td:ILTypeDef) = + let nselem,nelem = GetTypeNameAsElemPair cenv td.Name + let flags = + if (isTypeNameForGlobalFunctions td.Name) then 0x00000000 + else + + GetTypeAccessFlags td.Access ||| + begin + match td.Layout with + | ILTypeDefLayout.Auto -> 0x00000000 + | ILTypeDefLayout.Sequential _ -> 0x00000008 + | ILTypeDefLayout.Explicit _ -> 0x00000010 + end ||| + begin + match td.tdKind with + | ILTypeDefKind.Interface -> 0x00000020 + | _ -> 0x00000000 + end ||| + (if td.IsAbstract then 0x00000080l else 0x00000000) ||| + (if td.IsSealed then 0x00000100l else 0x00000000) ||| + (if td.IsComInterop then 0x00001000l else 0x00000000) ||| + (if td.IsSerializable then 0x00002000l else 0x00000000) ||| + begin + match td.Encoding with + | ILDefaultPInvokeEncoding.Ansi -> 0x00000000 + | ILDefaultPInvokeEncoding.Auto -> 0x00020000 + | ILDefaultPInvokeEncoding.Unicode -> 0x00010000 + end ||| + begin + match td.InitSemantics with + | ILTypeInit.BeforeField when not (match td.tdKind with ILTypeDefKind.Interface -> true | _ -> false) -> 0x00100000 + | _ -> 0x00000000 + end ||| + (if td.IsSpecialName then 0x00000400 else 0x00000000) ||| + // @REVIEW (if rtspecialname_of_tdef td then 0x00000800 else 0x00000000) ||| + (if td.HasSecurity || not td.SecurityDecls.AsList.IsEmpty then 0x00040000 else 0x00000000) + + let tdorTag, tdorRow = GetTypeOptionAsTypeDefOrRef cenv env td.Extends + UnsharedRow + [| ULong flags ; + nelem; + nselem; + TypeDefOrRefOrSpec (tdorTag, tdorRow); + SimpleIndex (TableNames.Field, cenv.fieldDefs.Count + 1); + SimpleIndex (TableNames.Method,cenv.methodDefIdxsByKey.Count + 1) |] + +and GetTypeOptionAsTypeDefOrRef cenv env tyOpt = + match tyOpt with + | None -> (tdor_TypeDef, 0) + | Some ty -> (GetTypeAsTypeDefOrRef cenv env ty) + +and GetTypeDefAsPropertyMapRow cenv tidx = + UnsharedRow + [| SimpleIndex (TableNames.TypeDef, tidx); + SimpleIndex (TableNames.Property, cenv.propertyDefs.Count + 1) |] + +and GetTypeDefAsEventMapRow cenv tidx = + UnsharedRow + [| SimpleIndex (TableNames.TypeDef, tidx); + SimpleIndex (TableNames.Event, cenv.eventDefs.Count + 1) |] + +and GetKeyForFieldDef tidx (fd: ILFieldDef) = + FieldDefKey (tidx,fd.Name, fd.Type) + +and GenFieldDefPass2 cenv tidx fd = + ignore (cenv.fieldDefs.AddUniqueEntry "field" (fun (fdkey:FieldDefKey) -> fdkey.Name) (GetKeyForFieldDef tidx fd)) + +and GetKeyForMethodDef tidx (md: ILMethodDef) = + MethodDefKey (tidx,md.GenericParams.Length, md.Name, md.Return.Type, md.ParameterTypes, md.CallingConv.IsStatic) + +and GenMethodDefPass2 cenv tidx md = + let idx = + cenv.methodDefIdxsByKey.AddUniqueEntry + "method" + (fun (key:MethodDefKey) -> + dprintn "Duplicate in method table is:"; + dprintn (" Type index: "+string key.TypeIdx); + dprintn (" Method name: "+key.Name); + dprintn (" Method arity (num generic params): "+string key.GenericArity); + key.Name + ) + (GetKeyForMethodDef tidx md) + + cenv.methodDefIdxs.[md] <- idx + +and GetKeyForPropertyDef tidx (x: ILPropertyDef) = + PropKey (tidx, x.Name, x.Type, x.Args) + +and GenPropertyDefPass2 cenv tidx x = + ignore (cenv.propertyDefs.AddUniqueEntry "property" (fun (PropKey (_,n,_,_)) -> n) (GetKeyForPropertyDef tidx x)) + +and GetTypeAsImplementsRow cenv env tidx ty = + let tdorTag,tdorRow = GetTypeAsTypeDefOrRef cenv env ty + UnsharedRow + [| SimpleIndex (TableNames.TypeDef, tidx); + TypeDefOrRefOrSpec (tdorTag,tdorRow) |] + +and GenImplementsPass2 cenv env tidx ty = + AddUnsharedRow cenv TableNames.InterfaceImpl (GetTypeAsImplementsRow cenv env tidx ty) |> ignore + +and GetKeyForEvent tidx (x: ILEventDef) = + EventKey (tidx, x.Name) + +and GenEventDefPass2 cenv tidx x = + ignore (cenv.eventDefs.AddUniqueEntry "event" (fun (EventKey(_,b)) -> b) (GetKeyForEvent tidx x)) + +and GenTypeDefPass2 pidx enc cenv (td:ILTypeDef) = + try + let env = envForTypeDef td + let tidx = GetIdxForTypeDef cenv (TdKey(enc,td.Name)) + let tidx2 = AddUnsharedRow cenv TableNames.TypeDef (GetTypeDefAsRow cenv env enc td) + if tidx <> tidx2 then failwith "index of typedef on second pass does not match index on first pass"; + + // Add entries to auxiliary mapping tables, e.g. Nested, PropertyMap etc. + // Note Nested is organised differntly to the others... + if nonNil enc then + AddUnsharedRow cenv TableNames.Nested + (UnsharedRow + [| SimpleIndex (TableNames.TypeDef, tidx); + SimpleIndex (TableNames.TypeDef, pidx) |]) |> ignore; + let props = td.Properties.AsList + if nonNil props then + AddUnsharedRow cenv TableNames.PropertyMap (GetTypeDefAsPropertyMapRow cenv tidx) |> ignore; + let events = td.Events.AsList + if nonNil events then + AddUnsharedRow cenv TableNames.EventMap (GetTypeDefAsEventMapRow cenv tidx) |> ignore; + + // Now generate or assign index numbers for tables referenced by the maps. + // Don't yet generate contents of these tables - leave that to pass3, as + // code may need to embed these entries. + td.Implements |> ILList.iter (GenImplementsPass2 cenv env tidx); + props |> List.iter (GenPropertyDefPass2 cenv tidx); + events |> List.iter (GenEventDefPass2 cenv tidx); + td.Fields.AsList |> List.iter (GenFieldDefPass2 cenv tidx); + td.Methods |> Seq.iter (GenMethodDefPass2 cenv tidx); + td.NestedTypes.AsList |> GenTypeDefsPass2 tidx (enc@[td.Name]) cenv + with e -> + failwith ("Error in pass2 for type "+td.Name+", error: "+e.Message); + reraise() + raise e + +and GenTypeDefsPass2 pidx enc cenv tds = + List.iter (GenTypeDefPass2 pidx enc cenv) tds + +//===================================================================== +// Pass 3 - write details of methods, fields, IL code, custom attrs etc. +//===================================================================== + +exception MethodDefNotFound +let FindMethodDefIdx cenv mdkey = + try cenv.methodDefIdxsByKey.GetTableEntry mdkey + with :? KeyNotFoundException -> + let typeNameOfIdx i = + match + (cenv.typeDefs.dict + |> Seq.fold (fun sofar kvp -> + let tkey2 = kvp.Key + let tidx2 = kvp.Value + if i = tidx2 then + if sofar = None then + Some tkey2 + else failwith "mutiple type names map to index" + else sofar) None) with + | Some x -> x + | None -> raise MethodDefNotFound + let (TdKey (tenc,tname)) = typeNameOfIdx mdkey.TypeIdx + dprintn ("The local method '"+(String.concat "." (tenc@[tname]))+"'::'"+mdkey.Name+"' was referenced but not declared"); + dprintn ("generic arity: "+string mdkey.GenericArity); + cenv.methodDefIdxsByKey.dict |> Seq.iter (fun (KeyValue(mdkey2,_)) -> + if mdkey2.TypeIdx = mdkey.TypeIdx && mdkey.Name = mdkey2.Name then + let (TdKey (tenc2,tname2)) = typeNameOfIdx mdkey2.TypeIdx + dprintn ("A method in '"+(String.concat "." (tenc2@[tname2]))+"' had the right name but the wrong signature:"); + dprintn ("generic arity: "+string mdkey2.GenericArity) ; + dprintn (sprintf "mdkey2: %A" mdkey2)) ; + raise MethodDefNotFound + + +let rec GetMethodDefIdx cenv md = + cenv.methodDefIdxs.[md] + +and FindFieldDefIdx cenv fdkey = + try cenv.fieldDefs.GetTableEntry fdkey + with :? KeyNotFoundException -> + errorR(InternalError("The local field "+fdkey.Name+" was referenced but not declared",range0)); + 1 + +and GetFieldDefAsFieldDefIdx cenv tidx fd = + FindFieldDefIdx cenv (GetKeyForFieldDef tidx fd) + +// -------------------------------------------------------------------- +// ILMethodRef --> ILMethodDef. +// +// Only successfuly converts ILMethodRef's referring to +// methods in the module being emitted. +// -------------------------------------------------------------------- + +let GetMethodRefAsMethodDefIdx cenv (mref:ILMethodRef) = + try + let tref = mref.EnclosingTypeRef + if not (isTypeRefLocal tref) then + failwithf "method referred to by method impl, event or property is not in a type defined in this module, method ref is %A" mref; + let tidx = GetIdxForTypeDef cenv (TdKey(tref.Enclosing,tref.Name)) + let mdkey = MethodDefKey (tidx,mref.GenericArity, mref.Name, mref.ReturnType, mref.ArgTypes, mref.CallingConv.IsStatic) + FindMethodDefIdx cenv mdkey + with e -> + failwithf "Error in GetMethodRefAsMethodDefIdx for mref = %A, error: %s" mref.Name e.Message; + reraise() + raise e + +let rec MethodRefInfoAsMemberRefRow cenv env fenv (nm,typ,callconv,args,ret,varargs,genarity) = + MemberRefRow(GetTypeAsMemberRefParent cenv env typ, + GetStringHeapIdx cenv nm, + GetMethodRefInfoAsBlobIdx cenv fenv (callconv,args,ret,varargs,genarity)) + +and GetMethodRefInfoAsBlobIdx cenv env info = + GetBytesAsBlobIdx cenv (GetCallsigAsBytes cenv env info) + +let GetMethodRefInfoAsMemberRefIdx cenv env ((_,typ,_,_,_,_,_) as minfo) = + let fenv = envForMethodRef env typ + FindOrAddRow cenv TableNames.MemberRef + (MethodRefInfoAsMemberRefRow cenv env fenv minfo) + +let GetMethodRefInfoAsMethodRefOrDef isAlwaysMethodDef cenv env ((nm,typ:ILType,cc,args,ret,varargs,genarity) as minfo) = + if isNone varargs && (isAlwaysMethodDef || isTypeLocal typ) then + if not typ.IsNominal then failwith "GetMethodRefInfoAsMethodRefOrDef: unexpected local tref-typ"; + try (mdor_MethodDef, GetMethodRefAsMethodDefIdx cenv (mkILMethRefRaw(typ.TypeRef, cc, nm, genarity, args,ret))) + with MethodDefNotFound -> (mdor_MemberRef, GetMethodRefInfoAsMemberRefIdx cenv env minfo) + else (mdor_MemberRef, GetMethodRefInfoAsMemberRefIdx cenv env minfo) + + +// -------------------------------------------------------------------- +// ILMethodSpec --> ILMethodRef/ILMethodDef/ILMethodSpec +// -------------------------------------------------------------------- + +let rec GetMethodSpecInfoAsMethodSpecIdx cenv env (nm,typ,cc,args,ret,varargs,minst:ILGenericArgs) = + let mdorTag,mdorRow = GetMethodRefInfoAsMethodRefOrDef false cenv env (nm,typ,cc,args,ret,varargs,minst.Length) + let blob = + emitBytesViaBuffer (fun bb -> + bb.EmitByte e_IMAGE_CEE_CS_CALLCONV_GENERICINST; + bb.EmitZ32 minst.Length; + minst |> ILList.iter (EmitType cenv env bb)) + FindOrAddRow cenv TableNames.MethodSpec + (SimpleSharedRow + [| MethodDefOrRef (mdorTag,mdorRow); + Blob (GetBytesAsBlobIdx cenv blob) |]) + +and GetMethodDefOrRefAsUncodedToken (tag,idx) = + let tab = + if tag = mdor_MethodDef then TableNames.Method + elif tag = mdor_MemberRef then TableNames.MemberRef + else failwith "GetMethodDefOrRefAsUncodedToken" + getUncodedToken tab idx + +and GetMethodSpecInfoAsUncodedToken cenv env ((_,_,_,_,_,_,minst:ILGenericArgs) as minfo) = + if minst.Length > 0 then + getUncodedToken TableNames.MethodSpec (GetMethodSpecInfoAsMethodSpecIdx cenv env minfo) + else + GetMethodDefOrRefAsUncodedToken (GetMethodRefInfoAsMethodRefOrDef false cenv env (GetMethodRefInfoOfMethodSpecInfo minfo)) + +and GetMethodSpecAsUncodedToken cenv env mspec = + GetMethodSpecInfoAsUncodedToken cenv env (InfoOfMethodSpec mspec) + +and GetMethodRefInfoOfMethodSpecInfo (nm,typ,cc,args,ret,varargs,minst:ILGenericArgs) = + (nm,typ,cc,args,ret,varargs,minst.Length) + +and GetMethodSpecAsMethodDefOrRef cenv env (mspec,varargs) = + GetMethodRefInfoAsMethodRefOrDef false cenv env (GetMethodRefInfoOfMethodSpecInfo (InfoOfMethodSpec (mspec,varargs))) + +and GetMethodSpecAsMethodDef cenv env (mspec,varargs) = + GetMethodRefInfoAsMethodRefOrDef true cenv env (GetMethodRefInfoOfMethodSpecInfo (InfoOfMethodSpec (mspec,varargs))) + +and InfoOfMethodSpec (mspec:ILMethodSpec,varargs) = + (mspec.Name, + mspec.EnclosingType, + mspec.CallingConv, + mspec.FormalArgTypes, + mspec.FormalReturnType, + varargs, + mspec.GenericArgs) + +// -------------------------------------------------------------------- +// method_in_parent --> ILMethodRef/ILMethodDef +// +// Used for MethodImpls. +// -------------------------------------------------------------------- + +let rec GetOverridesSpecAsMemberRefIdx cenv env ospec = + let fenv = envForOverrideSpec ospec + let row = + MethodRefInfoAsMemberRefRow cenv env fenv + (ospec.MethodRef.Name, + ospec.EnclosingType, + ospec.MethodRef.CallingConv, + ospec.MethodRef.ArgTypes, + ospec.MethodRef.ReturnType, + None, + ospec.MethodRef.GenericArity) + FindOrAddRow cenv TableNames.MemberRef row + +and GetOverridesSpecAsMethodDefOrRef cenv env (ospec:ILOverridesSpec) = + let typ = ospec.EnclosingType + if isTypeLocal typ then + if not typ.IsNominal then failwith "GetOverridesSpecAsMethodDefOrRef: unexpected local tref-typ"; + try (mdor_MethodDef, GetMethodRefAsMethodDefIdx cenv ospec.MethodRef) + with MethodDefNotFound -> (mdor_MemberRef, GetOverridesSpecAsMemberRefIdx cenv env ospec) + else + (mdor_MemberRef, GetOverridesSpecAsMemberRefIdx cenv env ospec) + +// -------------------------------------------------------------------- +// ILMethodRef --> ILMethodRef/ILMethodDef +// +// Used for Custom Attrs. +// -------------------------------------------------------------------- + +let rec GetMethodRefAsMemberRefIdx cenv env fenv (mref:ILMethodRef) = + let row = + MethodRefInfoAsMemberRefRow cenv env fenv + (mref.Name, + mkILNonGenericBoxedTy mref.EnclosingTypeRef, + mref.CallingConv, + mref.ArgTypes, + mref.ReturnType, + None, + mref.GenericArity) + FindOrAddRow cenv TableNames.MemberRef row + +and GetMethodRefAsCustomAttribType cenv (mref:ILMethodRef) = + let fenv = envForNonGenericMethodRef mref + let tref = mref.EnclosingTypeRef + if isTypeRefLocal tref then + try (cat_MethodDef, GetMethodRefAsMethodDefIdx cenv mref) + with MethodDefNotFound -> (cat_MemberRef, GetMethodRefAsMemberRefIdx cenv fenv fenv mref) + else + (cat_MemberRef, GetMethodRefAsMemberRefIdx cenv fenv fenv mref) + +// -------------------------------------------------------------------- +// ILAttributes --> CustomAttribute rows +// -------------------------------------------------------------------- + +let rec GetCustomAttrDataAsBlobIdx cenv (data:byte[]) = + if data.Length = 0 then 0 else GetBytesAsBlobIdx cenv data + +and GetCustomAttrRow cenv hca attr = + let cat = GetMethodRefAsCustomAttribType cenv attr.Method.MethodRef + UnsharedRow + [| HasCustomAttribute (fst hca, snd hca); + CustomAttributeType (fst cat, snd cat); + Blob (GetCustomAttrDataAsBlobIdx cenv attr.Data); |] + +and GenCustomAttrPass3 cenv hca attr = + AddUnsharedRow cenv TableNames.CustomAttribute (GetCustomAttrRow cenv hca attr) |> ignore + +and GenCustomAttrsPass3 cenv hca (attrs: ILAttributes) = + attrs.AsList |> List.iter (GenCustomAttrPass3 cenv hca) + +// -------------------------------------------------------------------- +// ILPermissionSet --> DeclSecurity rows +// -------------------------------------------------------------------- *) + +let rec GetSecurityDeclRow cenv hds (PermissionSet (action, s)) = + UnsharedRow + [| UShort (uint16 (List.assoc action (Lazy.force ILSecurityActionMap))); + HasDeclSecurity (fst hds, snd hds); + Blob (GetBytesAsBlobIdx cenv s); |] + +and GenSecurityDeclPass3 cenv hds attr = + AddUnsharedRow cenv TableNames.Permission (GetSecurityDeclRow cenv hds attr) |> ignore + +and GenSecurityDeclsPass3 cenv hds attrs = + List.iter (GenSecurityDeclPass3 cenv hds) attrs + +// -------------------------------------------------------------------- +// ILFieldSpec --> FieldRef or ILFieldDef row +// -------------------------------------------------------------------- + +let rec GetFieldSpecAsMemberRefRow cenv env fenv (fspec:ILFieldSpec) = + MemberRefRow (GetTypeAsMemberRefParent cenv env fspec.EnclosingType, + GetStringHeapIdx cenv fspec.Name, + GetFieldSpecSigAsBlobIdx cenv fenv fspec) + +and GetFieldSpecAsMemberRefIdx cenv env fspec = + let fenv = envForFieldSpec fspec + FindOrAddRow cenv TableNames.MemberRef (GetFieldSpecAsMemberRefRow cenv env fenv fspec) + +// REVIEW: write into an accumuating buffer +and EmitFieldSpecSig cenv env (bb: ByteBuffer) (fspec:ILFieldSpec) = + bb.EmitByte e_IMAGE_CEE_CS_CALLCONV_FIELD; + EmitType cenv env bb fspec.FormalType + +and GetFieldSpecSigAsBytes cenv env x = + emitBytesViaBuffer (fun bb -> EmitFieldSpecSig cenv env bb x) + +and GetFieldSpecSigAsBlobIdx cenv env x = + GetBytesAsBlobIdx cenv (GetFieldSpecSigAsBytes cenv env x) + +and GetFieldSpecAsFieldDefOrRef cenv env (fspec:ILFieldSpec) = + let typ = fspec.EnclosingType + if isTypeLocal typ then + if not typ.IsNominal then failwith "GetFieldSpecAsFieldDefOrRef: unexpected local tref-typ"; + let tref = typ.TypeRef + let tidx = GetIdxForTypeDef cenv (TdKey(tref.Enclosing,tref.Name)) + let fdkey = FieldDefKey (tidx,fspec.Name, fspec.FormalType) + (true, FindFieldDefIdx cenv fdkey) + else + (false, GetFieldSpecAsMemberRefIdx cenv env fspec) + +and GetFieldDefOrRefAsUncodedToken (tag,idx) = + let tab = if tag then TableNames.Field else TableNames.MemberRef + getUncodedToken tab idx + +// -------------------------------------------------------------------- +// callsig --> StandAloneSig +// -------------------------------------------------------------------- + +let GetCallsigAsBlobIdx cenv env (callsig:ILCallingSignature,varargs) = + GetBytesAsBlobIdx cenv + (GetCallsigAsBytes cenv env (callsig.CallingConv, + callsig.ArgTypes, + callsig.ReturnType,varargs,0)) + +let GetCallsigAsStandAloneSigRow cenv env x = + SimpleSharedRow [| Blob (GetCallsigAsBlobIdx cenv env x) |] + +let GetCallsigAsStandAloneSigIdx cenv env info = + FindOrAddRow cenv TableNames.StandAloneSig (GetCallsigAsStandAloneSigRow cenv env info) + +// -------------------------------------------------------------------- +// local signatures --> BlobHeap idx +// -------------------------------------------------------------------- + +let EmitLocalSig cenv env (bb: ByteBuffer) (locals: ILLocals) = + bb.EmitByte e_IMAGE_CEE_CS_CALLCONV_LOCAL_SIG; + bb.EmitZ32 locals.Length; + locals |> ILList.iter (fun l -> EmitType cenv env bb l.Type) + +let GetLocalSigAsBlobHeapIdx cenv env locals = + GetBytesAsBlobIdx cenv (emitBytesViaBuffer (fun bb -> EmitLocalSig cenv env bb locals)) + +let GetLocalSigAsStandAloneSigIdx cenv env locals = + SimpleSharedRow [| Blob (GetLocalSigAsBlobHeapIdx cenv env locals) |] + + + +type ExceptionClauseKind = + | FinallyClause + | FaultClause + | TypeFilterClause of int32 + | FilterClause of int + +type ExceptionClauseSpec = (int * int * int * int * ExceptionClauseKind) + +type CodeBuffer = + + // -------------------------------------------------------------------- + // Buffer to write results of emitting code into. Also record: + // - branch sources (where fixups will occur) + // - possible branch destinations + // - locations of embedded handles into the string table + // - the exception table + // -------------------------------------------------------------------- + { code: ByteBuffer; + /// (instruction; optional short form); start of instr in code buffer; code loc for the end of the instruction the fixup resides in ; where is the destination of the fixup + mutable reqdBrFixups: ((int * int option) * int * ILCodeLabel list) list; + availBrFixups: Dictionary ; + /// code loc to fixup in code buffer + mutable reqdStringFixupsInMethod: (int * int) list; + /// data for exception handling clauses + mutable seh: ExceptionClauseSpec list; + seqpoints: ResizeArray; } + + static member Create _nm = + { seh = []; + code= ByteBuffer.Create 200; + reqdBrFixups=[]; + reqdStringFixupsInMethod=[]; + availBrFixups = Dictionary<_,_>(10, HashIdentity.Structural) + seqpoints = new ResizeArray<_>(10) + } + + member codebuf.EmitExceptionClause seh = codebuf.seh <- seh :: codebuf.seh + + member codebuf.EmitSeqPoint cenv (m:ILSourceMarker) = + if cenv.generatePdb then + // table indexes are 1-based, document array indexes are 0-based + let doc = (cenv.documents.FindOrAddSharedEntry m.Document) - 1 + codebuf.seqpoints.Add + { Document=doc; + Offset= codebuf.code.Position; + Line=m.Line; + Column=m.Column; + EndLine=m.EndLine; + EndColumn=m.EndColumn; } + + member codebuf.EmitByte x = codebuf.code.EmitIntAsByte x + member codebuf.EmitUInt16 x = codebuf.code.EmitUInt16 x + member codebuf.EmitInt32 x = codebuf.code.EmitInt32 x + member codebuf.EmitInt64 x = codebuf.code.EmitInt64 x + + member codebuf.EmitUncodedToken u = codebuf.EmitInt32 u + + member codebuf.RecordReqdStringFixup stringidx = + codebuf.reqdStringFixupsInMethod <- (codebuf.code.Position, stringidx) :: codebuf.reqdStringFixupsInMethod; + // Write a special value in that we check later when applying the fixup + codebuf.EmitInt32 0xdeadbeef + + member codebuf.RecordReqdBrFixups i tgs = + codebuf.reqdBrFixups <- (i, codebuf.code.Position, tgs) :: codebuf.reqdBrFixups; + // Write a special value in that we check later when applying the fixup + // Value is 0x11 {deadbbbb}* where 11 is for the instruction and deadbbbb is for each target + codebuf.EmitByte 0x11; // for the instruction + (if fst i = i_switch then + codebuf.EmitInt32 tgs.Length); + List.iter (fun _ -> codebuf.EmitInt32 0xdeadbbbb) tgs + + member codebuf.RecordReqdBrFixup i tg = codebuf.RecordReqdBrFixups i [tg] + member codebuf.RecordAvailBrFixup tg = + codebuf.availBrFixups.[tg] <- codebuf.code.Position + +module Codebuf = begin + // -------------------------------------------------------------------- + // Applying branch fixups. Use short versions of instructions + // wherever possible. Sadly we can only determine if we can use a short + // version after we've layed out the code for all other instructions. + // This in turn means that using a short version may change + // the various offsets into the code. + // -------------------------------------------------------------------- + + let binaryChop p (arr: 'T[]) = + let rec go n m = + if n > m then raise (KeyNotFoundException("binary chop did not find element")) + else + let i = (n+m)/2 + let c = p arr.[i] + if c = 0 then i elif c < 0 then go n (i-1) else go (i+1) m + go 0 (Array.length arr) + + let applyBrFixups (origCode :byte[]) origExnClauses origReqdStringFixups (origAvailBrFixups: Dictionary) origReqdBrFixups origSeqPoints origScopes = + let orderedOrigReqdBrFixups = origReqdBrFixups |> List.sortBy (fun (_,fixuploc,_) -> fixuploc) + + let newCode = ByteBuffer.Create origCode.Length + + // Copy over all the code, working out whether the branches will be short + // or long and adjusting the branch destinations. Record an adjust function to adjust all the other + // gumpf that refers to fixed offsets in the code stream. + let newCode, newReqdBrFixups,adjuster = + let remainingReqdFixups = ref orderedOrigReqdBrFixups + let origWhere = ref 0 + let newWhere = ref 0 + let doneLast = ref false + let newReqdBrFixups = ref [] + + let adjustments = ref [] + + while (!remainingReqdFixups <> [] || not !doneLast) do + let doingLast = isNil !remainingReqdFixups + let origStartOfNoBranchBlock = !origWhere + let newStartOfNoBranchBlock = !newWhere + + let origEndOfNoBranchBlock = + if doingLast then origCode.Length + else + let (_,origStartOfInstr,_) = List.head !remainingReqdFixups + origStartOfInstr + + // Copy over a chunk of non-branching code + let nobranch_len = origEndOfNoBranchBlock - origStartOfNoBranchBlock + newCode.EmitBytes origCode.[origStartOfNoBranchBlock..origStartOfNoBranchBlock+nobranch_len-1]; + + // Record how to adjust addresses in this range, including the branch instruction + // we write below, or the end of the method if we're doing the last bblock + adjustments := (origStartOfNoBranchBlock,origEndOfNoBranchBlock,newStartOfNoBranchBlock) :: !adjustments; + + // Increment locations to the branch instruction we're really interested in + origWhere := origEndOfNoBranchBlock; + newWhere := !newWhere + nobranch_len; + + // Now do the branch instruction. Decide whether the fixup will be short or long in the new code + if doingLast then + doneLast := true + else + let (i,origStartOfInstr,tgs:ILCodeLabel list) = List.head !remainingReqdFixups + remainingReqdFixups := List.tail !remainingReqdFixups; + if origCode.[origStartOfInstr] <> 0x11uy then failwith "br fixup sanity check failed (1)"; + let i_length = if fst i = i_switch then 5 else 1 + origWhere := !origWhere + i_length; + + let origEndOfInstr = origStartOfInstr + i_length + 4 * tgs.Length + let newEndOfInstrIfSmall = !newWhere + i_length + 1 + let newEndOfInstrIfBig = !newWhere + i_length + 4 * tgs.Length + + let short = + match i,tgs with + | (_,Some i_short),[tg] + when + begin + // Use the original offsets to compute if the branch is small or large. This is + // a safe approximation because code only gets smaller. + if not (origAvailBrFixups.ContainsKey tg) then + dprintn ("branch target " + formatCodeLabel tg + " not found in code"); + let origDest = + if origAvailBrFixups.ContainsKey tg then origAvailBrFixups.[tg] + else 666666 + let origRelOffset = origDest - origEndOfInstr + -128 <= origRelOffset && origRelOffset <= 127 + end + -> + newCode.EmitIntAsByte i_short; + true + | (i_long,_),_ -> + newCode.EmitIntAsByte i_long; + (if i_long = i_switch then + newCode.EmitInt32 tgs.Length); + false + + newWhere := !newWhere + i_length; + if !newWhere <> newCode.Position then dprintn "mismatch between newWhere and newCode"; + + tgs |> List.iter (fun tg -> + let origFixupLoc = !origWhere + checkFixup32 origCode origFixupLoc 0xdeadbbbb; + + if short then + newReqdBrFixups := (!newWhere, newEndOfInstrIfSmall, tg, true) :: !newReqdBrFixups; + newCode.EmitIntAsByte 0x98; (* sanity check *) + newWhere := !newWhere + 1; + else + newReqdBrFixups := (!newWhere, newEndOfInstrIfBig, tg, false) :: !newReqdBrFixups; + newCode.EmitInt32 0xf00dd00f; (* sanity check *) + newWhere := !newWhere + 4; + if !newWhere <> newCode.Position then dprintn "mismatch between newWhere and newCode"; + origWhere := !origWhere + 4); + + if !origWhere <> origEndOfInstr then dprintn "mismatch between origWhere and origEndOfInstr"; + + let adjuster = + let arr = Array.ofList (List.rev !adjustments) + fun addr -> + let i = + try binaryChop (fun (a1,a2,_) -> if addr < a1 then -1 elif addr > a2 then 1 else 0) arr + with + :? KeyNotFoundException -> + failwith ("adjuster: address "+string addr+" is out of range") + let (origStartOfNoBranchBlock,_,newStartOfNoBranchBlock) = arr.[i] + addr - (origStartOfNoBranchBlock - newStartOfNoBranchBlock) + + newCode.Close(), + !newReqdBrFixups, + adjuster + + // Now adjust everything + let newAvailBrFixups = + let tab = Dictionary<_,_>(10, HashIdentity.Structural) + for (KeyValue(tglab,origBrDest)) in origAvailBrFixups do + tab.[tglab] <- adjuster origBrDest + tab + let newReqdStringFixups = List.map (fun (origFixupLoc,stok) -> adjuster origFixupLoc,stok) origReqdStringFixups + let newSeqPoints = Array.map (fun (sp:PdbSequencePoint) -> {sp with Offset=adjuster sp.Offset}) origSeqPoints + let newExnClauses = + origExnClauses |> List.map (fun (st1,sz1,st2,sz2,kind) -> + (adjuster st1,(adjuster (st1 + sz1) - adjuster st1), + adjuster st2,(adjuster (st2 + sz2) - adjuster st2), + (match kind with + | FinallyClause | FaultClause | TypeFilterClause _ -> kind + | FilterClause n -> FilterClause (adjuster n)))) + + let newScopes = + let rec remap scope = + {scope with StartOffset = adjuster scope.StartOffset; + EndOffset = adjuster scope.EndOffset; + Children = Array.map remap scope.Children } + List.map remap origScopes + + // Now apply the adjusted fixups in the new code + newReqdBrFixups |> List.iter (fun (newFixupLoc,endOfInstr,tg, small) -> + if not (newAvailBrFixups.ContainsKey tg) then + failwith ("target "+formatCodeLabel tg+" not found in new fixups"); + try + let n = newAvailBrFixups.[tg] + let relOffset = (n - endOfInstr) + if small then + if Bytes.get newCode newFixupLoc <> 0x98 then failwith "br fixupsanity check failed"; + newCode.[newFixupLoc] <- b0 relOffset; + else + checkFixup32 newCode newFixupLoc 0xf00dd00fl; + applyFixup32 newCode newFixupLoc relOffset + with :? KeyNotFoundException -> ()); + + newCode, newReqdStringFixups, newExnClauses, newSeqPoints, newScopes + + + // -------------------------------------------------------------------- + // Structured residue of emitting instructions: SEH exception handling + // and scopes for local variables. + // -------------------------------------------------------------------- + + // Emitting instructions generates a tree of seh specifications + // We then emit the exception handling specs separately. + // nb. ECMA spec says the SEH blocks must be returned inside-out + type SEHTree = + | Tip + | Node of (ExceptionClauseSpec option * SEHTree list) list + + + // -------------------------------------------------------------------- + // Table of encodings for instructions without arguments, also indexes + // for all instructions. + // -------------------------------------------------------------------- + + let encodingsForNoArgInstrs = System.Collections.Generic.Dictionary<_,_>(300, HashIdentity.Structural) + let _ = + List.iter + (fun (x,mk) -> encodingsForNoArgInstrs.[mk] <- x) + (noArgInstrs.Force()) + let encodingsOfNoArgInstr si = encodingsForNoArgInstrs.[si] + + // -------------------------------------------------------------------- + // Emit instructions + // -------------------------------------------------------------------- + + /// Emit the code for an instruction + let emitInstrCode (codebuf: CodeBuffer) i = + if i > 0xFF then + assert (i >>> 8 = 0xFE); + codebuf.EmitByte ((i >>> 8) &&& 0xFF); + codebuf.EmitByte (i &&& 0xFF); + else + codebuf.EmitByte i + + let emitTypeInstr cenv codebuf env i ty = + emitInstrCode codebuf i; + codebuf.EmitUncodedToken (getTypeDefOrRefAsUncodedToken (GetTypeAsTypeDefOrRef cenv env ty)) + + let emitMethodSpecInfoInstr cenv codebuf env i mspecinfo = + emitInstrCode codebuf i; + codebuf.EmitUncodedToken (GetMethodSpecInfoAsUncodedToken cenv env mspecinfo) + + let emitMethodSpecInstr cenv codebuf env i mspec = + emitInstrCode codebuf i; + codebuf.EmitUncodedToken (GetMethodSpecAsUncodedToken cenv env mspec) + + let emitFieldSpecInstr cenv codebuf env i fspec = + emitInstrCode codebuf i; + codebuf.EmitUncodedToken (GetFieldDefOrRefAsUncodedToken (GetFieldSpecAsFieldDefOrRef cenv env fspec)) + + let emitShortUInt16Instr codebuf (i_short,i) x = + let n = int32 x + if n <= 255 then + emitInstrCode codebuf i_short; + codebuf.EmitByte n; + else + emitInstrCode codebuf i; + codebuf.EmitUInt16 x; + + let emitShortInt32Instr codebuf (i_short,i) x = + if x >= (-128) && x <= 127 then + emitInstrCode codebuf i_short; + codebuf.EmitByte (if x < 0x0 then x + 256 else x); + else + emitInstrCode codebuf i; + codebuf.EmitInt32 x; + + let emitTailness (cenv: cenv) codebuf tl = + if tl = Tailcall && cenv.emitTailcalls then emitInstrCode codebuf i_tail + + let emitAfterTailcall codebuf tl = + if tl = Tailcall then emitInstrCode codebuf i_ret + + let emitVolatility codebuf tl = + if tl = Volatile then emitInstrCode codebuf i_volatile + + let emitConstrained cenv codebuf env ty = + emitInstrCode codebuf i_constrained; + codebuf.EmitUncodedToken (getTypeDefOrRefAsUncodedToken (GetTypeAsTypeDefOrRef cenv env ty)) + + let emitAlignment codebuf tl = + match tl with + | Aligned -> () + | Unaligned1 -> emitInstrCode codebuf i_unaligned; codebuf.EmitByte 0x1 + | Unaligned2 -> emitInstrCode codebuf i_unaligned; codebuf.EmitByte 0x2 + | Unaligned4 -> emitInstrCode codebuf i_unaligned; codebuf.EmitByte 0x4 + + let rec emitInstr cenv codebuf env instr = + match instr with + | si when isNoArgInstr si -> + emitInstrCode codebuf (encodingsOfNoArgInstr si) + | I_brcmp (cmp,tg1,_) -> + codebuf.RecordReqdBrFixup ((Lazy.force ILCmpInstrMap).[cmp], Some (Lazy.force ILCmpInstrRevMap).[cmp]) tg1 + | I_br _ -> () + | I_seqpoint s -> codebuf.EmitSeqPoint cenv s + | I_leave tg -> codebuf.RecordReqdBrFixup (i_leave,Some i_leave_s) tg + | I_call (tl,mspec,varargs) -> + emitTailness cenv codebuf tl; + emitMethodSpecInstr cenv codebuf env i_call (mspec,varargs); + emitAfterTailcall codebuf tl + | I_callvirt (tl,mspec,varargs) -> + emitTailness cenv codebuf tl; + emitMethodSpecInstr cenv codebuf env i_callvirt (mspec,varargs); + emitAfterTailcall codebuf tl + | I_callconstraint (tl,ty,mspec,varargs) -> + emitTailness cenv codebuf tl; + emitConstrained cenv codebuf env ty; + emitMethodSpecInstr cenv codebuf env i_callvirt (mspec,varargs); + emitAfterTailcall codebuf tl + | I_newobj (mspec,varargs) -> + emitMethodSpecInstr cenv codebuf env i_newobj (mspec,varargs) + | I_ldftn mspec -> + emitMethodSpecInstr cenv codebuf env i_ldftn (mspec,None) + | I_ldvirtftn mspec -> + emitMethodSpecInstr cenv codebuf env i_ldvirtftn (mspec,None) + + | I_calli (tl,callsig,varargs) -> + emitTailness cenv codebuf tl; + emitInstrCode codebuf i_calli; + codebuf.EmitUncodedToken (getUncodedToken TableNames.StandAloneSig (GetCallsigAsStandAloneSigIdx cenv env (callsig,varargs))); + emitAfterTailcall codebuf tl + + | I_ldarg u16 -> emitShortUInt16Instr codebuf (i_ldarg_s,i_ldarg) u16 + | I_starg u16 -> emitShortUInt16Instr codebuf (i_starg_s,i_starg) u16 + | I_ldarga u16 -> emitShortUInt16Instr codebuf (i_ldarga_s,i_ldarga) u16 + | I_ldloc u16 -> emitShortUInt16Instr codebuf (i_ldloc_s,i_ldloc) u16 + | I_stloc u16 -> emitShortUInt16Instr codebuf (i_stloc_s,i_stloc) u16 + | I_ldloca u16 -> emitShortUInt16Instr codebuf (i_ldloca_s,i_ldloca) u16 + + | I_cpblk (al,vol) -> + emitAlignment codebuf al; + emitVolatility codebuf vol; + emitInstrCode codebuf i_cpblk + | I_initblk (al,vol) -> + emitAlignment codebuf al; + emitVolatility codebuf vol; + emitInstrCode codebuf i_initblk + + | (AI_ldc (DT_I4, ILConst.I4 x)) -> + emitShortInt32Instr codebuf (i_ldc_i4_s,i_ldc_i4) x + | (AI_ldc (DT_I8, ILConst.I8 x)) -> + emitInstrCode codebuf i_ldc_i8; + codebuf.EmitInt64 x; + | (AI_ldc (_, ILConst.R4 x)) -> + emitInstrCode codebuf i_ldc_r4; + codebuf.EmitInt32 (bitsOfSingle x) + | (AI_ldc (_, ILConst.R8 x)) -> + emitInstrCode codebuf i_ldc_r8; + codebuf.EmitInt64 (bitsOfDouble x) + + | I_ldind (al,vol,dt) -> + emitAlignment codebuf al; + emitVolatility codebuf vol; + emitInstrCode codebuf + (match dt with + | DT_I -> i_ldind_i + | DT_I1 -> i_ldind_i1 + | DT_I2 -> i_ldind_i2 + | DT_I4 -> i_ldind_i4 + | DT_U1 -> i_ldind_u1 + | DT_U2 -> i_ldind_u2 + | DT_U4 -> i_ldind_u4 + | DT_I8 -> i_ldind_i8 + | DT_R4 -> i_ldind_r4 + | DT_R8 -> i_ldind_r8 + | DT_REF -> i_ldind_ref + | _ -> failwith "ldind") + + | I_stelem dt -> + emitInstrCode codebuf + (match dt with + | DT_I | DT_U -> i_stelem_i + | DT_U1 | DT_I1 -> i_stelem_i1 + | DT_I2 | DT_U2 -> i_stelem_i2 + | DT_I4 | DT_U4 -> i_stelem_i4 + | DT_I8 | DT_U8 -> i_stelem_i8 + | DT_R4 -> i_stelem_r4 + | DT_R8 -> i_stelem_r8 + | DT_REF -> i_stelem_ref + | _ -> failwith "stelem") + + | I_ldelem dt -> + emitInstrCode codebuf + (match dt with + | DT_I -> i_ldelem_i + | DT_I1 -> i_ldelem_i1 + | DT_I2 -> i_ldelem_i2 + | DT_I4 -> i_ldelem_i4 + | DT_I8 -> i_ldelem_i8 + | DT_U1 -> i_ldelem_u1 + | DT_U2 -> i_ldelem_u2 + | DT_U4 -> i_ldelem_u4 + | DT_R4 -> i_ldelem_r4 + | DT_R8 -> i_ldelem_r8 + | DT_REF -> i_ldelem_ref + | _ -> failwith "ldelem") + + | I_stind (al,vol,dt) -> + emitAlignment codebuf al; + emitVolatility codebuf vol; + emitInstrCode codebuf + (match dt with + | DT_U | DT_I -> i_stind_i + | DT_U1 | DT_I1 -> i_stind_i1 + | DT_U2 | DT_I2 -> i_stind_i2 + | DT_U4 | DT_I4 -> i_stind_i4 + | DT_U8 | DT_I8 -> i_stind_i8 + | DT_R4 -> i_stind_r4 + | DT_R8 -> i_stind_r8 + | DT_REF -> i_stind_ref + | _ -> failwith "stelem") + + | I_switch (labs,_) -> codebuf.RecordReqdBrFixups (i_switch,None) labs + + | I_ldfld (al,vol,fspec) -> + emitAlignment codebuf al; + emitVolatility codebuf vol; + emitFieldSpecInstr cenv codebuf env i_ldfld fspec + | I_ldflda fspec -> + emitFieldSpecInstr cenv codebuf env i_ldflda fspec + | I_ldsfld (vol,fspec) -> + emitVolatility codebuf vol; + emitFieldSpecInstr cenv codebuf env i_ldsfld fspec + | I_ldsflda fspec -> + emitFieldSpecInstr cenv codebuf env i_ldsflda fspec + | I_stfld (al,vol,fspec) -> + emitAlignment codebuf al; + emitVolatility codebuf vol; + emitFieldSpecInstr cenv codebuf env i_stfld fspec + | I_stsfld (vol,fspec) -> + emitVolatility codebuf vol; + emitFieldSpecInstr cenv codebuf env i_stsfld fspec + + | I_ldtoken tok -> + emitInstrCode codebuf i_ldtoken; + codebuf.EmitUncodedToken + (match tok with + | ILToken.ILType typ -> + match GetTypeAsTypeDefOrRef cenv env typ with + | (tag,idx) when tag = tdor_TypeDef -> getUncodedToken TableNames.TypeDef idx + | (tag,idx) when tag = tdor_TypeRef -> getUncodedToken TableNames.TypeRef idx + | (tag,idx) when tag = tdor_TypeSpec -> getUncodedToken TableNames.TypeSpec idx + | _ -> failwith "?" + | ILToken.ILMethod mspec -> + match GetMethodSpecAsMethodDefOrRef cenv env (mspec,None) with + | (tag,idx) when tag = mdor_MethodDef -> getUncodedToken TableNames.Method idx + | (tag,idx) when tag = mdor_MemberRef -> getUncodedToken TableNames.MemberRef idx + | _ -> failwith "?" + + | ILToken.ILField fspec -> + match GetFieldSpecAsFieldDefOrRef cenv env fspec with + | (true,idx) -> getUncodedToken TableNames.Field idx + | (false,idx) -> getUncodedToken TableNames.MemberRef idx) + | I_ldstr s -> + emitInstrCode codebuf i_ldstr; + codebuf.RecordReqdStringFixup (GetUserStringHeapIdx cenv s) + + | I_box ty -> emitTypeInstr cenv codebuf env i_box ty + | I_unbox ty -> emitTypeInstr cenv codebuf env i_unbox ty + | I_unbox_any ty -> emitTypeInstr cenv codebuf env i_unbox_any ty + + | I_newarr (shape,ty) -> + if (shape = ILArrayShape.SingleDimensional) then + emitTypeInstr cenv codebuf env i_newarr ty + else + let args = ILList.init shape.Rank (fun _ -> cenv.ilg.typ_int32) + emitMethodSpecInfoInstr cenv codebuf env i_newobj (".ctor",mkILArrTy(ty,shape),ILCallingConv.Instance,args,ILType.Void,None,emptyILGenericArgs) + + | I_stelem_any (shape,ty) -> + if (shape = ILArrayShape.SingleDimensional) then + emitTypeInstr cenv codebuf env i_stelem_any ty + else + let args = ILList.init (shape.Rank+1) (fun i -> if i < shape.Rank then cenv.ilg.typ_int32 else ty) + emitMethodSpecInfoInstr cenv codebuf env i_call ("Set",mkILArrTy(ty,shape),ILCallingConv.Instance,args,ILType.Void,None,emptyILGenericArgs) + + | I_ldelem_any (shape,ty) -> + if (shape = ILArrayShape.SingleDimensional) then + emitTypeInstr cenv codebuf env i_ldelem_any ty + else + let args = ILList.init shape.Rank (fun _ -> cenv.ilg.typ_int32) + emitMethodSpecInfoInstr cenv codebuf env i_call ("Get",mkILArrTy(ty,shape),ILCallingConv.Instance,args,ty,None,emptyILGenericArgs) + + | I_ldelema (ro,_isNativePtr,shape,ty) -> + if (ro = ReadonlyAddress) then + emitInstrCode codebuf i_readonly; + if (shape = ILArrayShape.SingleDimensional) then + emitTypeInstr cenv codebuf env i_ldelema ty + else + let args = ILList.init shape.Rank (fun _ -> cenv.ilg.typ_int32) + emitMethodSpecInfoInstr cenv codebuf env i_call ("Address",mkILArrTy(ty,shape),ILCallingConv.Instance,args,ILType.Byref ty,None,emptyILGenericArgs) + + | I_castclass ty -> emitTypeInstr cenv codebuf env i_castclass ty + | I_isinst ty -> emitTypeInstr cenv codebuf env i_isinst ty + | I_refanyval ty -> emitTypeInstr cenv codebuf env i_refanyval ty + | I_mkrefany ty -> emitTypeInstr cenv codebuf env i_mkrefany ty + | I_initobj ty -> emitTypeInstr cenv codebuf env i_initobj ty + | I_ldobj (al,vol,ty) -> + emitAlignment codebuf al; + emitVolatility codebuf vol; + emitTypeInstr cenv codebuf env i_ldobj ty + | I_stobj (al,vol,ty) -> + emitAlignment codebuf al; + emitVolatility codebuf vol; + emitTypeInstr cenv codebuf env i_stobj ty + | I_cpobj ty -> emitTypeInstr cenv codebuf env i_cpobj ty + | I_sizeof ty -> emitTypeInstr cenv codebuf env i_sizeof ty + | EI_ldlen_multi (_,m) -> + emitShortInt32Instr codebuf (i_ldc_i4_s,i_ldc_i4) m; + emitInstr cenv codebuf env (mkNormalCall(mkILNonGenericMethSpecInTy(cenv.ilg.typ_Array, ILCallingConv.Instance, "GetLength", [(cenv.ilg.typ_int32)], (cenv.ilg.typ_int32)))) + + | _ -> failwith "an IL instruction cannot be emitted" + + + let mkScopeNode cenv (localSigs: _[]) (a,b,ls,ch) = + if (isNil ls || not cenv.generatePdb) then ch + else + [ { Children= Array.ofList ch; + StartOffset=a; + EndOffset=b; + Locals= + Array.ofList + (List.map + (fun x -> { Name=x.LocalName; + Signature= (try localSigs.[x.LocalIndex] with _ -> failwith ("local variable index "+string x.LocalIndex+"in debug info does not reference a valid local")); + Index= x.LocalIndex } ) + (List.filter (fun v -> v.LocalName <> "") ls)) } ] + + let rec emitCode cenv localSigs codebuf env (susp,code) = + match code with + | TryBlock (c,seh) -> + commitSusp codebuf susp (uniqueEntryOfCode c); + let tryStart = codebuf.code.Position + let susp,child1,scope1 = emitCode cenv localSigs codebuf env (None,c) + commitSuspNoDest codebuf susp; + let tryFinish = codebuf.code.Position + let exnBranches = + match seh with + | FaultBlock flt -> + let handlerStart = codebuf.code.Position + let susp,child2,scope2 = emitCode cenv localSigs codebuf env (None,flt) + commitSuspNoDest codebuf susp; + let handlerFinish = codebuf.code.Position + [ Some (tryStart,(tryFinish - tryStart), + handlerStart,(handlerFinish - handlerStart), + FaultClause), + [(child2,scope2)] ] + + | FinallyBlock flt -> + let handlerStart = codebuf.code.Position + let susp,child2,scope2 = emitCode cenv localSigs codebuf env (None,flt) + commitSuspNoDest codebuf susp; + let handlerFinish = codebuf.code.Position + [ Some (tryStart,(tryFinish - tryStart), + handlerStart,(handlerFinish - handlerStart), + FinallyClause), + [(child2,scope2)] ] + + | FilterCatchBlock clauses -> + clauses |> List.map (fun (flt,ctch) -> + match flt with + | TypeFilter typ -> + let handlerStart = codebuf.code.Position + let susp,child2,scope2 = emitCode cenv localSigs codebuf env (None,ctch) + commitSuspNoDest codebuf susp; + let handlerFinish = codebuf.code.Position + Some (tryStart,(tryFinish - tryStart), + handlerStart,(handlerFinish - handlerStart), + TypeFilterClause (getTypeDefOrRefAsUncodedToken (GetTypeAsTypeDefOrRef cenv env typ))), + [(child2,scope2)] + | CodeFilter fltcode -> + + let filterStart = codebuf.code.Position + let susp,child2,scope2 = emitCode cenv localSigs codebuf env (None,fltcode) + commitSuspNoDest codebuf susp; + let handlerStart = codebuf.code.Position + let susp,child3,scope3 = emitCode cenv localSigs codebuf env (None,ctch) + commitSuspNoDest codebuf susp; + let handlerFinish = codebuf.code.Position + + Some (tryStart, + (tryFinish - tryStart), + handlerStart, + (handlerFinish - handlerStart), + FilterClause filterStart), + [(child2,scope2); (child3,scope3)]) + + (None, + Node((None,[child1])::List.map (fun (a,b) -> (a,List.map fst b)) exnBranches), + scope1 @ List.concat ((List.collect (fun (_,b) -> List.map snd b) exnBranches))) + + | RestrictBlock _ | GroupBlock _ -> + // NOTE: ensure tailcalls for critical linear loop using standard continuation technique + let rec emitCodeLinear (susp,b) cont = + match b with + | RestrictBlock (_,code2) -> + emitCodeLinear (susp,code2) cont + | GroupBlock (locs,codes) -> + let start = codebuf.code.Position + + // Imperative collectors for the sub-blocks + let newSusp = ref susp + let childSEH = ref [] + let childScopes = ref [] + // Push the results of collecting one sub-block into the reference cells + let collect (susp,seh,scopes) = + newSusp := susp; + childSEH := seh :: !childSEH; + childScopes := scopes :: !childScopes + // Close the collection by generating the (susp,node,scope-node) triple + let close () = + let fin = codebuf.code.Position + (!newSusp, + Node([(None,(List.rev !childSEH))]), + mkScopeNode cenv localSigs (start,fin,locs,List.concat (List.rev !childScopes))) + + match codes with + | [c] -> + // emitCodeLinear sequence of nested blocks + emitCodeLinear (!newSusp,c) (fun results -> + collect results; + cont (close())) + + | codes -> + // Multiple blocks: leave the linear sequence and process each seperately + codes |> List.iter (fun c -> collect (emitCode cenv localSigs codebuf env (!newSusp,c))); + cont(close()) + | c -> + // leave the linear sequence + cont (emitCode cenv localSigs codebuf env (susp,c)) + + // OK, process the linear sequence + emitCodeLinear (susp,code) (fun x -> x) + + | ILBasicBlock bb -> + // Leaf case: one basic block + commitSusp codebuf susp bb.Label; + codebuf.RecordAvailBrFixup bb.Label; + let instrs = bb.Instructions + for i = 0 to instrs.Length - 1 do + emitInstr cenv codebuf env instrs.[i]; + bb.Fallthrough, Tip, [] + + and brToSusp (codebuf: CodeBuffer) dest = codebuf.RecordReqdBrFixup (i_br,Some i_br_s) dest + + and commitSusp codebuf susp lab = + match susp with + | Some dest when dest <> lab -> brToSusp codebuf dest + | _ -> () + + and commitSuspNoDest codebuf susp = + match susp with + | Some dest -> brToSusp codebuf dest + | _ -> () + + // Flatten the SEH tree + let rec emitExceptionHandlerTree codebuf sehTree = + match sehTree with + | Tip -> () + | Node clauses -> List.iter (emitExceptionHandlerTree2 codebuf) clauses + + and emitExceptionHandlerTree2 (codebuf: CodeBuffer) (x,childSEH) = + List.iter (emitExceptionHandlerTree codebuf) childSEH; // internal first + match x with + | None -> () + | Some clause -> codebuf.EmitExceptionClause clause + + let EmitTopCode cenv localSigs env nm code = + let codebuf = CodeBuffer.Create nm + let finalSusp, SEHTree, origScopes = + emitCode cenv localSigs codebuf env (Some (uniqueEntryOfCode code),code) + (match finalSusp with Some dest -> brToSusp codebuf dest | _ -> ()); + emitExceptionHandlerTree codebuf SEHTree; + let origCode = codebuf.code.Close() + let origExnClauses = List.rev codebuf.seh + let origReqdStringFixups = codebuf.reqdStringFixupsInMethod + let origAvailBrFixups = codebuf.availBrFixups + let origReqdBrFixups = codebuf.reqdBrFixups + let origSeqPoints = codebuf.seqpoints.ToArray() + + let newCode, newReqdStringFixups, newExnClauses, newSeqPoints, newScopes = + applyBrFixups origCode origExnClauses origReqdStringFixups origAvailBrFixups origReqdBrFixups origSeqPoints origScopes + + let rootScope = + { Children= Array.ofList newScopes; + StartOffset=0; + EndOffset=newCode.Length; + Locals=[| |]; } + + (newReqdStringFixups,newExnClauses, newCode, newSeqPoints, rootScope) + +end + +// -------------------------------------------------------------------- +// ILMethodBody --> bytes +// -------------------------------------------------------------------- +let GetFieldDefTypeAsBlobIdx cenv env ty = + let bytes = emitBytesViaBuffer (fun bb -> bb.EmitByte e_IMAGE_CEE_CS_CALLCONV_FIELD; + EmitType cenv env bb ty) + GetBytesAsBlobIdx cenv bytes + +let GenILMethodBody mname cenv env (il: ILMethodBody) = + let localSigs = + if cenv.generatePdb then + il.Locals |> ILList.toArray |> Array.map (fun l -> + // Write a fake entry for the local signature headed by e_IMAGE_CEE_CS_CALLCONV_FIELD. This is referenced by the PDB file + ignore (FindOrAddRow cenv TableNames.StandAloneSig (SimpleSharedRow [| Blob (GetFieldDefTypeAsBlobIdx cenv env l.Type) |])); + // Now write the type + GetTypeAsBytes cenv env l.Type) + else + [| |] + + let requiredStringFixups,seh,code,seqpoints, scopes = Codebuf.EmitTopCode cenv localSigs env mname il.Code + let codeSize = code.Length + let methbuf = ByteBuffer.Create (codeSize * 3) + // Do we use the tiny format? + if ILList.isEmpty il.Locals && il.MaxStack <= 8 && isNil seh && codeSize < 64 then + // Use Tiny format + let alignedCodeSize = align 4 (codeSize + 1) + let codePadding = (alignedCodeSize - (codeSize + 1)) + let requiredStringFixups' = (1,requiredStringFixups) + methbuf.EmitByte (byte codeSize <<< 2 ||| e_CorILMethod_TinyFormat); + methbuf.EmitBytes code; + methbuf.EmitPadding codePadding; + (requiredStringFixups', methbuf.Close()), seqpoints, scopes + else + // Use Fat format + let flags = + e_CorILMethod_FatFormat ||| + (if seh <> [] then e_CorILMethod_MoreSects else 0x0uy) ||| + (if il.IsZeroInit then e_CorILMethod_InitLocals else 0x0uy) + + let localToken = + if ILList.isEmpty il.Locals then 0x0 else + getUncodedToken TableNames.StandAloneSig + (FindOrAddRow cenv TableNames.StandAloneSig (GetLocalSigAsStandAloneSigIdx cenv env il.Locals)) + + let alignedCodeSize = align 0x4 codeSize + let codePadding = (alignedCodeSize - codeSize) + + methbuf.EmitByte flags; + methbuf.EmitByte 0x30uy; // last four bits record size of fat header in 4 byte chunks - this is always 12 bytes = 3 four word chunks + methbuf.EmitUInt16 (uint16 il.MaxStack); + methbuf.EmitInt32 codeSize; + methbuf.EmitInt32 localToken; + methbuf.EmitBytes code; + methbuf.EmitPadding codePadding; + + if nonNil seh then + // Can we use the small exception handling table format? + let smallSize = (seh.Length * 12 + 4) + let canUseSmall = + smallSize <= 0xFF && + seh |> List.forall (fun (st1,sz1,st2,sz2,_) -> + st1 <= 0xFFFF && st2 <= 0xFFFF && sz1 <= 0xFF && sz2 <= 0xFF) + + let kindAsInt32 k = + match k with + | FinallyClause -> e_COR_ILEXCEPTION_CLAUSE_FINALLY + | FaultClause -> e_COR_ILEXCEPTION_CLAUSE_FAULT + | FilterClause _ -> e_COR_ILEXCEPTION_CLAUSE_FILTER + | TypeFilterClause _ -> e_COR_ILEXCEPTION_CLAUSE_EXCEPTION + let kindAsExtraInt32 k = + match k with + | FinallyClause | FaultClause -> 0x0 + | FilterClause i -> i + | TypeFilterClause uncoded -> uncoded + + if canUseSmall then + methbuf.EmitByte e_CorILMethod_Sect_EHTable; + methbuf.EmitByte (b0 smallSize); + methbuf.EmitByte 0x00uy; + methbuf.EmitByte 0x00uy; + seh |> List.iter (fun (st1,sz1,st2,sz2,kind) -> + let k32 = kindAsInt32 kind + methbuf.EmitInt32AsUInt16 k32; + methbuf.EmitInt32AsUInt16 st1; + methbuf.EmitByte (b0 sz1); + methbuf.EmitInt32AsUInt16 st2; + methbuf.EmitByte (b0 sz2); + methbuf.EmitInt32 (kindAsExtraInt32 kind)) + else + let bigSize = (seh.Length * 24 + 4) + methbuf.EmitByte (e_CorILMethod_Sect_EHTable ||| e_CorILMethod_Sect_FatFormat); + methbuf.EmitByte (b0 bigSize); + methbuf.EmitByte (b1 bigSize); + methbuf.EmitByte (b2 bigSize); + seh |> List.iter (fun (st1,sz1,st2,sz2,kind) -> + let k32 = kindAsInt32 kind + methbuf.EmitInt32 k32; + methbuf.EmitInt32 st1; + methbuf.EmitInt32 sz1; + methbuf.EmitInt32 st2; + methbuf.EmitInt32 sz2; + methbuf.EmitInt32 (kindAsExtraInt32 kind)) + + let requiredStringFixups' = (12,requiredStringFixups) + + (requiredStringFixups', methbuf.Close()), seqpoints, scopes + +// -------------------------------------------------------------------- +// ILFieldDef --> FieldDef Row +// -------------------------------------------------------------------- + +let rec GetFieldDefAsFieldDefRow cenv env (fd: ILFieldDef) = + let flags = + GetMemberAccessFlags fd.Access ||| + (if fd.IsStatic then 0x0010 else 0x0) ||| + (if fd.IsInitOnly then 0x0020 else 0x0) ||| + (if fd.IsLiteral then 0x0040 else 0x0) ||| + (if fd.NotSerialized then 0x0080 else 0x0) ||| + (if fd.IsSpecialName then 0x0200 else 0x0) ||| + (if fd.IsSpecialName then 0x0400 else 0x0) ||| // REVIEW: RTSpecialName + (if (fd.LiteralValue <> None) then 0x8000 else 0x0) ||| + (if (fd.Marshal <> None) then 0x1000 else 0x0) ||| + (if (fd.Data <> None) then 0x0100 else 0x0) + UnsharedRow + [| UShort (uint16 flags); + StringE (GetStringHeapIdx cenv fd.Name); + Blob (GetFieldDefSigAsBlobIdx cenv env fd ); |] + +and GetFieldDefSigAsBlobIdx cenv env fd = GetFieldDefTypeAsBlobIdx cenv env fd.Type + +and GenFieldDefPass3 cenv env fd = + let fidx = AddUnsharedRow cenv TableNames.Field (GetFieldDefAsFieldDefRow cenv env fd) + GenCustomAttrsPass3 cenv (hca_FieldDef,fidx) fd.CustomAttrs; + // Write FieldRVA table - fixups into data section done later + match fd.Data with + | None -> () + | Some b -> + let offs = cenv.data.Position + cenv.data.EmitBytes b; + AddUnsharedRow cenv TableNames.FieldRVA + (UnsharedRow [| Data (offs, false); SimpleIndex (TableNames.Field,fidx) |]) |> ignore + // Write FieldMarshal table + match fd.Marshal with + | None -> () + | Some ntyp -> + AddUnsharedRow cenv TableNames.FieldMarshal + (UnsharedRow [| HasFieldMarshal (hfm_FieldDef, fidx); + Blob (GetNativeTypeAsBlobIdx cenv ntyp) |]) |> ignore + // Write Contant table + match fd.LiteralValue with + | None -> () + | Some i -> + AddUnsharedRow cenv TableNames.Constant + (UnsharedRow + [| GetFieldInitFlags i; + HasConstant (hc_FieldDef, fidx); + Blob (GetFieldInitAsBlobIdx cenv i) |]) |> ignore + // Write FieldLayout table + match fd.Offset with + | None -> () + | Some offset -> + AddUnsharedRow cenv TableNames.FieldLayout + (UnsharedRow [| ULong offset; + SimpleIndex (TableNames.Field, fidx) |]) |> ignore + + +// -------------------------------------------------------------------- +// ILGenericParameterDef --> GenericParam Row +// -------------------------------------------------------------------- + +let rec GetGenericParamAsGenericParamRow cenv _env idx owner gp = + let flags = + (match gp.Variance with + | NonVariant -> 0x0000 + | CoVariant -> 0x0001 + | ContraVariant -> 0x0002) ||| + (if gp.HasReferenceTypeConstraint then 0x0004 else 0x0000) ||| + (if gp.HasNotNullableValueTypeConstraint then 0x0008 else 0x0000) ||| + (if gp.HasDefaultConstructorConstraint then 0x0010 else 0x0000) + + let mdVersionMajor,_ = metadataSchemaVersionSupportedByCLRVersion cenv.desiredMetadataVersion + if (mdVersionMajor = 1) then + SimpleSharedRow + [| UShort (uint16 idx); + UShort (uint16 flags); + TypeOrMethodDef (fst owner, snd owner); + StringE (GetStringHeapIdx cenv gp.Name); + TypeDefOrRefOrSpec (tdor_TypeDef, 0); (* empty kind field in deprecated metadata *) |] + else + SimpleSharedRow + [| UShort (uint16 idx); + UShort (uint16 flags); + TypeOrMethodDef (fst owner, snd owner); + StringE (GetStringHeapIdx cenv gp.Name) |] + +and GenTypeAsGenericParamConstraintRow cenv env gpidx ty = + let tdorTag,tdorRow = GetTypeAsTypeDefOrRef cenv env ty + UnsharedRow + [| SimpleIndex (TableNames.GenericParam, gpidx); + TypeDefOrRefOrSpec (tdorTag,tdorRow) |] + +and GenGenericParamConstraintPass4 cenv env gpidx ty = + AddUnsharedRow cenv TableNames.GenericParamConstraint (GenTypeAsGenericParamConstraintRow cenv env gpidx ty) |> ignore + +and GenGenericParamPass3 cenv env idx owner gp = + // shared since we look it up again below in GenGenericParamPass4 + let gpidx = AddSharedRow cenv TableNames.GenericParam (GetGenericParamAsGenericParamRow cenv env idx owner gp) + GenCustomAttrsPass3 cenv (hca_GenericParam,gpidx) gp.CustomAttrs; + +and GenGenericParamPass4 cenv env idx owner gp = + let gpidx = FindOrAddRow cenv TableNames.GenericParam (GetGenericParamAsGenericParamRow cenv env idx owner gp) + gp.Constraints |> ILList.iter (GenGenericParamConstraintPass4 cenv env gpidx) + +// -------------------------------------------------------------------- +// param and return --> Param Row +// -------------------------------------------------------------------- + +let rec GetParamAsParamRow cenv _env seq param = + let flags = + (if param.IsIn then 0x0001 else 0x0000) ||| + (if param.IsOut then 0x0002 else 0x0000) ||| + (if param.IsOptional then 0x0010 else 0x0000) ||| + (if param.Default <> None then 0x1000 else 0x0000) ||| + (if param.Marshal <> None then 0x2000 else 0x0000) + + UnsharedRow + [| UShort (uint16 flags); + UShort (uint16 seq); + StringE (GetStringHeapIdxOption cenv param.Name) |] + +and GenParamPass3 cenv env seq param = + if param.IsIn=false && param.IsOut=false && param.IsOptional=false && isNone param.Default && isNone param.Name && isNone param.Marshal + then () + else + let pidx = AddUnsharedRow cenv TableNames.Param (GetParamAsParamRow cenv env seq param) + GenCustomAttrsPass3 cenv (hca_ParamDef,pidx) param.CustomAttrs; + // Write FieldRVA table - fixups into data section done later + match param.Marshal with + | None -> () + | Some ntyp -> + AddUnsharedRow cenv TableNames.FieldMarshal + (UnsharedRow [| HasFieldMarshal (hfm_ParamDef, pidx); + Blob (GetNativeTypeAsBlobIdx cenv ntyp) |]) |> ignore + +let GenReturnAsParamRow (returnv : ILReturn) = + let flags = (if returnv.Marshal <> None then 0x2000 else 0x0000) + UnsharedRow + [| UShort (uint16 flags); + UShort 0us; (* sequence num. *) + StringE 0 |] + +let GenReturnPass3 cenv (returnv: ILReturn) = + if isSome returnv.Marshal || nonNil returnv.CustomAttrs.AsList then + let pidx = AddUnsharedRow cenv TableNames.Param (GenReturnAsParamRow returnv) + GenCustomAttrsPass3 cenv (hca_ParamDef,pidx) returnv.CustomAttrs; + match returnv.Marshal with + | None -> () + | Some ntyp -> + AddUnsharedRow cenv TableNames.FieldMarshal + (UnsharedRow + [| HasFieldMarshal (hfm_ParamDef, pidx); + Blob (GetNativeTypeAsBlobIdx cenv ntyp) |]) |> ignore + +// -------------------------------------------------------------------- +// ILMethodDef --> ILMethodDef Row +// -------------------------------------------------------------------- + +let GetMethodDefSigAsBytes cenv env (mdef: ILMethodDef) = + emitBytesViaBuffer (fun bb -> + bb.EmitByte (callconvToByte mdef.GenericParams.Length mdef.CallingConv); + if mdef.GenericParams.Length > 0 then bb.EmitZ32 mdef.GenericParams.Length; + bb.EmitZ32 mdef.Parameters.Length; + EmitType cenv env bb mdef.Return.Type; + mdef.ParameterTypes |> ILList.iter (EmitType cenv env bb)) + +let GenMethodDefSigAsBlobIdx cenv env mdef = + GetBytesAsBlobIdx cenv (GetMethodDefSigAsBytes cenv env mdef) + +let GenMethodDefAsRow cenv env midx (md: ILMethodDef) = + let flags = + GetMemberAccessFlags md.Access ||| + (if (match md.mdKind with + | MethodKind.Static | MethodKind.Cctor -> true + | _ -> false) then 0x0010 else 0x0) ||| + (if (match md.mdKind with MethodKind.Virtual vinfo -> vinfo.IsFinal | _ -> false) then 0x0020 else 0x0) ||| + (if (match md.mdKind with MethodKind.Virtual _ -> true | _ -> false) then 0x0040 else 0x0) ||| + (if md.IsHideBySig then 0x0080 else 0x0) ||| + (if (match md.mdKind with MethodKind.Virtual vinfo -> vinfo.IsCheckAccessOnOverride | _ -> false) then 0x0200 else 0x0) ||| + (if (match md.mdKind with MethodKind.Virtual vinfo -> vinfo.IsNewSlot | _ -> false) then 0x0100 else 0x0) ||| + (if (match md.mdKind with MethodKind.Virtual vinfo -> vinfo.IsAbstract | _ -> false) then 0x0400 else 0x0) ||| + (if md.IsSpecialName then 0x0800 else 0x0) ||| + (if (match md.mdBody.Contents with MethodBody.PInvoke _ -> true | _ -> false) then 0x2000 else 0x0) ||| + (if md.IsUnmanagedExport then 0x0008 else 0x0) ||| + (if + (match md.mdKind with + | MethodKind.Ctor | MethodKind.Cctor -> true + | _ -> false) then 0x1000 else 0x0) ||| // RTSpecialName + (if md.IsReqSecObj then 0x8000 else 0x0) ||| + (if md.HasSecurity || not md.SecurityDecls.AsList.IsEmpty then 0x4000 else 0x0) + let implflags = + (match md.mdCodeKind with + | MethodCodeKind.Native -> 0x0001 + | MethodCodeKind.Runtime -> 0x0003 + | MethodCodeKind.IL -> 0x0000) ||| + (if md.IsInternalCall then 0x1000 else 0x0000) ||| + (if md.IsManaged then 0x0000 else 0x0004) ||| + (if md.IsForwardRef then 0x0010 else 0x0000) ||| + (if md.IsPreserveSig then 0x0080 else 0x0000) ||| + (if md.IsSynchronized then 0x0020 else 0x0000) ||| + (if md.IsMustRun then 0x0040 else 0x0000) ||| + (if (md.IsNoInline || (match md.mdBody.Contents with MethodBody.IL il -> il.NoInlining | _ -> false)) then 0x0008 else 0x0000) + + if md.IsEntryPoint then + if cenv.entrypoint <> None then failwith "duplicate entrypoint" + else cenv.entrypoint <- Some (true, midx); + let codeAddr = + (match md.mdBody.Contents with + | MethodBody.IL ilmbody -> + let addr = cenv.nextCodeAddr + let (code, seqpoints, rootScope) = GenILMethodBody md.Name cenv env ilmbody + + // Now record the PDB record for this method - we write this out later. + if cenv.generatePdb then + cenv.pdbinfo.Add + { MethToken=getUncodedToken TableNames.Method midx; + MethName=md.Name; + Params= [| |]; (* REVIEW *) + RootScope = rootScope; + Range= + match ilmbody.SourceMarker with + | Some m when cenv.generatePdb -> + // table indexes are 1-based, document array indexes are 0-based + let doc = (cenv.documents.FindOrAddSharedEntry m.Document) - 1 + + Some ({ Document=doc; + Line=m.Line; + Column=m.Column; }, + { Document=doc; + Line=m.EndLine; + Column=m.EndColumn; }) + | _ -> None + SequencePoints=seqpoints; }; + + cenv.AddCode code; + addr + | MethodBody.Native -> + failwith "cannot write body of native method - Abstract IL cannot roundtrip mixed native/managed binaries"; + | _ -> 0x0000) + + UnsharedRow + [| ULong codeAddr ; + UShort (uint16 implflags); + UShort (uint16 flags); + StringE (GetStringHeapIdx cenv md.Name); + Blob (GenMethodDefSigAsBlobIdx cenv env md); + SimpleIndex(TableNames.Param,cenv.GetTable(TableNames.Param).Count + 1) |] + +let GenMethodImplPass3 cenv env _tgparams tidx mimpl = + let midxTag, midxRow = GetMethodSpecAsMethodDef cenv env (mimpl.OverrideBy,None) + let midx2Tag, midx2Row = GetOverridesSpecAsMethodDefOrRef cenv env mimpl.Overrides + AddUnsharedRow cenv TableNames.MethodImpl + (UnsharedRow + [| SimpleIndex (TableNames.TypeDef, tidx); + MethodDefOrRef (midxTag, midxRow); + MethodDefOrRef (midx2Tag, midx2Row) |]) |> ignore + +let GenMethodDefPass3 cenv env (md:ILMethodDef) = + let midx = GetMethodDefIdx cenv md + let idx2 = AddUnsharedRow cenv TableNames.Method (GenMethodDefAsRow cenv env midx md) + if midx <> idx2 then failwith "index of method def on pass 3 does not match index on pass 2"; + GenReturnPass3 cenv md.Return; + md.Parameters |> ILList.iteri (fun n param -> GenParamPass3 cenv env (n+1) param) ; + md.CustomAttrs |> GenCustomAttrsPass3 cenv (hca_MethodDef,midx) ; + md.SecurityDecls.AsList |> GenSecurityDeclsPass3 cenv (hds_MethodDef,midx); + md.GenericParams |> List.iteri (fun n gp -> GenGenericParamPass3 cenv env n (tomd_MethodDef, midx) gp) ; + match md.mdBody.Contents with + | MethodBody.PInvoke attr -> + let flags = + begin match attr.CallingConv with + | PInvokeCallingConvention.None -> 0x0000 + | PInvokeCallingConvention.Cdecl -> 0x0200 + | PInvokeCallingConvention.Stdcall -> 0x0300 + | PInvokeCallingConvention.Thiscall -> 0x0400 + | PInvokeCallingConvention.Fastcall -> 0x0500 + | PInvokeCallingConvention.WinApi -> 0x0100 + end ||| + begin match attr.CharEncoding with + | PInvokeCharEncoding.None -> 0x0000 + | PInvokeCharEncoding.Ansi -> 0x0002 + | PInvokeCharEncoding.Unicode -> 0x0004 + | PInvokeCharEncoding.Auto -> 0x0006 + end ||| + begin match attr.CharBestFit with + | PInvokeCharBestFit.UseAssembly -> 0x0000 + | PInvokeCharBestFit.Enabled -> 0x0010 + | PInvokeCharBestFit.Disabled -> 0x0020 + end ||| + begin match attr.ThrowOnUnmappableChar with + | PInvokeThrowOnUnmappableChar.UseAssembly -> 0x0000 + | PInvokeThrowOnUnmappableChar.Enabled -> 0x1000 + | PInvokeThrowOnUnmappableChar.Disabled -> 0x2000 + end ||| + (if attr.NoMangle then 0x0001 else 0x0000) ||| + (if attr.LastError then 0x0040 else 0x0000) + AddUnsharedRow cenv TableNames.ImplMap + (UnsharedRow + [| UShort (uint16 flags); + MemberForwarded (mf_MethodDef,midx); + StringE (GetStringHeapIdx cenv attr.Name); + SimpleIndex (TableNames.ModuleRef, GetModuleRefAsIdx cenv attr.Where); |]) |> ignore + | _ -> () + +let GenMethodDefPass4 cenv env md = + let midx = GetMethodDefIdx cenv md + List.iteri (fun n gp -> GenGenericParamPass4 cenv env n (tomd_MethodDef, midx) gp) md.GenericParams + +let GenPropertyMethodSemanticsPass3 cenv pidx kind mref = + // REVIEW: why are we catching exceptions here? + let midx = try GetMethodRefAsMethodDefIdx cenv mref with MethodDefNotFound -> 1 + AddUnsharedRow cenv TableNames.MethodSemantics + (UnsharedRow + [| UShort (uint16 kind); + SimpleIndex (TableNames.Method,midx); + HasSemantics (hs_Property, pidx) |]) |> ignore + +let rec GetPropertySigAsBlobIdx cenv env prop = + GetBytesAsBlobIdx cenv (GetPropertySigAsBytes cenv env prop) + +and GetPropertySigAsBytes cenv env prop = + emitBytesViaBuffer (fun bb -> + let b = ((hasthisToByte prop.CallingConv) ||| e_IMAGE_CEE_CS_CALLCONV_PROPERTY) + bb.EmitByte b; + bb.EmitZ32 prop.Args.Length; + EmitType cenv env bb prop.Type; + prop.Args |> ILList.iter (EmitType cenv env bb)) + +and GetPropertyAsPropertyRow cenv env (prop:ILPropertyDef) = + let flags = + (if prop.IsSpecialName then 0x0200 else 0x0) ||| + (if prop.IsRTSpecialName then 0x0400 else 0x0) ||| + (if prop.Init <> None then 0x1000 else 0x0) + UnsharedRow + [| UShort (uint16 flags); + StringE (GetStringHeapIdx cenv prop.Name); + Blob (GetPropertySigAsBlobIdx cenv env prop); |] + +/// ILPropertyDef --> Property Row + MethodSemantics entries +and GenPropertyPass3 cenv env prop = + let pidx = AddUnsharedRow cenv TableNames.Property (GetPropertyAsPropertyRow cenv env prop) + prop.SetMethod |> Option.iter (GenPropertyMethodSemanticsPass3 cenv pidx 0x0001) ; + prop.GetMethod |> Option.iter (GenPropertyMethodSemanticsPass3 cenv pidx 0x0002) ; + // Write Constant table + match prop.Init with + | None -> () + | Some i -> + AddUnsharedRow cenv TableNames.Constant + (UnsharedRow + [| GetFieldInitFlags i; + HasConstant (hc_Property, pidx); + Blob (GetFieldInitAsBlobIdx cenv i) |]) |> ignore + GenCustomAttrsPass3 cenv (hca_Property,pidx) prop.CustomAttrs + +let rec GenEventMethodSemanticsPass3 cenv eidx kind mref = + let addIdx = try GetMethodRefAsMethodDefIdx cenv mref with MethodDefNotFound -> 1 + AddUnsharedRow cenv TableNames.MethodSemantics + (UnsharedRow + [| UShort (uint16 kind); + SimpleIndex (TableNames.Method,addIdx); + HasSemantics (hs_Event, eidx) |]) |> ignore + +/// ILEventDef --> Event Row + MethodSemantics entries +and GenEventAsEventRow cenv env (md: ILEventDef) = + let flags = + (if md.IsSpecialName then 0x0200 else 0x0) ||| + (if md.IsRTSpecialName then 0x0400 else 0x0) + let tdorTag, tdorRow = GetTypeOptionAsTypeDefOrRef cenv env md.Type + UnsharedRow + [| UShort (uint16 flags); + StringE (GetStringHeapIdx cenv md.Name); + TypeDefOrRefOrSpec (tdorTag,tdorRow) |] + +and GenEventPass3 cenv env (md: ILEventDef) = + let eidx = AddUnsharedRow cenv TableNames.Event (GenEventAsEventRow cenv env md) + md.AddMethod |> GenEventMethodSemanticsPass3 cenv eidx 0x0008 + md.RemoveMethod |> GenEventMethodSemanticsPass3 cenv eidx 0x0010 + Option.iter (GenEventMethodSemanticsPass3 cenv eidx 0x0020) md.FireMethod + List.iter (GenEventMethodSemanticsPass3 cenv eidx 0x0004) md.OtherMethods; + GenCustomAttrsPass3 cenv (hca_Event,eidx) md.CustomAttrs + + +// -------------------------------------------------------------------- +// resource --> generate ... +// -------------------------------------------------------------------- + +let rec GetResourceAsManifestResourceRow cenv r = + let data,impl = + match r.Location with + | ILResourceLocation.Local bf -> + let b = bf() + // Embedded managed resources must be word-aligned. However resource format is + // not specified in ECMA. Some mscorlib resources appear to be non-aligned - it seems it doesn't matter.. + let offset = cenv.resources.Position + let alignedOffset = (align 0x8 offset) + let pad = alignedOffset - offset + let resourceSize = b.Length + cenv.resources.EmitPadding pad; + cenv.resources.EmitInt32 resourceSize; + cenv.resources.EmitBytes b; + Data (alignedOffset,true), (i_File, 0) + | ILResourceLocation.File (mref,offset) -> ULong offset, (i_File, GetModuleRefAsFileIdx cenv mref) + | ILResourceLocation.Assembly aref -> ULong 0x0, (i_AssemblyRef, GetAssemblyRefAsIdx cenv aref) + UnsharedRow + [| data; + ULong (match r.Access with ILResourceAccess.Public -> 0x01 | ILResourceAccess.Private -> 0x02); + StringE (GetStringHeapIdx cenv r.Name); + Implementation (fst impl, snd impl); |] + +and GenResourcePass3 cenv r = + let idx = AddUnsharedRow cenv TableNames.ManifestResource (GetResourceAsManifestResourceRow cenv r) + GenCustomAttrsPass3 cenv (hca_ManifestResource,idx) r.CustomAttrs + +// -------------------------------------------------------------------- +// ILTypeDef --> generate ILFieldDef, ILMethodDef, ILPropertyDef etc. rows +// -------------------------------------------------------------------- + +let rec GenTypeDefPass3 enc cenv (td:ILTypeDef) = + try + let env = envForTypeDef td + let tidx = GetIdxForTypeDef cenv (TdKey(enc,td.Name)) + td.Properties.AsList |> List.iter (GenPropertyPass3 cenv env); + td.Events.AsList |> List.iter (GenEventPass3 cenv env); + td.Fields.AsList |> List.iter (GenFieldDefPass3 cenv env); + td.Methods |> Seq.iter (GenMethodDefPass3 cenv env); + td.MethodImpls.AsList |> List.iter (GenMethodImplPass3 cenv env td.GenericParams.Length tidx); + // ClassLayout entry if needed + match td.Layout with + | ILTypeDefLayout.Auto -> () + | ILTypeDefLayout.Sequential layout | ILTypeDefLayout.Explicit layout -> + if isSome layout.Pack || isSome layout.Size then + AddUnsharedRow cenv TableNames.ClassLayout + (UnsharedRow + [| UShort (match layout.Pack with None -> uint16 0x0 | Some p -> p); + ULong (match layout.Size with None -> 0x0 | Some p -> p); + SimpleIndex (TableNames.TypeDef, tidx) |]) |> ignore + + td.SecurityDecls.AsList |> GenSecurityDeclsPass3 cenv (hds_TypeDef,tidx); + td.CustomAttrs |> GenCustomAttrsPass3 cenv (hca_TypeDef,tidx); + td.GenericParams |> List.iteri (fun n gp -> GenGenericParamPass3 cenv env n (tomd_TypeDef,tidx) gp) ; + td.NestedTypes.AsList |> GenTypeDefsPass3 (enc@[td.Name]) cenv; + with e -> + failwith ("Error in pass3 for type "+td.Name+", error: "+e.Message); + reraise() + raise e + +and GenTypeDefsPass3 enc cenv tds = + List.iter (GenTypeDefPass3 enc cenv) tds + +/// ILTypeDef --> generate generic params on ILMethodDef: ensures +/// GenericParam table is built sorted by owner. + +let rec GenTypeDefPass4 enc cenv (td:ILTypeDef) = + try + let env = envForTypeDef td + let tidx = GetIdxForTypeDef cenv (TdKey(enc,td.Name)) + td.Methods |> Seq.iter (GenMethodDefPass4 cenv env) ; + List.iteri (fun n gp -> GenGenericParamPass4 cenv env n (tomd_TypeDef,tidx) gp) td.GenericParams; + GenTypeDefsPass4 (enc@[td.Name]) cenv td.NestedTypes.AsList; + with e -> + failwith ("Error in pass4 for type "+td.Name+", error: "+e.Message); + reraise() + raise e + +and GenTypeDefsPass4 enc cenv tds = + List.iter (GenTypeDefPass4 enc cenv) tds + +// -------------------------------------------------------------------- +// ILExportedTypesAndForwarders --> ILExportedTypeOrForwarder table +// -------------------------------------------------------------------- + +let rec GenNestedExportedTypePass3 cenv cidx (ce: ILNestedExportedType) = + let flags = GetMemberAccessFlags ce.Access + let nidx = + AddUnsharedRow cenv TableNames.ExportedType + (UnsharedRow + [| ULong flags ; + ULong 0x0; + StringE (GetStringHeapIdx cenv ce.Name); + StringE 0; + Implementation (i_ExportedType, cidx) |]) + GenCustomAttrsPass3 cenv (hca_ExportedType,nidx) ce.CustomAttrs; + GenNestedExportedTypesPass3 cenv nidx ce.Nested + +and GenNestedExportedTypesPass3 cenv nidx (nce: ILNestedExportedTypes) = + nce.AsList |> List.iter (GenNestedExportedTypePass3 cenv nidx) + +and GenExportedTypePass3 cenv (ce: ILExportedTypeOrForwarder) = + let nselem,nelem = GetTypeNameAsElemPair cenv ce.Name + let flags = GetTypeAccessFlags ce.Access + let flags = if ce.IsForwarder then 0x00200000 ||| flags else flags + let impl = GetScopeRefAsImplementationElem cenv ce.ScopeRef + let cidx = + AddUnsharedRow cenv TableNames.ExportedType + (UnsharedRow + [| ULong flags ; + ULong 0x0; + nelem; + nselem; + Implementation (fst impl, snd impl); |]) + GenCustomAttrsPass3 cenv (hca_ExportedType,cidx) ce.CustomAttrs; + GenNestedExportedTypesPass3 cenv cidx ce.Nested + +and GenExportedTypesPass3 cenv (ce: ILExportedTypesAndForwarders) = + List.iter (GenExportedTypePass3 cenv) ce.AsList; + +// -------------------------------------------------------------------- +// manifest --> generate Assembly row +// -------------------------------------------------------------------- + +and GetManifsetAsAssemblyRow cenv m = + UnsharedRow + [|ULong m.AuxModuleHashAlgorithm; + UShort (match m.Version with None -> 0us | Some (x,_,_,_) -> x); + UShort (match m.Version with None -> 0us | Some (_,y,_,_) -> y); + UShort (match m.Version with None -> 0us | Some (_,_,z,_) -> z); + UShort (match m.Version with None -> 0us | Some (_,_,_,w) -> w); + ULong + ( (match m.AssemblyLongevity with + | ILAssemblyLongevity.Unspecified -> 0x0000 + | ILAssemblyLongevity.Library -> 0x0002 + | ILAssemblyLongevity.PlatformAppDomain -> 0x0004 + | ILAssemblyLongevity.PlatformProcess -> 0x0006 + | ILAssemblyLongevity.PlatformSystem -> 0x0008) ||| + (if m.Retargetable then 0x100 else 0x0) ||| + // Setting these causes peverify errors. Hence both ilread and ilwrite ignore them and refuse to set them. + // Any debugging customattributes will automatically propagate + // REVIEW: No longer appears to be the case... + (if m.JitTracking then 0x8000 else 0x0) ||| + (if m.DisableJitOptimizations then 0x4000 else 0x0) ||| + (match m.PublicKey with None -> 0x0000 | Some _ -> 0x0001) ||| + 0x0000); + (match m.PublicKey with None -> Blob 0 | Some x -> Blob (GetBytesAsBlobIdx cenv x)); + StringE (GetStringHeapIdx cenv m.Name); + (match m.Locale with None -> StringE 0 | Some x -> StringE (GetStringHeapIdx cenv x)); |] + +and GenManifestPass3 cenv m = + let aidx = AddUnsharedRow cenv TableNames.Assembly (GetManifsetAsAssemblyRow cenv m) + GenSecurityDeclsPass3 cenv (hds_Assembly,aidx) m.SecurityDecls.AsList; + GenCustomAttrsPass3 cenv (hca_Assembly,aidx) m.CustomAttrs; + GenExportedTypesPass3 cenv m.ExportedTypes; + // Record the entrypoint decl if needed. + match m.EntrypointElsewhere with + | Some mref -> + if cenv.entrypoint <> None then failwith "duplicate entrypoint" + else cenv.entrypoint <- Some (false, GetModuleRefAsIdx cenv mref); + | None -> () + +and newGuid (modul: ILModuleDef) = + let n = absilWriteGetTimeStamp () + let m = hash n + let m2 = hash modul.Name + [| b0 m; b1 m; b2 m; b3 m; b0 m2; b1 m2; b2 m2; b3 m2; 0xa7uy; 0x45uy; 0x03uy; 0x83uy; b0 n; b1 n; b2 n; b3 n |] + +and GetModuleAsRow cenv (modul: ILModuleDef) = + // Store the generated MVID in the environment (needed for generating debug information) + let modulGuid = newGuid modul + cenv.moduleGuid <- modulGuid + UnsharedRow + [| UShort (uint16 0x0); + StringE (GetStringHeapIdx cenv modul.Name); + Guid (GetGuidIdx cenv modulGuid); + Guid 0; + Guid 0 |] + + +let rowElemCompare (e1: RowElement) (e2: RowElement) = + let c = compare e1.Val e2.Val + if c <> 0 then c else + compare e1.Tag e2.Tag + +let SortTableRows tab (rows:IGenericRow[]) = + if List.memAssoc tab sortedTableInfo then + let rows = rows |> Array.map (fun row -> row.GetGenericRow()) + let col = List.assoc tab sortedTableInfo + rows + // This needs to be a stable sort, so we use Lsit.sortWith + |> Array.toList + |> List.sortWith (fun r1 r2 -> rowElemCompare r1.[col] r2.[col]) + |> Array.ofList + |> Array.map (fun arr -> (SimpleSharedRow arr) :> IGenericRow) + else + rows + +let GenModule (cenv : cenv) (modul: ILModuleDef) = + let midx = AddUnsharedRow cenv TableNames.Module (GetModuleAsRow cenv modul) + List.iter (GenResourcePass3 cenv) modul.Resources.AsList; + let tds = destTypeDefsWithGlobalFunctionsFirst cenv.ilg modul.TypeDefs + reportTime cenv.showTimes "Module Generation Preparation"; + GenTypeDefsPass1 [] cenv tds; + reportTime cenv.showTimes "Module Generation Pass 1"; + GenTypeDefsPass2 0 [] cenv tds; + reportTime cenv.showTimes "Module Generation Pass 2"; + (match modul.Manifest with None -> () | Some m -> GenManifestPass3 cenv m); + GenTypeDefsPass3 [] cenv tds; + reportTime cenv.showTimes "Module Generation Pass 3"; + GenCustomAttrsPass3 cenv (hca_Module,midx) modul.CustomAttrs; + // GenericParam is the only sorted table indexed by Columns in other tables (GenericParamConstraint). + // Hence we need to sort it before we emit any entries in GenericParamConstraint. + // Note this mutates the rows in a table. 'SetRowsOfTable' clears + // the key --> index map since it is no longer valid + cenv.GetTable(TableNames.GenericParam).SetRowsOfTable (SortTableRows TableNames.GenericParam (cenv.GetTable(TableNames.GenericParam).EntriesAsArray)); + GenTypeDefsPass4 [] cenv tds; + reportTime cenv.showTimes "Module Generation Pass 4" + +let generateIL requiredDataFixups (desiredMetadataVersion,generatePdb,mscorlib,emitTailcalls,showTimes) (m : ILModuleDef) noDebugData cilStartAddress = + let isDll = m.IsDLL + + let cenv = + { mscorlib=mscorlib; + emitTailcalls=emitTailcalls; + showTimes=showTimes; + ilg = mkILGlobals mscorlib None noDebugData; // assumes mscorlib is Scope_assembly _ ILScopeRef + desiredMetadataVersion=desiredMetadataVersion; + requiredDataFixups= requiredDataFixups; + requiredStringFixups = []; + codeChunks=ByteBuffer.Create 40000; + nextCodeAddr = cilStartAddress; + data = ByteBuffer.Create 200; + resources = ByteBuffer.Create 200; + tables= Array.init 64 (fun i -> MetadataTable<_>.New ("row table "+string i,System.Collections.Generic.EqualityComparer.Default)); + AssemblyRefs = MetadataTable<_>.New("ILAssemblyRef",System.Collections.Generic.EqualityComparer.Default); + documents=MetadataTable<_>.New("pdbdocs",System.Collections.Generic.EqualityComparer.Default); + trefCache=new Dictionary<_,_>(100); + pdbinfo= new ResizeArray<_>(200); + moduleGuid= Array.zeroCreate 16; + fieldDefs= MetadataTable<_>.New("field defs",System.Collections.Generic.EqualityComparer.Default); + methodDefIdxsByKey = MetadataTable<_>.New("method defs",System.Collections.Generic.EqualityComparer.Default); + // This uses reference identity on ILMethodDef objects + methodDefIdxs = new Dictionary<_,_>(100, HashIdentity.Reference); + propertyDefs = MetadataTable<_>.New("property defs",System.Collections.Generic.EqualityComparer.Default); + eventDefs = MetadataTable<_>.New("event defs",System.Collections.Generic.EqualityComparer.Default); + typeDefs = MetadataTable<_>.New("type defs",System.Collections.Generic.EqualityComparer.Default); + entrypoint=None; + generatePdb=generatePdb; + // These must use structural comparison since they are keyed by arrays + guids=MetadataTable<_>.New("guids",HashIdentity.Structural); + blobs= MetadataTable<_>.New("blobs",HashIdentity.Structural); + strings= MetadataTable<_>.New("strings",System.Collections.Generic.EqualityComparer.Default); + userStrings= MetadataTable<_>.New("user strings",System.Collections.Generic.EqualityComparer.Default); } + + // Now the main compilation step + GenModule cenv m; + + // Fetch out some of the results + let entryPointToken = + match cenv.entrypoint with + | Some (epHere,tok) -> + getUncodedToken (if epHere then TableNames.Method else TableNames.File) tok + | None -> + if not isDll then dprintn "warning: no entrypoint specified in executable binary"; + 0x0 + + let pdbData = + { EntryPoint= (if isDll then None else Some entryPointToken); + ModuleID = cenv.moduleGuid; + Documents = cenv.documents.EntriesAsArray; + Methods= cenv.pdbinfo.ToArray() } + + let idxForNextedTypeDef (tds:ILTypeDef list, td:ILTypeDef) = + let enc = tds |> List.map (fun td -> td.Name) + GetIdxForTypeDef cenv (TdKey(enc, td.Name)) + + let strings = Array.map Bytes.stringAsUtf8NullTerminated cenv.strings.EntriesAsArray + let userStrings = cenv.userStrings.EntriesAsArray |> Array.map System.Text.Encoding.Unicode.GetBytes + let blobs = cenv.blobs.EntriesAsArray + let guids = cenv.guids.EntriesAsArray + let tables = cenv.tables |> Array.map (fun t -> t.EntriesAsArray) + let code = cenv.GetCode() + // turn idx tbls into token maps + let mappings = + { TypeDefTokenMap = (fun t -> + getUncodedToken TableNames.TypeDef (idxForNextedTypeDef t)); + FieldDefTokenMap = (fun t fd -> + let tidx = idxForNextedTypeDef t + getUncodedToken TableNames.Field (GetFieldDefAsFieldDefIdx cenv tidx fd)); + MethodDefTokenMap = (fun t md -> + let tidx = idxForNextedTypeDef t + getUncodedToken TableNames.Method (FindMethodDefIdx cenv (GetKeyForMethodDef tidx md))); + PropertyTokenMap = (fun t pd -> + let tidx = idxForNextedTypeDef t + getUncodedToken TableNames.Property (cenv.propertyDefs.GetTableEntry (GetKeyForPropertyDef tidx pd))); + EventTokenMap = (fun t ed -> + let tidx = idxForNextedTypeDef t + getUncodedToken TableNames.Event (cenv.eventDefs.GetTableEntry (EventKey (tidx, ed.Name)))) } + reportTime cenv.showTimes "Finalize Module Generation Results"; + // New return the results + let data = cenv.data.Close() + let resources = cenv.resources.Close() + (strings,userStrings,blobs,guids,tables,entryPointToken,code,cenv.requiredStringFixups,data,resources,pdbData,mappings) + + +//===================================================================== +// TABLES+BLOBS --> PHYSICAL METADATA+BLOBS +//===================================================================== + +type BinaryChunk = + { size: int32; + addr: int32 } + +let chunk sz next = ({addr=next; size=sz},next + sz) +let nochunk next = ({addr= 0x0;size= 0x0; } ,next) + +let count f arr = + Array.fold (fun x y -> x + f y) 0x0 arr + +module FileSystemUtilites = + open System.Reflection +#if SILVERLIGHT + let progress = false + let setExecutablePermission _filename = () +#else + let progress = try System.Environment.GetEnvironmentVariable("FSharp_DebugSetFilePermissions") <> null with _ -> false + let setExecutablePermission filename = + + if runningOnMono then + try + let monoPosix = Assembly.Load("Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756") + if progress then eprintf "loading type Mono.Unix.UnixFileInfo...\n"; + let monoUnixFileInfo = monoPosix.GetType("Mono.Unix.UnixFileSystemInfo") + let fileEntry = monoUnixFileInfo.InvokeMember("GetFileSystemEntry", (BindingFlags.InvokeMethod ||| BindingFlags.Static ||| BindingFlags.Public), null, null, [| box filename |],System.Globalization.CultureInfo.InvariantCulture) + let prevPermissions = monoUnixFileInfo.InvokeMember("get_FileAccessPermissions", (BindingFlags.InvokeMethod ||| BindingFlags.Instance ||| BindingFlags.Public), null, fileEntry, [| |],System.Globalization.CultureInfo.InvariantCulture) |> unbox + // Add 0x000001ED (UserReadWriteExecute, GroupReadExecute, OtherReadExecute) to the access permissions on Unix + monoUnixFileInfo.InvokeMember("set_FileAccessPermissions", (BindingFlags.InvokeMethod ||| BindingFlags.Instance ||| BindingFlags.Public), null, fileEntry, [| box (prevPermissions ||| 0x000001ED) |],System.Globalization.CultureInfo.InvariantCulture) |> ignore + with e -> + if progress then eprintf "failure: %s...\n" (e.ToString()); + // Fail silently +#endif + +let writeILMetadataAndCode (generatePdb,desiredMetadataVersion,mscorlib,emitTailcalls,showTimes) modul noDebugData cilStartAddress = + + // When we know the real RVAs of the data section we fixup the references for the FieldRVA table. + // These references are stored as offsets into the metadata we return from this function + let requiredDataFixups = ref [] + + let next = cilStartAddress + + let strings,userStrings,blobs,guids,tables,entryPointToken,code,requiredStringFixups,data,resources,pdbData,mappings = + generateIL requiredDataFixups (desiredMetadataVersion,generatePdb,mscorlib,emitTailcalls,showTimes) modul noDebugData cilStartAddress + + reportTime showTimes "Generated Tables and Code"; + let tableSize (tab: TableName) = tables.[tab.Index].Length + + // Now place the code + let codeSize = code.Length + let alignedCodeSize = align 0x4 codeSize + let codep,next = chunk codeSize next + let codePadding = Array.create (alignedCodeSize - codeSize) 0x0uy + let _codePaddingChunk,next = chunk codePadding.Length next + + // Now layout the chunks of metadata and IL + let metadataHeaderStartChunk,_next = chunk 0x10 next + + let numStreams = 0x05 + + let (mdtableVersionMajor, mdtableVersionMinor) = metadataSchemaVersionSupportedByCLRVersion desiredMetadataVersion + + let version = + let (a,b,c,_) = desiredMetadataVersion + System.Text.Encoding.UTF8.GetBytes (sprintf "v%d.%d.%d" a b c) + + + let paddedVersionLength = align 0x4 (Array.length version) + + // Most addresses after this point are measured from the MD root + // Switch to md-rooted addresses + let next = metadataHeaderStartChunk.size + let _metadataHeaderVersionChunk,next = chunk paddedVersionLength next + let _metadataHeaderEndChunk,next = chunk 0x04 next + let _tablesStreamHeaderChunk,next = chunk (0x08 + (align 4 ("#~".Length + 0x01))) next + let _stringsStreamHeaderChunk,next = chunk (0x08 + (align 4 ("#Strings".Length + 0x01))) next + let _userStringsStreamHeaderChunk,next = chunk (0x08 + (align 4 ("#US".Length + 0x01))) next + let _guidsStreamHeaderChunk,next = chunk (0x08 + (align 4 ("#GUID".Length + 0x01))) next + let _blobsStreamHeaderChunk,next = chunk (0x08 + (align 4 ("#Blob".Length + 0x01))) next + + let tablesStreamStart = next + + let stringsStreamUnpaddedSize = count (fun (s:byte[]) -> s.Length) strings + 1 + let stringsStreamPaddedSize = align 4 stringsStreamUnpaddedSize + + let userStringsStreamUnpaddedSize = count (fun (s:byte[]) -> let n = s.Length + 1 in n + ByteBuffer.Z32Size n) userStrings + 1 + let userStringsStreamPaddedSize = align 4 userStringsStreamUnpaddedSize + + let guidsStreamUnpaddedSize = (Array.length guids) * 0x10 + let guidsStreamPaddedSize = align 4 guidsStreamUnpaddedSize + + let blobsStreamUnpaddedSize = count (fun (blob:byte[]) -> let n = blob.Length in n + ByteBuffer.Z32Size n) blobs + 1 + let blobsStreamPaddedSize = align 4 blobsStreamUnpaddedSize + + let guidsBig = guidsStreamPaddedSize >= 0x10000 + let stringsBig = stringsStreamPaddedSize >= 0x10000 + let blobsBig = blobsStreamPaddedSize >= 0x10000 + + // 64bit bitvector indicating which tables are in the metadata. + let (valid1,valid2),_ = + (((0,0), 0), tables) ||> Array.fold (fun ((valid1,valid2) as valid,n) rows -> + let valid = + if rows.Length = 0 then valid else + ( (if n < 32 then valid1 ||| (1 <<< n ) else valid1), + (if n >= 32 then valid2 ||| (1 <<< (n-32)) else valid2) ) + (valid,n+1)) + + // 64bit bitvector indicating which tables are sorted. + // Constant - REVIEW: make symbolic! compute from sorted table info! + let sorted1 = 0x3301fa00 + let sorted2 = + // If there are any generic parameters in the binary we're emitting then mark that + // table as sorted, otherwise don't. This maximizes the number of assemblies we emit + // which have an ECMA-v.1. compliant set of sorted tables. + (if tableSize (TableNames.GenericParam) > 0 then 0x00000400 else 0x00000000) ||| + (if tableSize (TableNames.GenericParamConstraint) > 0 then 0x00001000 else 0x00000000) ||| + 0x00000200 + + reportTime showTimes "Layout Header of Tables"; + + let guidAddress n = (if n = 0 then 0 else (n - 1) * 0x10 + 0x01) + + let stringAddressTable = + let tab = Array.create (strings.Length + 1) 0 + let pos = ref 1 + for i = 1 to strings.Length do + tab.[i] <- !pos; + let s = strings.[i - 1] + pos := !pos + s.Length + tab + + let stringAddress n = + if n >= Array.length stringAddressTable then failwith ("string index "+string n+" out of range"); + stringAddressTable.[n] + + let userStringAddressTable = + let tab = Array.create (Array.length userStrings + 1) 0 + let pos = ref 1 + for i = 1 to Array.length userStrings do + tab.[i] <- !pos; + let s = userStrings.[i - 1] + let n = s.Length + 1 + pos := !pos + n + ByteBuffer.Z32Size n + tab + + let userStringAddress n = + if n >= Array.length userStringAddressTable then failwith "userString index out of range"; + userStringAddressTable.[n] + + let blobAddressTable = + let tab = Array.create (blobs.Length + 1) 0 + let pos = ref 1 + for i = 1 to blobs.Length do + tab.[i] <- !pos; + let blob = blobs.[i - 1] + pos := !pos + blob.Length + ByteBuffer.Z32Size blob.Length + tab + + let blobAddress n = + if n >= blobAddressTable.Length then failwith "blob index out of range"; + blobAddressTable.[n] + + reportTime showTimes "Build String/Blob Address Tables"; + + let sortedTables = + Array.init 64 (fun i -> tables.[i] |> SortTableRows (TableName.FromIndex i)) + + reportTime showTimes "Sort Tables"; + + let codedTables = + + let bignessTable = Array.map (fun rows -> Array.length rows >= 0x10000) sortedTables + let bigness (tab:int32) = bignessTable.[tab] + + let codedBigness nbits tab = + (tableSize tab) >= (0x10000 >>> nbits) + + let tdorBigness = + codedBigness 2 TableNames.TypeDef || + codedBigness 2 TableNames.TypeRef || + codedBigness 2 TableNames.TypeSpec + + let tomdBigness = + codedBigness 1 TableNames.TypeDef || + codedBigness 1 TableNames.Method + + let hcBigness = + codedBigness 2 TableNames.Field || + codedBigness 2 TableNames.Param || + codedBigness 2 TableNames.Property + + let hcaBigness = + codedBigness 5 TableNames.Method || + codedBigness 5 TableNames.Field || + codedBigness 5 TableNames.TypeRef || + codedBigness 5 TableNames.TypeDef || + codedBigness 5 TableNames.Param || + codedBigness 5 TableNames.InterfaceImpl || + codedBigness 5 TableNames.MemberRef || + codedBigness 5 TableNames.Module || + codedBigness 5 TableNames.Permission || + codedBigness 5 TableNames.Property || + codedBigness 5 TableNames.Event || + codedBigness 5 TableNames.StandAloneSig || + codedBigness 5 TableNames.ModuleRef || + codedBigness 5 TableNames.TypeSpec || + codedBigness 5 TableNames.Assembly || + codedBigness 5 TableNames.AssemblyRef || + codedBigness 5 TableNames.File || + codedBigness 5 TableNames.ExportedType || + codedBigness 5 TableNames.ManifestResource || + codedBigness 5 TableNames.GenericParam || + codedBigness 5 TableNames.GenericParamConstraint || + codedBigness 5 TableNames.MethodSpec + + + let hfmBigness = + codedBigness 1 TableNames.Field || + codedBigness 1 TableNames.Param + + let hdsBigness = + codedBigness 2 TableNames.TypeDef || + codedBigness 2 TableNames.Method || + codedBigness 2 TableNames.Assembly + + let mrpBigness = + codedBigness 3 TableNames.TypeRef || + codedBigness 3 TableNames.ModuleRef || + codedBigness 3 TableNames.Method || + codedBigness 3 TableNames.TypeSpec + + let hsBigness = + codedBigness 1 TableNames.Event || + codedBigness 1 TableNames.Property + + let mdorBigness = + codedBigness 1 TableNames.Method || + codedBigness 1 TableNames.MemberRef + + let mfBigness = + codedBigness 1 TableNames.Field || + codedBigness 1 TableNames.Method + + let iBigness = + codedBigness 2 TableNames.File || + codedBigness 2 TableNames.AssemblyRef || + codedBigness 2 TableNames.ExportedType + + let catBigness = + codedBigness 3 TableNames.Method || + codedBigness 3 TableNames.MemberRef + + let rsBigness = + codedBigness 2 TableNames.Module || + codedBigness 2 TableNames.ModuleRef || + codedBigness 2 TableNames.AssemblyRef || + codedBigness 2 TableNames.TypeRef + + let tablesBuf = ByteBuffer.Create 20000 + + // Now the coded tables themselves - first the schemata header + tablesBuf.EmitIntsAsBytes + [| 0x00; 0x00; 0x00; 0x00; + mdtableVersionMajor; // major version of table schemata + mdtableVersionMinor; // minor version of table schemata + + ((if stringsBig then 0x01 else 0x00) ||| // bit vector for heap size + (if guidsBig then 0x02 else 0x00) ||| + (if blobsBig then 0x04 else 0x00)); + 0x01; (* reserved, always 1 *) |]; + + tablesBuf.EmitInt32 valid1; + tablesBuf.EmitInt32 valid2; + tablesBuf.EmitInt32 sorted1; + tablesBuf.EmitInt32 sorted2; + + // Numbers of rows in various tables + for rows in sortedTables do + if rows.Length <> 0 then + tablesBuf.EmitInt32 rows.Length + + + reportTime showTimes "Write Header of tablebuf"; + + // The tables themselves + for rows in sortedTables do + for row in rows do + let row = row.GetGenericRow() + for x in row do + // Emit the coded token for the array element + let t = x.Tag + let n = x.Val + match t with + | _ when t = RowElementTags.UShort -> tablesBuf.EmitUInt16 (uint16 n) + | _ when t = RowElementTags.ULong -> tablesBuf.EmitInt32 n + | _ when t = RowElementTags.Data -> recordRequiredDataFixup requiredDataFixups tablesBuf (tablesStreamStart + tablesBuf.Position) (n, false) + | _ when t = RowElementTags.DataResources -> recordRequiredDataFixup requiredDataFixups tablesBuf (tablesStreamStart + tablesBuf.Position) (n, true) + | _ when t = RowElementTags.Guid -> tablesBuf.EmitZUntaggedIndex guidsBig (guidAddress n) + | _ when t = RowElementTags.Blob -> tablesBuf.EmitZUntaggedIndex blobsBig (blobAddress n) + | _ when t = RowElementTags.String -> tablesBuf.EmitZUntaggedIndex stringsBig (stringAddress n) + | _ when t <= RowElementTags.SimpleIndexMax -> tablesBuf.EmitZUntaggedIndex (bigness (t - RowElementTags.SimpleIndexMin)) n + | _ when t <= RowElementTags.TypeDefOrRefOrSpecMax -> tablesBuf.EmitZTaggedIndex (t - RowElementTags.TypeDefOrRefOrSpecMin) 2 tdorBigness n + | _ when t <= RowElementTags.TypeOrMethodDefMax -> tablesBuf.EmitZTaggedIndex (t - RowElementTags.TypeOrMethodDefMin) 1 tomdBigness n + | _ when t <= RowElementTags.HasConstantMax -> tablesBuf.EmitZTaggedIndex (t - RowElementTags.HasConstantMin) 2 hcBigness n + | _ when t <= RowElementTags.HasCustomAttributeMax -> tablesBuf.EmitZTaggedIndex (t - RowElementTags.HasCustomAttributeMin) 5 hcaBigness n + | _ when t <= RowElementTags.HasFieldMarshalMax -> tablesBuf.EmitZTaggedIndex (t - RowElementTags.HasFieldMarshalMin) 1 hfmBigness n + | _ when t <= RowElementTags.HasDeclSecurityMax -> tablesBuf.EmitZTaggedIndex (t - RowElementTags.HasDeclSecurityMin) 2 hdsBigness n + | _ when t <= RowElementTags.MemberRefParentMax -> tablesBuf.EmitZTaggedIndex (t - RowElementTags.MemberRefParentMin) 3 mrpBigness n + | _ when t <= RowElementTags.HasSemanticsMax -> tablesBuf.EmitZTaggedIndex (t - RowElementTags.HasSemanticsMin) 1 hsBigness n + | _ when t <= RowElementTags.MethodDefOrRefMax -> tablesBuf.EmitZTaggedIndex (t - RowElementTags.MethodDefOrRefMin) 1 mdorBigness n + | _ when t <= RowElementTags.MemberForwardedMax -> tablesBuf.EmitZTaggedIndex (t - RowElementTags.MemberForwardedMin) 1 mfBigness n + | _ when t <= RowElementTags.ImplementationMax -> tablesBuf.EmitZTaggedIndex (t - RowElementTags.ImplementationMin) 2 iBigness n + | _ when t <= RowElementTags.CustomAttributeTypeMax -> tablesBuf.EmitZTaggedIndex (t - RowElementTags.CustomAttributeTypeMin) 3 catBigness n + | _ when t <= RowElementTags.ResolutionScopeMax -> tablesBuf.EmitZTaggedIndex (t - RowElementTags.ResolutionScopeMin) 2 rsBigness n + | _ -> failwith "invalid tag in row element" + + tablesBuf.Close() + + reportTime showTimes "Write Tables to tablebuf"; + + let tablesStreamUnpaddedSize = codedTables.Length + // QUERY: extra 4 empty bytes in array.exe - why? Include some extra padding after + // the tables just in case there is a mistake in the ECMA spec. + let tablesStreamPaddedSize = align 4 (tablesStreamUnpaddedSize + 4) + let tablesChunk,next = chunk tablesStreamPaddedSize next + let tablesStreamPadding = tablesChunk.size - tablesStreamUnpaddedSize + + let stringsChunk,next = chunk stringsStreamPaddedSize next + let stringsStreamPadding = stringsChunk.size - stringsStreamUnpaddedSize + let userStringsChunk,next = chunk userStringsStreamPaddedSize next + let userStringsStreamPadding = userStringsChunk.size - userStringsStreamUnpaddedSize + let guidsChunk,next = chunk (0x10 * guids.Length) next + let blobsChunk,_next = chunk blobsStreamPaddedSize next + let blobsStreamPadding = blobsChunk.size - blobsStreamUnpaddedSize + + reportTime showTimes "Layout Metadata"; + + let metadata = + let mdbuf = ByteBuffer.Create 500000 + mdbuf.EmitIntsAsBytes + [| 0x42; 0x53; 0x4a; 0x42; // Magic signature + 0x01; 0x00; // Major version + 0x01; 0x00; // Minor version + |]; + mdbuf.EmitInt32 0x0; // Reservered + + mdbuf.EmitInt32 paddedVersionLength; + mdbuf.EmitBytes version; + for i = 1 to (paddedVersionLength - Array.length version) do + mdbuf.EmitIntAsByte 0x00; + + mdbuf.EmitBytes + [| 0x00uy; 0x00uy; // flags, reserved + b0 numStreams; b1 numStreams; |]; + mdbuf.EmitInt32 tablesChunk.addr; + mdbuf.EmitInt32 tablesChunk.size; + mdbuf.EmitIntsAsBytes [| 0x23; 0x7e; 0x00; 0x00; (* #~00 *)|]; + mdbuf.EmitInt32 stringsChunk.addr; + mdbuf.EmitInt32 stringsChunk.size; + mdbuf.EmitIntsAsBytes [| 0x23; 0x53; 0x74; 0x72; 0x69; 0x6e; 0x67; 0x73; 0x00; 0x00; 0x00; 0x00 (* "#Strings0000" *)|]; + mdbuf.EmitInt32 userStringsChunk.addr; + mdbuf.EmitInt32 userStringsChunk.size; + mdbuf.EmitIntsAsBytes [| 0x23; 0x55; 0x53; 0x00; (* #US0*) |]; + mdbuf.EmitInt32 guidsChunk.addr; + mdbuf.EmitInt32 guidsChunk.size; + mdbuf.EmitIntsAsBytes [| 0x23; 0x47; 0x55; 0x49; 0x44; 0x00; 0x00; 0x00; (* #GUID000 *)|]; + mdbuf.EmitInt32 blobsChunk.addr; + mdbuf.EmitInt32 blobsChunk.size; + mdbuf.EmitIntsAsBytes [| 0x23; 0x42; 0x6c; 0x6f; 0x62; 0x00; 0x00; 0x00; (* #Blob000 *)|]; + + reportTime showTimes "Write Metadata Header"; + // Now the coded tables themselves + mdbuf.EmitBytes codedTables; + for i = 1 to tablesStreamPadding do + mdbuf.EmitIntAsByte 0x00; + reportTime showTimes "Write Metadata Tables"; + + // The string stream + mdbuf.EmitByte 0x00uy; + for s in strings do + mdbuf.EmitBytes s; + for i = 1 to stringsStreamPadding do + mdbuf.EmitIntAsByte 0x00; + reportTime showTimes "Write Metadata Strings"; + // The user string stream + mdbuf.EmitByte 0x00uy; + for s in userStrings do + mdbuf.EmitZ32 (s.Length + 1); + mdbuf.EmitBytes s; + mdbuf.EmitIntAsByte (markerForUnicodeBytes s) + for i = 1 to userStringsStreamPadding do + mdbuf.EmitIntAsByte 0x00; + + reportTime showTimes "Write Metadata User Strings"; + // The GUID stream + Array.iter mdbuf.EmitBytes guids; + + // The blob stream + mdbuf.EmitByte 0x00uy; + for s in blobs do + mdbuf.EmitZ32 s.Length; + mdbuf.EmitBytes s + for i = 1 to blobsStreamPadding do + mdbuf.EmitIntAsByte 0x00; + reportTime showTimes "Write Blob Stream"; + // Done - close the buffer and return the result. + mdbuf.Close() + + + // Now we know the user string tables etc. we can fixup the + // uses of strings in the code + for (codeStartAddr, l) in requiredStringFixups do + for (codeOffset,userStringIndex) in l do + if codeStartAddr < codep.addr || codeStartAddr >= codep.addr + codep.size then failwith "strings-in-code fixup: a group of fixups is located outside the code array"; + let locInCode = ((codeStartAddr + codeOffset) - codep.addr) + checkFixup32 code locInCode 0xdeadbeef; + let token = getUncodedToken TableNames.UserStrings (userStringAddress userStringIndex) + if (Bytes.get code (locInCode-1) <> i_ldstr) then failwith "strings-in-code fixup: not at ldstr instruction!"; + applyFixup32 code locInCode token + reportTime showTimes "Fixup Metadata"; + + entryPointToken,code, codePadding,metadata,data,resources,!requiredDataFixups,pdbData,mappings + + + +//--------------------------------------------------------------------- +// PHYSICAL METADATA+BLOBS --> PHYSICAL PE FORMAT +//--------------------------------------------------------------------- + +// THIS LAYS OUT A 2-SECTION .NET PE BINARY +// SECTIONS +// TEXT: physical 0x0200 --> RVA 0x00020000 +// e.g. raw size 0x9600, +// e.g. virt size 0x9584 +// RELOC: physical 0x9800 --> RVA 0x0000c000 +// i.e. physbase --> rvabase +// where physbase = textbase + text raw size +// phsrva = roundup(0x2000, 0x0002000 + text virt size) + +let msdosHeader : byte[] = + [| 0x4duy; 0x5auy; 0x90uy; 0x00uy; 0x03uy; 0x00uy; 0x00uy; 0x00uy + 0x04uy; 0x00uy; 0x00uy; 0x00uy; 0xFFuy; 0xFFuy; 0x00uy; 0x00uy + 0xb8uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy + 0x40uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy + 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy + 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy + 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy + 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x80uy; 0x00uy; 0x00uy; 0x00uy + 0x0euy; 0x1fuy; 0xbauy; 0x0euy; 0x00uy; 0xb4uy; 0x09uy; 0xcduy + 0x21uy; 0xb8uy; 0x01uy; 0x4cuy; 0xcduy; 0x21uy; 0x54uy; 0x68uy + 0x69uy; 0x73uy; 0x20uy; 0x70uy; 0x72uy; 0x6fuy; 0x67uy; 0x72uy + 0x61uy; 0x6duy; 0x20uy; 0x63uy; 0x61uy; 0x6euy; 0x6euy; 0x6fuy + 0x74uy; 0x20uy; 0x62uy; 0x65uy; 0x20uy; 0x72uy; 0x75uy; 0x6euy + 0x20uy; 0x69uy; 0x6euy; 0x20uy; 0x44uy; 0x4fuy; 0x53uy; 0x20uy + 0x6duy; 0x6fuy; 0x64uy; 0x65uy; 0x2euy; 0x0duy; 0x0duy; 0x0auy + 0x24uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy |] + +let writeInt64 (os: BinaryWriter) x = + os.Write (dw0 x); + os.Write (dw1 x); + os.Write (dw2 x); + os.Write (dw3 x); + os.Write (dw4 x); + os.Write (dw5 x); + os.Write (dw6 x); + os.Write (dw7 x) + +let writeInt32 (os: BinaryWriter) x = + os.Write (byte (b0 x)); + os.Write (byte (b1 x)); + os.Write (byte (b2 x)); + os.Write (byte (b3 x)) + +let writeInt32AsUInt16 (os: BinaryWriter) x = + os.Write (byte (b0 x)); + os.Write (byte (b1 x)) + +let writeDirectory os dict = + writeInt32 os (if dict.size = 0x0 then 0x0 else dict.addr); + writeInt32 os dict.size + +let writeBytes (os: BinaryWriter) (chunk:byte[]) = os.Write(chunk,0,chunk.Length) + +let writeBinaryAndReportMappings (outfile, mscorlib, pdbfile: string option, signer: ILStrongNameSigner option, fixupOverlappingSequencePoints, emitTailcalls, showTimes, dumpDebugInfo) modul noDebugData = + // Store the public key from the signer into the manifest. This means it will be written + // to the binary and also acts as an indicator to leave space for delay sign + + reportTime showTimes "Write Started"; + let isDll = modul.IsDLL + + let signer = + match signer,modul.Manifest with + | Some _, _ -> signer + | _, None -> signer + | None, Some {PublicKey=Some pubkey} -> + (dprintn "Note: The output assembly will be delay-signed using the original public"; + dprintn "Note: key. In order to load it you will need to either sign it with"; + dprintn "Note: the original private key or to turn off strong-name verification"; + dprintn "Note: (use sn.exe from the .NET Framework SDK to do this, e.g. 'sn -Vr *')."; + dprintn "Note: Alternatively if this tool supports it you can provide the original"; + dprintn "Note: private key when converting the assembly, assuming you have access to"; + dprintn "Note: it."; + Some (ILStrongNameSigner.OpenPublicKey pubkey)) + | _ -> signer + + let modul = + let pubkey = + match signer with + | None -> None + | Some s -> + try Some s.PublicKey + with e -> + failwith ("A call to StrongNameGetPublicKey failed ("+e.Message+")"); + None + begin match modul.Manifest with + | None -> () + | Some m -> + if m.PublicKey <> None && m.PublicKey <> pubkey then + dprintn "Warning: The output assembly is being signed or delay-signed with a strong name that is different to the original." + end; + { modul with Manifest = match modul.Manifest with None -> None | Some m -> Some {m with PublicKey = pubkey} } + + let timestamp = absilWriteGetTimeStamp () + + let os = + try + new BinaryWriter(FileSystem.FileStreamCreateShim(outfile)) + with e -> + failwith ("Could not open file for writing (binary mode): " + outfile) + + let pdbData,debugDirectoryChunk,debugDataChunk,textV2P,mappings = + try + + let imageBaseReal = modul.ImageBase // FIXED CHOICE + let alignVirt = modul.VirtualAlignment // FIXED CHOICE + let alignPhys = modul.PhysicalAlignment // FIXED CHOICE + + let isItanium = modul.Platform = Some(IA64) + + let numSections = 3 // .text, .sdata, .reloc + + + // HEADERS + + let next = 0x0 + let headerSectionPhysLoc = 0x0 + let headerAddr = next + let next = headerAddr + + let msdosHeaderSize = 0x80 + let msdosHeaderChunk,next = chunk msdosHeaderSize next + + let peSignatureSize = 0x04 + let peSignatureChunk,next = chunk peSignatureSize next + + let peFileHeaderSize = 0x14 + let peFileHeaderChunk,next = chunk peFileHeaderSize next + + let peOptionalHeaderSize = if modul.Is64Bit then 0xf0 else 0xe0 + let peOptionalHeaderChunk,next = chunk peOptionalHeaderSize next + + let textSectionHeaderSize = 0x28 + let textSectionHeaderChunk,next = chunk textSectionHeaderSize next + + let dataSectionHeaderSize = 0x28 + let dataSectionHeaderChunk,next = chunk dataSectionHeaderSize next + + let relocSectionHeaderSize = 0x28 + let relocSectionHeaderChunk,next = chunk relocSectionHeaderSize next + + let headerSize = next - headerAddr + let nextPhys = align alignPhys (headerSectionPhysLoc + headerSize) + let headerSectionPhysSize = nextPhys - headerSectionPhysLoc + let next = align alignVirt (headerAddr + headerSize) + + // TEXT SECTION: 8 bytes IAT table 72 bytes CLI header + + let textSectionPhysLoc = nextPhys + let textSectionAddr = next + let next = textSectionAddr + + let importAddrTableChunk,next = chunk 0x08 next + let cliHeaderPadding = (if isItanium then (align 16 next) else next) - next + let next = next + cliHeaderPadding + let cliHeaderChunk,next = chunk 0x48 next + + let desiredMetadataVersion = + if modul.MetadataVersion <> "" then + parseILVersion modul.MetadataVersion + else + match mscorlib with + | ILScopeRef.Local -> failwith "Expected mscorlib to be ILScopeRef.Assembly was ILScopeRef.Local" + | ILScopeRef.Module(_) -> failwith "Expected mscorlib to be ILScopeRef.Assembly was ILScopeRef.Module" + | ILScopeRef.Assembly(aref) -> + match aref.Version with + | Some (2us,_,_,_) -> parseILVersion "2.0.50727.0" + | Some v -> v + | None -> failwith "Expected msorlib to have a version number" + + let entryPointToken,code,codePadding,metadata,data,resources,requiredDataFixups,pdbData,mappings = + writeILMetadataAndCode ((pdbfile <> None), desiredMetadataVersion,mscorlib,emitTailcalls,showTimes) modul noDebugData next + + reportTime showTimes "Generated IL and metadata"; + let _codeChunk,next = chunk code.Length next + let _codePaddingChunk,next = chunk codePadding.Length next + + let metadataChunk,next = chunk metadata.Length next + + let strongnameChunk,next = + match signer with + | None -> nochunk next + | Some s -> chunk s.SignatureSize next + + let resourcesChunk,next = chunk resources.Length next + + let rawdataChunk,next = chunk data.Length next + + let vtfixupsChunk,next = nochunk next // Note: only needed for mixed mode assemblies + let importTableChunkPrePadding = (if isItanium then (align 16 next) else next) - next + let next = next + importTableChunkPrePadding + let importTableChunk,next = chunk 0x28 next + let importLookupTableChunk,next = chunk 0x14 next + let importNameHintTableChunk,next = chunk 0x0e next + let mscoreeStringChunk,next = chunk 0x0c next + + let next = align 0x10 (next + 0x05) - 0x05 + let importTableChunk = { addr=importTableChunk.addr; size = next - importTableChunk.addr} + let importTableChunkPadding = importTableChunk.size - (0x28 + 0x14 + 0x0e + 0x0c) + + let next = next + 0x03 + let entrypointCodeChunk,next = chunk 0x06 next + let globalpointerCodeChunk,next = chunk (if isItanium then 0x8 else 0x0) next + + let debugDirectoryChunk,next = chunk (if pdbfile = None then 0x0 else sizeof_IMAGE_DEBUG_DIRECTORY) next + // The debug data is given to us by the PDB writer and appears to + // typically be the type of the data plus the PDB file name. We fill + // this in after we've written the binary. We approximate the size according + // to what PDB writers seem to require and leave extra space just in case... + let debugDataJustInCase = 40 + let debugDataChunk,next = + chunk (align 0x4 (match pdbfile with + | None -> 0x0 + | Some f -> (24 + + System.Text.Encoding.Unicode.GetByteCount(f) // See bug 748444 + + debugDataJustInCase))) next + + + let textSectionSize = next - textSectionAddr + let nextPhys = align alignPhys (textSectionPhysLoc + textSectionSize) + let textSectionPhysSize = nextPhys - textSectionPhysLoc + let next = align alignVirt (textSectionAddr + textSectionSize) + + // .RSRC SECTION (DATA) + let dataSectionPhysLoc = nextPhys + let dataSectionAddr = next + let dataSectionVirtToPhys v = v - dataSectionAddr + dataSectionPhysLoc + +#if SILVERLIGHT + let nativeResources = [| |] +#else + let resourceFormat = if modul.Is64Bit then Support.X64 else Support.X86 + + let nativeResources = + match modul.NativeResources with + | [] -> [||] + | resources -> + if runningOnMono then + [||] + else + let unlinkedResources = List.map Lazy.force resources + begin + try linkNativeResources unlinkedResources next resourceFormat (Path.GetDirectoryName(outfile)) + with e -> failwith ("Linking a native resource failed: "+e.Message+"") + end +#endif + + let nativeResourcesSize = nativeResources.Length + + let nativeResourcesChunk,next = chunk nativeResourcesSize next + + let dummydatap,next = chunk (if next = dataSectionAddr then 0x01 else 0x0) next + + let dataSectionSize = next - dataSectionAddr + let nextPhys = align alignPhys (dataSectionPhysLoc + dataSectionSize) + let dataSectionPhysSize = nextPhys - dataSectionPhysLoc + let next = align alignVirt (dataSectionAddr + dataSectionSize) + + // .RELOC SECTION base reloc table: 0x0c size + let relocSectionPhysLoc = nextPhys + let relocSectionAddr = next + let baseRelocTableChunk,next = chunk 0x0c next + + let relocSectionSize = next - relocSectionAddr + let nextPhys = align alignPhys (relocSectionPhysLoc + relocSectionSize) + let relocSectionPhysSize = nextPhys - relocSectionPhysLoc + let next = align alignVirt (relocSectionAddr + relocSectionSize) + + // Now we know where the data section lies we can fix up the + // references into the data section from the metadata tables. + begin + requiredDataFixups |> List.iter + (fun (metadataOffset32,(dataOffset,kind)) -> + let metadataOffset = metadataOffset32 + if metadataOffset < 0 || metadataOffset >= metadata.Length - 4 then failwith "data RVA fixup: fixup located outside metadata"; + checkFixup32 metadata metadataOffset 0xdeaddddd; + let dataRva = + if kind then + let res = dataOffset + if res >= resourcesChunk.size then dprintn ("resource offset bigger than resource data section"); + res + else + let res = rawdataChunk.addr + dataOffset + if res < rawdataChunk.addr then dprintn ("data rva before data section"); + if res >= rawdataChunk.addr + rawdataChunk.size then dprintn ("data rva after end of data section, dataRva = "+string res+", rawdataChunk.addr = "+string rawdataChunk.addr+", rawdataChunk.size = "+string rawdataChunk.size); + res + applyFixup32 metadata metadataOffset dataRva); + end; + + // IMAGE TOTAL SIZE + let imageEndSectionPhysLoc = nextPhys + let imageEndAddr = next + + reportTime showTimes "Layout image"; + + let write p (os: BinaryWriter) chunkName chunk = + match p with + | None -> () + | Some pExpected -> + os.Flush(); + let pCurrent = int32 os.BaseStream.Position + if pCurrent <> pExpected then + failwith ("warning: "+chunkName+" not where expected, pCurrent = "+string pCurrent+", p.addr = "+string pExpected) + writeBytes os chunk + + let writePadding (os: BinaryWriter) _comment sz = + if sz < 0 then failwith "writePadding: size < 0"; + for i = 0 to sz - 1 do + os.Write 0uy + + // Now we've computed all the offsets, write the image + + write (Some msdosHeaderChunk.addr) os "msdos header" msdosHeader; + + write (Some peSignatureChunk.addr) os "pe signature" [| |]; + + writeInt32 os 0x4550; + + write (Some peFileHeaderChunk.addr) os "pe file header" [| |]; + + if (modul.Platform = Some(AMD64)) then + writeInt32AsUInt16 os 0x8664 // Machine - IMAGE_FILE_MACHINE_AMD64 + elif isItanium then + writeInt32AsUInt16 os 0x200 + else + writeInt32AsUInt16 os 0x014c; // Machine - IMAGE_FILE_MACHINE_I386 + + writeInt32AsUInt16 os numSections; + writeInt32 os timestamp; // date since 1970 + writeInt32 os 0x00; // Pointer to Symbol Table Always 0 + // 00000090 + writeInt32 os 0x00; // Number of Symbols Always 0 + writeInt32AsUInt16 os peOptionalHeaderSize; // Size of the optional header, the format is described below. + + // 64bit: IMAGE_FILE_32BIT_MACHINE ||| IMAGE_FILE_LARGE_ADDRESS_AWARE + // 32bit: IMAGE_FILE_32BIT_MACHINE + // Yes, 32BIT_MACHINE is set for AMD64... + let iMachineCharacteristic = match modul.Platform with | Some IA64 -> 0x20 | Some AMD64 -> 0x0120 | _ -> 0x0100 + + writeInt32AsUInt16 os ((if isDll then 0x2000 else 0x0000) ||| 0x0002 ||| 0x0004 ||| 0x0008 ||| iMachineCharacteristic); + + // Now comes optional header + + let peOptionalHeaderByte = peOptionalHeaderByteByCLRVersion desiredMetadataVersion + + write (Some peOptionalHeaderChunk.addr) os "pe optional header" [| |]; + if modul.Is64Bit then + writeInt32AsUInt16 os 0x020B // Magic number is 0x020B for 64-bit + else + writeInt32AsUInt16 os 0x010b; // Always 0x10B (see Section 23.1). + writeInt32AsUInt16 os peOptionalHeaderByte; // ECMA spec says 6, some binaries, e.g. fscmanaged.exe say 7, Whidbey binaries say 8 + writeInt32 os textSectionPhysSize; // Size of the code (text) section, or the sum of all code sections if there are multiple sections. + // 000000a0 + writeInt32 os dataSectionPhysSize; // Size of the initialized data section, or the sum of all such sections if there are multiple data sections. + writeInt32 os 0x00; // Size of the uninitialized data section, or the sum of all such sections if there are multiple unitinitalized data sections. + writeInt32 os entrypointCodeChunk.addr; // RVA of entry point , needs to point to bytes 0xFF 0x25 followed by the RVA+!0x4000000 in a section marked execute/read for EXEs or 0 for DLLs e.g. 0x0000b57e + writeInt32 os textSectionAddr; // e.g. 0x0002000 + // 000000b0 + if modul.Is64Bit then + writeInt64 os ((int64)imageBaseReal) // REVIEW: For 64-bit, we should use a 64-bit image base + else + writeInt32 os dataSectionAddr; // e.g. 0x0000c000 + writeInt32 os imageBaseReal; // Image Base Always 0x400000 (see Section 23.1). - QUERY : no it's not always 0x400000, e.g. 0x034f0000 + + writeInt32 os alignVirt; // Section Alignment Always 0x2000 (see Section 23.1). + writeInt32 os alignPhys; // File Alignment Either 0x200 or 0x1000. + // 000000c0 + writeInt32AsUInt16 os 0x04; // OS Major Always 4 (see Section 23.1). + writeInt32AsUInt16 os 0x00; // OS Minor Always 0 (see Section 23.1). + writeInt32AsUInt16 os 0x00; // User Major Always 0 (see Section 23.1). + writeInt32AsUInt16 os 0x00; // User Minor Always 0 (see Section 23.1). + do + let (major, minor) = modul.SubsystemVersion + writeInt32AsUInt16 os major; + writeInt32AsUInt16 os minor; + writeInt32 os 0x00; // Reserved Always 0 (see Section 23.1). + // 000000d0 + writeInt32 os imageEndAddr; // Image Size: Size, in bytes, of image, including all headers and padding; shall be a multiple of Section Alignment. e.g. 0x0000e000 + writeInt32 os headerSectionPhysSize; // Header Size Combined size of MS-DOS Header, PE Header, PE Optional Header and padding; shall be a multiple of the file alignment. + writeInt32 os 0x00; // File Checksum Always 0 (see Section 23.1). QUERY: NOT ALWAYS ZERO + writeInt32AsUInt16 os modul.SubSystemFlags; // SubSystem Subsystem required to run this image. Shall be either IMAGE_SUBSYSTEM_WINDOWS_CE_GUI (0x3) or IMAGE_SUBSYSTEM_WINDOWS_GUI (0x2). QUERY: Why is this 3 on the images ILASM produces + // DLL Flags Always 0x400 (no unmanaged windows exception handling - see Section 23.1). + // Itanium: see notes at end of file + // IMAGE_DLLCHARACTERISTICS_NX_COMPAT: See FSharp 1.0 bug 5019 and http://blogs.msdn.com/ed_maurer/archive/2007/12/14/nxcompat-and-the-c-compiler.aspx + // Itanium : IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE | IMAGE_DLLCHARACTERISTICS_ NO_SEH | IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE | IMAGE_DLLCHARACTERISTICS_NX_COMPAT + // x86 : IMAGE_DLLCHARACTERISTICS_ NO_SEH | IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE | IMAGE_DLLCHARACTERISTICS_NX_COMPAT + // x64 : IMAGE_DLLCHARACTERISTICS_ NO_SEH | IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE | IMAGE_DLLCHARACTERISTICS_NX_COMPAT + let dllCharacteristics = + let flags = + if modul.Is64Bit then (if isItanium then 0x8540 else 0x540) + else 0x540 + if modul.UseHighEntropyVA then flags ||| 0x20 // IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA + else flags + writeInt32AsUInt16 os dllCharacteristics + // 000000e0 + // Note that the defaults differ between x86 and x64 + if modul.Is64Bit then + let size = defaultArg modul.StackReserveSize 0x400000 |> int64 + writeInt64 os size; // Stack Reserve Size Always 0x400000 (4Mb) (see Section 23.1). + writeInt64 os 0x4000L; // Stack Commit Size Always 0x4000 (16Kb) (see Section 23.1). + writeInt64 os 0x100000L; // Heap Reserve Size Always 0x100000 (1Mb) (see Section 23.1). + writeInt64 os 0x2000L // Heap Commit Size Always 0x800 (8Kb) (see Section 23.1). + else + let size = defaultArg modul.StackReserveSize 0x100000 + writeInt32 os size; // Stack Reserve Size Always 0x100000 (1Mb) (see Section 23.1). + writeInt32 os 0x1000; // Stack Commit Size Always 0x1000 (4Kb) (see Section 23.1). + writeInt32 os 0x100000; // Heap Reserve Size Always 0x100000 (1Mb) (see Section 23.1). + writeInt32 os 0x1000; // Heap Commit Size Always 0x1000 (4Kb) (see Section 23.1). + // 000000f0 - x86 location, moving on, for x64, add 0x10 + writeInt32 os 0x00; // Loader Flags Always 0 (see Section 23.1) + writeInt32 os 0x10; // Number of Data Directories: Always 0x10 (see Section 23.1). + writeInt32 os 0x00; + writeInt32 os 0x00; // Export Table Always 0 (see Section 23.1). + // 00000100 + writeDirectory os importTableChunk; // Import Table RVA of Import Table, (see clause 24.3.1). e.g. 0000b530 + // Native Resource Table: ECMA says Always 0 (see Section 23.1), but mscorlib and other files with resources bound into executable do not. For the moment assume the resources table is always the first resource in the file. + writeDirectory os nativeResourcesChunk; + + // 00000110 + writeInt32 os 0x00; // Exception Table Always 0 (see Section 23.1). + writeInt32 os 0x00; // Exception Table Always 0 (see Section 23.1). + writeInt32 os 0x00; // Certificate Table Always 0 (see Section 23.1). + writeInt32 os 0x00; // Certificate Table Always 0 (see Section 23.1). + // 00000120 + writeDirectory os baseRelocTableChunk; + writeDirectory os debugDirectoryChunk; // Debug Directory + // 00000130 + writeInt32 os 0x00; // Copyright Always 0 (see Section 23.1). + writeInt32 os 0x00; // Copyright Always 0 (see Section 23.1). + writeInt32 os 0x00; // Global Ptr Always 0 (see Section 23.1). + writeInt32 os 0x00; // Global Ptr Always 0 (see Section 23.1). + // 00000140 + writeInt32 os 0x00; // Load Config Table Always 0 (see Section 23.1). + writeInt32 os 0x00; // Load Config Table Always 0 (see Section 23.1). + writeInt32 os 0x00; // TLS Table Always 0 (see Section 23.1). + writeInt32 os 0x00; // TLS Table Always 0 (see Section 23.1). + // 00000150 + writeInt32 os 0x00; // Bound Import Always 0 (see Section 23.1). + writeInt32 os 0x00; // Bound Import Always 0 (see Section 23.1). + writeDirectory os importAddrTableChunk; // Import Addr Table, (see clause 24.3.1). e.g. 0x00002000 + // 00000160 + writeInt32 os 0x00; // Delay Import Descriptor Always 0 (see Section 23.1). + writeInt32 os 0x00; // Delay Import Descriptor Always 0 (see Section 23.1). + writeDirectory os cliHeaderChunk; + // 00000170 + writeInt32 os 0x00; // Reserved Always 0 (see Section 23.1). + writeInt32 os 0x00; // Reserved Always 0 (see Section 23.1). + + write (Some textSectionHeaderChunk.addr) os "text section header" [| |]; + + // 00000178 + writeBytes os [| 0x2euy; 0x74uy; 0x65uy; 0x78uy; 0x74uy; 0x00uy; 0x00uy; 0x00uy; |]; // ".text\000\000\000" + // 00000180 + writeInt32 os textSectionSize; // VirtualSize: Total size of the section when loaded into memory in bytes rounded to Section Alignment. If this value is greater than Size of Raw Data, the section is zero-padded. e.g. 0x00009584 + writeInt32 os textSectionAddr; // VirtualAddress For executable images this is the address of the first byte of the section, when loaded into memory, relative to the image base. e.g. 0x00020000 + writeInt32 os textSectionPhysSize; // SizeOfRawData Size of the initialized data on disk in bytes, shall be a multiple of FileAlignment from the PE header. If this is less than VirtualSize the remainder of the section is zero filled. Because this field is rounded while the VirtualSize field is not it is possible for this to be greater than VirtualSize as well. When a section contains only uninitialized data, this field should be 0. 0x00009600 + writeInt32 os textSectionPhysLoc; // PointerToRawData RVA to section’s first page within the PE file. This shall be a multiple of FileAlignment from the optional header. When a section contains only uninitialized data, this field should be 0. e.g. 00000200 + // 00000190 + writeInt32 os 0x00; // PointerToRelocations RVA of Relocation section. + writeInt32 os 0x00; // PointerToLinenumbers Always 0 (see Section 23.1). + // 00000198 + writeInt32AsUInt16 os 0x00;// NumberOfRelocations Number of relocations, set to 0 if unused. + writeInt32AsUInt16 os 0x00; // NumberOfLinenumbers Always 0 (see Section 23.1). + writeBytes os [| 0x20uy; 0x00uy; 0x00uy; 0x60uy |]; // Characteristics Flags describing section’s characteristics, see below. IMAGE_SCN_CNT_CODE || IMAGE_SCN_MEM_EXECUTE || IMAGE_SCN_MEM_READ + + write (Some dataSectionHeaderChunk.addr) os "data section header" [| |]; + + // 000001a0 + writeBytes os [| 0x2euy; 0x72uy; 0x73uy; 0x72uy; 0x63uy; 0x00uy; 0x00uy; 0x00uy; |]; // ".rsrc\000\000\000" + // writeBytes os [| 0x2e; 0x73; 0x64; 0x61; 0x74; 0x61; 0x00; 0x00; |]; // ".sdata\000\000" + writeInt32 os dataSectionSize; // VirtualSize: Total size of the section when loaded into memory in bytes rounded to Section Alignment. If this value is greater than Size of Raw Data, the section is zero-padded. e.g. 0x0000000c + writeInt32 os dataSectionAddr; // VirtualAddress For executable images this is the address of the first byte of the section, when loaded into memory, relative to the image base. e.g. 0x0000c000 + // 000001b0 + writeInt32 os dataSectionPhysSize; // SizeOfRawData Size of the initialized data on disk in bytes, shall be a multiple of FileAlignment from the PE header. If this is less than VirtualSize the remainder of the section is zero filled. Because this field is rounded while the VirtualSize field is not it is possible for this to be greater than VirtualSize as well. When a section contains only uninitialized data, this field should be 0. e.g. 0x00000200 + writeInt32 os dataSectionPhysLoc; // PointerToRawData QUERY: Why does ECMA say "RVA" here? Offset to section’s first page within the PE file. This shall be a multiple of FileAlignment from the optional header. When a section contains only uninitialized data, this field should be 0. e.g. 0x00009800 + // 000001b8 + writeInt32 os 0x00; // PointerToRelocations RVA of Relocation section. + writeInt32 os 0x00; // PointerToLinenumbers Always 0 (see Section 23.1). + // 000001c0 + writeInt32AsUInt16 os 0x00; // NumberOfRelocations Number of relocations, set to 0 if unused. + writeInt32AsUInt16 os 0x00; // NumberOfLinenumbers Always 0 (see Section 23.1). + writeBytes os [| 0x40uy; 0x00uy; 0x00uy; 0x40uy |]; // Characteristics Flags: IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA + + write (Some relocSectionHeaderChunk.addr) os "reloc section header" [| |]; + // 000001a0 + writeBytes os [| 0x2euy; 0x72uy; 0x65uy; 0x6cuy; 0x6fuy; 0x63uy; 0x00uy; 0x00uy; |]; // ".reloc\000\000" + writeInt32 os relocSectionSize; // VirtualSize: Total size of the section when loaded into memory in bytes rounded to Section Alignment. If this value is greater than Size of Raw Data, the section is zero-padded. e.g. 0x0000000c + writeInt32 os relocSectionAddr; // VirtualAddress For executable images this is the address of the first byte of the section, when loaded into memory, relative to the image base. e.g. 0x0000c000 + // 000001b0 + writeInt32 os relocSectionPhysSize; // SizeOfRawData Size of the initialized reloc on disk in bytes, shall be a multiple of FileAlignment from the PE header. If this is less than VirtualSize the remainder of the section is zero filled. Because this field is rounded while the VirtualSize field is not it is possible for this to be greater than VirtualSize as well. When a section contains only uninitialized reloc, this field should be 0. e.g. 0x00000200 + writeInt32 os relocSectionPhysLoc; // PointerToRawData QUERY: Why does ECMA say "RVA" here? Offset to section’s first page within the PE file. This shall be a multiple of FileAlignment from the optional header. When a section contains only uninitialized reloc, this field should be 0. e.g. 0x00009800 + // 000001b8 + writeInt32 os 0x00; // PointerToRelocations RVA of Relocation section. + writeInt32 os 0x00; // PointerToLinenumbers Always 0 (see Section 23.1). + // 000001c0 + writeInt32AsUInt16 os 0x00; // NumberOfRelocations Number of relocations, set to 0 if unused. + writeInt32AsUInt16 os 0x00; // NumberOfLinenumbers Always 0 (see Section 23.1). + writeBytes os [| 0x40uy; 0x00uy; 0x00uy; 0x42uy |]; // Characteristics Flags: IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ | + + writePadding os "pad to text begin" (textSectionPhysLoc - headerSize); + + // TEXT SECTION: e.g. 0x200 + + let textV2P v = v - textSectionAddr + textSectionPhysLoc + + // e.g. 0x0200 + write (Some (textV2P importAddrTableChunk.addr)) os "import addr table" [| |]; + writeInt32 os importNameHintTableChunk.addr; + writeInt32 os 0x00; // QUERY 4 bytes of zeros not 2 like ECMA 24.3.1 says + + // e.g. 0x0208 + + let flags = + (if modul.IsILOnly then 0x01 else 0x00) ||| + (if modul.Is32Bit then 0x02 else 0x00) ||| + (if modul.Is32BitPreferred then 0x00020003 else 0x00) ||| + (if (match signer with None -> false | Some s -> s.IsFullySigned) then 0x08 else 0x00) + + let headerVersionMajor,headerVersionMinor = headerVersionSupportedByCLRVersion desiredMetadataVersion + + writePadding os "pad to cli header" cliHeaderPadding + write (Some (textV2P cliHeaderChunk.addr)) os "cli header" [| |]; + writeInt32 os 0x48; // size of header + writeInt32AsUInt16 os headerVersionMajor; // Major part of minimum version of CLR reqd. + writeInt32AsUInt16 os headerVersionMinor; // Minor part of minimum version of CLR reqd. ... + // e.g. 0x0210 + writeDirectory os metadataChunk; + writeInt32 os flags; + + writeInt32 os entryPointToken; + write None os "rest of cli header" [| |]; + + // e.g. 0x0220 + writeDirectory os resourcesChunk; + writeDirectory os strongnameChunk; + // e.g. 0x0230 + writeInt32 os 0x00; // code manager table, always 0 + writeInt32 os 0x00; // code manager table, always 0 + writeDirectory os vtfixupsChunk; + // e.g. 0x0240 + writeInt32 os 0x00; // export addr table jumps, always 0 + writeInt32 os 0x00; // export addr table jumps, always 0 + writeInt32 os 0x00; // managed native header, always 0 + writeInt32 os 0x00; // managed native header, always 0 + + writeBytes os code; + write None os "code padding" codePadding; + + writeBytes os metadata; + + // write 0x80 bytes of empty space for encrypted SHA1 hash, written by SN.EXE or call to signing API + if signer <> None then + write (Some (textV2P strongnameChunk.addr)) os "strongname" (Array.create strongnameChunk.size 0x0uy); + + write (Some (textV2P resourcesChunk.addr)) os "raw resources" [| |]; + writeBytes os resources; + write (Some (textV2P rawdataChunk.addr)) os "raw data" [| |]; + writeBytes os data; + + writePadding os "start of import table" importTableChunkPrePadding + + // vtfixups would go here + write (Some (textV2P importTableChunk.addr)) os "import table" [| |]; + + writeInt32 os importLookupTableChunk.addr; + writeInt32 os 0x00; + writeInt32 os 0x00; + writeInt32 os mscoreeStringChunk.addr; + writeInt32 os importAddrTableChunk.addr; + writeInt32 os 0x00; + writeInt32 os 0x00; + writeInt32 os 0x00; + writeInt32 os 0x00; + writeInt32 os 0x00; + + write (Some (textV2P importLookupTableChunk.addr)) os "import lookup table" [| |]; + writeInt32 os importNameHintTableChunk.addr; + writeInt32 os 0x00; + writeInt32 os 0x00; + writeInt32 os 0x00; + writeInt32 os 0x00; + + + write (Some (textV2P importNameHintTableChunk.addr)) os "import name hint table" [| |]; + // Two zero bytes of hint, then Case sensitive, null-terminated ASCII string containing name to import. + // Shall _CorExeMain a .exe file _CorDllMain for a .dll file. + if isDll then + writeBytes os [| 0x00uy; 0x00uy; 0x5fuy; 0x43uy ; 0x6fuy; 0x72uy; 0x44uy; 0x6cuy; 0x6cuy; 0x4duy; 0x61uy; 0x69uy; 0x6euy; 0x00uy |] + else + writeBytes os [| 0x00uy; 0x00uy; 0x5fuy; 0x43uy; 0x6fuy; 0x72uy; 0x45uy; 0x78uy; 0x65uy; 0x4duy; 0x61uy; 0x69uy; 0x6euy; 0x00uy |]; + + write (Some (textV2P mscoreeStringChunk.addr)) os "mscoree string" + [| 0x6duy; 0x73uy; 0x63uy; 0x6fuy ; 0x72uy; 0x65uy ; 0x65uy; 0x2euy ; 0x64uy; 0x6cuy ; 0x6cuy; 0x00uy ; |]; + + writePadding os "end of import tab" importTableChunkPadding; + + writePadding os "head of entrypoint" 0x03; + let ep = (imageBaseReal + textSectionAddr) + write (Some (textV2P entrypointCodeChunk.addr)) os " entrypoint code" + [| 0xFFuy; 0x25uy; (* x86 Instructions for entry *) b0 ep; b1 ep; b2 ep; b3 ep |]; + if isItanium then + write (Some (textV2P globalpointerCodeChunk.addr)) os " itanium global pointer" + [| 0x0uy; 0x0uy; 0x0uy; 0x0uy; 0x0uy; 0x0uy; 0x0uy; 0x0uy |]; + + if pdbfile.IsSome then + write (Some (textV2P debugDirectoryChunk.addr)) os "debug directory" (Array.create sizeof_IMAGE_DEBUG_DIRECTORY 0x0uy); + write (Some (textV2P debugDataChunk.addr)) os "debug data" (Array.create debugDataChunk.size 0x0uy); + + writePadding os "end of .text" (dataSectionPhysLoc - textSectionPhysLoc - textSectionSize); + + // DATA SECTION + match nativeResources with + | [||] -> () + | resources -> + write (Some (dataSectionVirtToPhys nativeResourcesChunk.addr)) os "raw native resources" [| |]; + writeBytes os resources; + + if dummydatap.size <> 0x0 then + write (Some (dataSectionVirtToPhys dummydatap.addr)) os "dummy data" [| 0x0uy |]; + + writePadding os "end of .rsrc" (relocSectionPhysLoc - dataSectionPhysLoc - dataSectionSize); + + // RELOC SECTION + + // See ECMA 24.3.2 + let relocV2P v = v - relocSectionAddr + relocSectionPhysLoc + + let entrypointFixupAddr = entrypointCodeChunk.addr + 0x02 + let entrypointFixupBlock = (entrypointFixupAddr / 4096) * 4096 + let entrypointFixupOffset = entrypointFixupAddr - entrypointFixupBlock + let reloc = (if modul.Is64Bit then 0xA000 (* IMAGE_REL_BASED_DIR64 *) else 0x3000 (* IMAGE_REL_BASED_HIGHLOW *)) ||| entrypointFixupOffset + // For the itanium, you need to set a relocation entry for the global pointer + let reloc2 = + if not isItanium then + 0x0 + else + 0xA000 ||| (globalpointerCodeChunk.addr - ((globalpointerCodeChunk.addr / 4096) * 4096)) + + write (Some (relocV2P baseRelocTableChunk.addr)) os "base reloc table" + [| b0 entrypointFixupBlock; b1 entrypointFixupBlock; b2 entrypointFixupBlock; b3 entrypointFixupBlock; + 0x0cuy; 0x00uy; 0x00uy; 0x00uy; + b0 reloc; b1 reloc; + b0 reloc2; b1 reloc2; |]; + writePadding os "end of .reloc" (imageEndSectionPhysLoc - relocSectionPhysLoc - relocSectionSize); + + os.Close(); + + try + FileSystemUtilites.setExecutablePermission outfile + with _ -> + () + pdbData,debugDirectoryChunk,debugDataChunk,textV2P,mappings + + // Looks like a finally... + with e -> + (try + os.Close(); + FileSystem.FileDelete outfile + with _ -> ()); + reraise() + raise e // is this really needed? + + + reportTime showTimes "Writing Image"; + + if dumpDebugInfo then + DumpDebugInfo outfile pdbData + +#if SILVERLIGHT +#else + // Now we've done the bulk of the binary, do the PDB file and fixup the binary. + begin match pdbfile with + | None -> () + | Some fmdb when runningOnMono -> + WriteMdbInfo fmdb outfile pdbData + + | Some fpdb -> + try + let idd = WritePdbInfo fixupOverlappingSequencePoints showTimes outfile fpdb pdbData + reportTime showTimes "Generate PDB Info"; + + // Now we have the debug data we can go back and fill in the debug directory in the image + let fs2 = new FileStream(outfile, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read, 0x1000, false) + let os2 = new BinaryWriter(fs2) + try + // write the IMAGE_DEBUG_DIRECTORY + os2.BaseStream.Seek (int64 (textV2P debugDirectoryChunk.addr), SeekOrigin.Begin) |> ignore; + writeInt32 os2 idd.iddCharacteristics; // IMAGE_DEBUG_DIRECTORY.Characteristics + writeInt32 os2 timestamp; + writeInt32AsUInt16 os2 idd.iddMajorVersion; + writeInt32AsUInt16 os2 idd.iddMinorVersion; + writeInt32 os2 idd.iddType; + writeInt32 os2 idd.iddData.Length; // IMAGE_DEBUG_DIRECTORY.SizeOfData + writeInt32 os2 debugDataChunk.addr; // IMAGE_DEBUG_DIRECTORY.AddressOfRawData + writeInt32 os2 (textV2P debugDataChunk.addr);// IMAGE_DEBUG_DIRECTORY.PointerToRawData + + (* dprintf "idd.iddCharacteristics = %ld\n" idd.iddCharacteristics; + dprintf "iddMajorVersion = %ld\n" idd.iddMajorVersion; + dprintf "iddMinorVersion = %ld\n" idd.iddMinorVersion; + dprintf "iddType = %ld\n" idd.iddType; + dprintf "iddData = (%A) = %s\n" idd.iddData (System.Text.Encoding.UTF8.GetString idd.iddData); *) + + // write the debug raw data as given us by the PDB writer + os2.BaseStream.Seek (int64 (textV2P debugDataChunk.addr), SeekOrigin.Begin) |> ignore; + if debugDataChunk.size < idd.iddData.Length then + failwith "Debug data area is not big enough. Debug info may not be usable"; + writeBytes os2 idd.iddData; + os2.Close() + with e -> + failwith ("Error while writing debug directory entry: "+e.Message); + (try os2.Close(); FileSystem.FileDelete outfile with _ -> ()); + reraise() + with e -> + reraise() + + end; +#endif + reportTime showTimes "Finalize PDB"; + + /// Sign the binary. No further changes to binary allowed past this point! + match signer with + | None -> () + | Some s -> + try + s.SignFile outfile; + s.Close() + with e -> + failwith ("Warning: A call to StrongNameSignatureGeneration failed ("+e.Message+")"); + (try s.Close() with _ -> ()); + (try FileSystem.FileDelete outfile with _ -> ()); + () + + reportTime showTimes "Signing Image"; + //Finished writing and signing the binary and debug info... + + mappings + + +type options = + { mscorlib: ILScopeRef; + pdbfile: string option; + signer: ILStrongNameSigner option; + fixupOverlappingSequencePoints: bool; + emitTailcalls : bool; + showTimes: bool; + dumpDebugInfo:bool } + + +let WriteILBinary outfile (args: options) modul noDebugData = + ignore (writeBinaryAndReportMappings (outfile, args.mscorlib, args.pdbfile, args.signer, args.fixupOverlappingSequencePoints, args.emitTailcalls, args.showTimes, args.dumpDebugInfo) modul (noDebugData, true)) + + + +(****************************************************** +** Notes on supporting the Itanium (jopamer) ** +******************************************************* +IA64 codegen on the CLR isn’t documented, and getting it working involved a certain amount of reverse-engineering +peverify.exe and various binaries generated by ILAsm and other managed compiles. Here are some lessons learned, +documented for posterity and the 0 other people writing managed compilers for the Itanium: + +- Even if you’re not utilizing the global pointer in your Itanium binary, +you should be setting aside space for it in .text. (Preferably near the native stub.) +- PEVerify checks for two .reloc table entries on the Itanium - one for the native stub, and one +for the global pointer RVA. It doesn’t matter what you set these values to - +their addresses can be zeroed out, but they must have IMAGE_REL_BASED_DIR64 set! +(So, yes, you may find yourself setting this flag on an empty, unnecessary table slot!) +- On the Itanium, it’s best to have your tables qword aligned. (Though, peverify checks for dword alignment.) +- A different, weird set of DLL characteristics are necessary for the Itanium. +I won’t detail them here, but it’s interesting given that this field isn’t supposed to vary between platforms, +and is supposedly marked as deprecated. +- There are two schools to generating CLR binaries on for the Itanium - I’ll call them the “ALink” school +and the “ILAsm” school. + - The ALink school relies on some quirks in the CLR to omit a lot of stuff that, admittedly, isn’t necessary. The binaries are basically IL-only, with some flags set to make them nominally Itanium: + - It omits the .reloc table + - It doesn’t set aside memory for global pointer storage + - There’s no native stub + - There’s no import table, mscoree reference / startup symbol hint + - A manifest is inserted by default. + These omissions are understandable, given the platform/jitting/capabilities of the language, + but they’re basically relying on an idiosyncracy of the runtime to get away with creating a “bad” binary. + + - The ILAsm school actually writes everything out: + - It has a reloc table with the requisite two entries + - It sets aside memory for a global pointer, even if it doesn’t utilize one + - It actually inserts a native stub for the Itanium! (Though, I have no idea what + instructions, specifically, are emitted, and I couldn’t dig up the sources to ILAsm to + find out) + - There’s the requisite mscoree reference, etc. + - No manifest is inserted +*******************************************************) diff --git a/src/absil/ilwrite.fsi b/src/absil/ilwrite.fsi new file mode 100644 index 0000000..a789ae5 --- /dev/null +++ b/src/absil/ilwrite.fsi @@ -0,0 +1,46 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +/// The IL Binary writer +module Microsoft.FSharp.Compiler.AbstractIL.ILBinaryWriter + +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.IL + +[] +type ILStrongNameSigner = + member PublicKey: byte[] + static member OpenPublicKeyFile: string -> ILStrongNameSigner + static member OpenPublicKey: byte[] -> ILStrongNameSigner + static member OpenKeyPairFile: string -> ILStrongNameSigner + static member OpenKeyContainer: string -> ILStrongNameSigner + +type options = + { mscorlib: ILScopeRef; + pdbfile: string option; + signer : ILStrongNameSigner option; + fixupOverlappingSequencePoints : bool; + emitTailcalls: bool; + showTimes : bool; + dumpDebugInfo : bool } + +/// Write a binary to the file system. Extra configuration parameters can also be specified. +val WriteILBinary: + filename: string -> + options: options -> + input: ILModuleDef -> + noDebugData: bool -> + unit + + + diff --git a/src/absil/ilx.fs b/src/absil/ilx.fs new file mode 100644 index 0000000..a2aa50b --- /dev/null +++ b/src/absil/ilx.fs @@ -0,0 +1,213 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + + +/// Defines an extension of the IL algebra +module Microsoft.FSharp.Compiler.AbstractIL.Extensions.ILX.Types + +open Internal.Utilities +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.IL +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library + +// -------------------------------------------------------------------- +// Define an extension of the IL instruction algebra +// -------------------------------------------------------------------- + +let mkLowerName (nm: string) = + // Use the lower case name of a field or constructor as the field/parameter name if it differs from the uppercase name + let lowerName = String.uncapitalize nm + if lowerName = nm then "_" + nm else lowerName + +[] +type IlxUnionField(fd: ILFieldDef) = + let lowerName = mkLowerName fd.Name + member x.ILField = fd + member x.Type = x.ILField.Type + member x.Name = x.ILField.Name + member x.LowerName = lowerName + + +type IlxUnionAlternative = + { altName: string; + altFields: IlxUnionField[]; + altCustomAttrs: ILAttributes } + + member x.FieldDefs = x.altFields + member x.FieldDef n = x.altFields.[n] + member x.Name = x.altName + member x.IsNullary = (x.FieldDefs.Length = 0) + member x.FieldTypes = x.FieldDefs |> Array.map (fun fd -> fd.Type) + +type IlxUnionHasHelpers = + | NoHelpers + | AllHelpers + | SpecialFSharpListHelpers + | SpecialFSharpOptionHelpers + +type IlxUnionRef = + | IlxUnionRef of ILTypeRef * IlxUnionAlternative[] * bool * (* hasHelpers: *) IlxUnionHasHelpers + +type IlxUnionSpec = + | IlxUnionSpec of IlxUnionRef * ILGenericArgs + member x.EnclosingType = let (IlxUnionSpec(IlxUnionRef(tref,_,_,_),inst)) = x in mkILBoxedTyRaw tref inst + member x.TypeRef = let (IlxUnionSpec(IlxUnionRef(tref,_,_,_),_)) = x in tref + member x.GenericArgs = let (IlxUnionSpec(_,inst)) = x in inst + member x.AlternativesArray = let (IlxUnionSpec(IlxUnionRef(_,alts,_,_),_)) = x in alts + member x.IsNullPermitted = let (IlxUnionSpec(IlxUnionRef(_,_,np,_),_)) = x in np + member x.HasHelpers = let (IlxUnionSpec(IlxUnionRef(_,_,_,b),_)) = x in b + member x.Alternatives = Array.toList x.AlternativesArray + member x.Alternative idx = x.AlternativesArray.[idx] + member x.FieldDef idx fidx = x.Alternative(idx).FieldDef(fidx) + + +type IlxClosureLambdas = + | Lambdas_forall of ILGenericParameterDef * IlxClosureLambdas + | Lambdas_lambda of ILParameter * IlxClosureLambdas + | Lambdas_return of ILType + +type IlxClosureApps = + | Apps_tyapp of ILType * IlxClosureApps + | Apps_app of ILType * IlxClosureApps + | Apps_done of ILType + +let rec instAppsAux n inst = function + Apps_tyapp (ty,rty) -> Apps_tyapp(instILTypeAux n inst ty, instAppsAux n inst rty) + | Apps_app (dty,rty) -> Apps_app(instILTypeAux n inst dty, instAppsAux n inst rty) + | Apps_done rty -> Apps_done(instILTypeAux n inst rty) + +let rec instLambdasAux n inst = function + | Lambdas_forall (b,rty) -> + Lambdas_forall(b, instLambdasAux n inst rty) + | Lambdas_lambda (p,rty) -> + Lambdas_lambda({ p with Type=instILTypeAux n inst p.Type},instLambdasAux n inst rty) + | Lambdas_return rty -> Lambdas_return(instILTypeAux n inst rty) + +let instLambdas i t = instLambdasAux 0 i t + +type IlxClosureFreeVar = + { fvName: string ; + fvCompilerGenerated:bool; + fvType: ILType } + +let mkILFreeVar (name,compgen,ty) = + { fvName=name; + fvCompilerGenerated=compgen; + fvType=ty; } + + +type IlxClosureRef = + | IlxClosureRef of ILTypeRef * IlxClosureLambdas * IlxClosureFreeVar[] + +type IlxClosureSpec = + | IlxClosureSpec of IlxClosureRef * ILGenericArgs * ILType + member x.TypeRef = let (IlxClosureRef(tref,_,_)) = x.ClosureRef in tref + member x.ILType = let (IlxClosureSpec(_,_,ty)) = x in ty + member x.ClosureRef = let (IlxClosureSpec(cloref,_,_)) = x in cloref + member x.FormalFreeVars = let (IlxClosureRef(_,_,fvs)) = x.ClosureRef in fvs + member x.FormalLambdas = let (IlxClosureRef(_,lambdas,_)) = x.ClosureRef in lambdas + member x.GenericArgs = let (IlxClosureSpec(_,inst,_)) = x in inst + static member Create (cloref, inst) = + let (IlxClosureRef(tref,_,_)) = cloref + IlxClosureSpec(cloref, inst, mkILBoxedType (mkILTySpecRaw(tref, inst))) + member clospec.Constructor = + let cloTy = clospec.ILType + let fields = clospec.FormalFreeVars + mkILCtorMethSpecForTy (cloTy,fields |> Array.map (fun fv -> fv.fvType) |> Array.toList) + + +type IlxInstr = + // Discriminated unions + | EI_lddata of (* avoidHelpers: *) bool * IlxUnionSpec * int * int + | EI_isdata of (* avoidHelpers: *) bool * IlxUnionSpec * int + | EI_brisdata of (* avoidHelpers: *) bool * IlxUnionSpec * int * ILCodeLabel * ILCodeLabel + | EI_castdata of bool * IlxUnionSpec * int + | EI_stdata of IlxUnionSpec * int * int + | EI_datacase of (* avoidHelpers: *) bool * IlxUnionSpec * (int * ILCodeLabel) list * ILCodeLabel (* last label is fallthrough *) + | EI_lddatatag of (* avoidHelpers: *) bool * IlxUnionSpec + | EI_newdata of IlxUnionSpec * int + + // Closures + | EI_callfunc of ILTailcall * IlxClosureApps + +let destinations i = + match i with + | (EI_brisdata (_,_,_,l1,l2)) -> [l1; l2] + | (EI_callfunc (Tailcall,_)) -> [] + | (EI_datacase (_,_,ls,l)) -> l:: (List.foldBack (fun (_,l) acc -> ListSet.insert l acc) ls []) + | _ -> [] + +let fallthrough i = + match i with + | (EI_brisdata (_,_,_,_,l)) + | (EI_datacase (_,_,_,l)) -> Some l + | _ -> None + +let isTailcall i = + match i with + | (EI_callfunc (Tailcall,_)) -> true + | _ -> false + +let remapIlxLabels lab2cl i = + match i with + | EI_brisdata (z,a,b,l1,l2) -> EI_brisdata (z,a,b,lab2cl l1,lab2cl l2) + | EI_datacase (z,x,ls,l) -> EI_datacase (z,x,List.map (fun (y,l) -> (y,lab2cl l)) ls, lab2cl l) + | _ -> i + +let (mkIlxExtInstr,isIlxExtInstr,destIlxExtInstr) = + RegisterInstructionSetExtension + { instrExtDests=destinations; + instrExtFallthrough=fallthrough; + instrExtIsTailcall=isTailcall; + instrExtRelabel=remapIlxLabels; } + +let mkIlxInstr i = I_other (mkIlxExtInstr i) + +// Define an extension of the IL algebra of type definitions +type IlxClosureInfo = + { cloStructure: IlxClosureLambdas; + cloFreeVars: IlxClosureFreeVar[]; + cloCode: Lazy; + cloSource: ILSourceMarker option} + +and IlxUnionInfo = + { cudReprAccess: ILMemberAccess; (* is the representation public? *) + cudHelpersAccess: ILMemberAccess; (* are the representation public? *) + cudHasHelpers: IlxUnionHasHelpers; (* generate the helpers? *) + cudDebugProxies: bool; (* generate the helpers? *) + cudDebugDisplayAttributes: ILAttribute list; + cudAlternatives: IlxUnionAlternative array; + cudNullPermitted: bool; + (* debug info for generated code for classunions *) + cudWhere: ILSourceMarker option; } + +type IlxTypeDefKind = + | Closure of IlxClosureInfo + | Union of IlxUnionInfo + +let (mkIlxExtTypeDefKind,isIlxExtTypeDefKind,destIlxExtTypeDefKind) = + (RegisterTypeDefKindExtension TypeDefKindExtension : (IlxTypeDefKind -> IlxExtensionTypeKind) * (IlxExtensionTypeKind -> bool) * (IlxExtensionTypeKind -> IlxTypeDefKind) ) + +let mkIlxTypeDefKind i = ILTypeDefKind.Other (mkIlxExtTypeDefKind i) + +// -------------------------------------------------------------------- +// Define these as extensions of the IL types +// -------------------------------------------------------------------- + +let destTyFuncApp = function Apps_tyapp (b,c) -> b,c | _ -> failwith "destTyFuncApp" + +let mkILFormalCloRef gparams csig = IlxClosureSpec.Create(csig, mkILFormalGenericArgsRaw gparams) + +let actualTypOfIlxUnionField (cuspec : IlxUnionSpec) idx fidx = + instILType cuspec.GenericArgs (cuspec.FieldDef idx fidx).Type + diff --git a/src/absil/ilx.fsi b/src/absil/ilx.fsi new file mode 100644 index 0000000..bc05d0e --- /dev/null +++ b/src/absil/ilx.fsi @@ -0,0 +1,174 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +/// ILX extensions to Abstract IL types and instructions F# +module Microsoft.FSharp.Compiler.AbstractIL.Extensions.ILX.Types + +open Internal.Utilities +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.IL + +// -------------------------------------------------------------------- +// Union references +// -------------------------------------------------------------------- + +[] +type IlxUnionField = + new : ILFieldDef -> IlxUnionField + member Type : ILType + member Name : string + /// The name used for the field in parameter or IL field position + member LowerName : string + member ILField : ILFieldDef + +type IlxUnionAlternative = + { altName: string; + altFields: IlxUnionField[]; + altCustomAttrs: ILAttributes } + + member FieldDefs : IlxUnionField[] + member FieldDef : int -> IlxUnionField + member Name : string + member IsNullary : bool + member FieldTypes : ILType[] + + +type IlxUnionHasHelpers = + | NoHelpers + | AllHelpers + | SpecialFSharpListHelpers + | SpecialFSharpOptionHelpers + +type IlxUnionRef = + | IlxUnionRef of ILTypeRef * IlxUnionAlternative[] * bool (* cudNullPermitted *) * IlxUnionHasHelpers (* cudHasHelpers *) + +type IlxUnionSpec = + | IlxUnionSpec of IlxUnionRef * ILGenericArgs + member EnclosingType : ILType + member GenericArgs : ILGenericArgs + member Alternatives : IlxUnionAlternative list + member AlternativesArray : IlxUnionAlternative[] + member TypeRef : ILTypeRef + member IsNullPermitted : bool + member HasHelpers : IlxUnionHasHelpers + member Alternative : int -> IlxUnionAlternative + member FieldDef : int -> int -> IlxUnionField + +// -------------------------------------------------------------------- +// Closure references +// -------------------------------------------------------------------- + +type IlxClosureLambdas = + | Lambdas_forall of ILGenericParameterDef * IlxClosureLambdas + | Lambdas_lambda of ILParameter * IlxClosureLambdas + | Lambdas_return of ILType + +type IlxClosureFreeVar = + { fvName: string ; + fvCompilerGenerated:bool; + fvType: ILType } + +type IlxClosureRef = + | IlxClosureRef of ILTypeRef * IlxClosureLambdas * IlxClosureFreeVar[] + +type IlxClosureSpec = + | IlxClosureSpec of IlxClosureRef * ILGenericArgs * ILType + + member TypeRef : ILTypeRef + member ILType : ILType + member ClosureRef : IlxClosureRef + member FormalLambdas : IlxClosureLambdas + member GenericArgs : ILGenericArgs + static member Create : IlxClosureRef * ILGenericArgs -> IlxClosureSpec + member Constructor : ILMethodSpec + + +/// IlxClosureApps - i.e. types being applied at a callsite +type IlxClosureApps = + | Apps_tyapp of ILType * IlxClosureApps + | Apps_app of ILType * IlxClosureApps + | Apps_done of ILType + +/// ILX extensions to the intruction set +/// + +type IlxInstr = + | EI_lddata of (* avoidHelpers: *) bool * IlxUnionSpec * int * int + | EI_isdata of (* avoidHelpers: *) bool * IlxUnionSpec * int + | EI_brisdata of (* avoidHelpers: *) bool * IlxUnionSpec * int * ILCodeLabel * ILCodeLabel + | EI_castdata of bool * IlxUnionSpec * int + | EI_stdata of IlxUnionSpec * int * int + | EI_datacase of (* avoidHelpers: *) bool * IlxUnionSpec * (int * ILCodeLabel) list * ILCodeLabel (* last label is fallthrough *) + | EI_lddatatag of (* avoidHelpers: *) bool * IlxUnionSpec + | EI_newdata of IlxUnionSpec * int + | EI_callfunc of ILTailcall * IlxClosureApps + +val mkIlxExtInstr: (IlxInstr -> IlxExtensionInstr) +val isIlxExtInstr: (IlxExtensionInstr -> bool) +val destIlxExtInstr: (IlxExtensionInstr -> IlxInstr) + +val mkIlxInstr: IlxInstr -> ILInstr + +// -------------------------------------------------------------------- +// ILX extensions to the kinds of type definitions available +// -------------------------------------------------------------------- + +type IlxClosureInfo = + { cloStructure: IlxClosureLambdas; + cloFreeVars: IlxClosureFreeVar[]; + cloCode: Lazy; + cloSource: ILSourceMarker option} + +and IlxUnionInfo = + { /// Is the representation public? + cudReprAccess: ILMemberAccess; + /// Are the representation helpers public? + cudHelpersAccess: ILMemberAccess; + /// Generate the helpers? + cudHasHelpers: IlxUnionHasHelpers; + cudDebugProxies: bool; + cudDebugDisplayAttributes: ILAttribute list; + cudAlternatives: IlxUnionAlternative[]; + cudNullPermitted: bool; + /// Debug info for generated code for classunions + cudWhere: ILSourceMarker option; + } + +type IlxTypeDefKind = + | Closure of IlxClosureInfo + | Union of IlxUnionInfo + +val mkIlxExtTypeDefKind: (IlxTypeDefKind -> IlxExtensionTypeKind) +val isIlxExtTypeDefKind: (IlxExtensionTypeKind -> bool) +val destIlxExtTypeDefKind: (IlxExtensionTypeKind -> IlxTypeDefKind) + +val mkIlxTypeDefKind: IlxTypeDefKind -> ILTypeDefKind + +// -------------------------------------------------------------------- +// MS-ILX constructs: Closures, thunks, classunions +// -------------------------------------------------------------------- + +val instAppsAux: int -> ILGenericArgs -> IlxClosureApps -> IlxClosureApps +val destTyFuncApp: IlxClosureApps -> ILType * IlxClosureApps + +val mkILFormalCloRef: ILGenericParameterDefs -> IlxClosureRef -> IlxClosureSpec + + +// -------------------------------------------------------------------- +// MS-ILX: Unions +// -------------------------------------------------------------------- + + +val actualTypOfIlxUnionField: IlxUnionSpec -> int -> int -> ILType + +val mkILFreeVar: string * bool * ILType -> IlxClosureFreeVar diff --git a/src/absil/zmap.fs b/src/absil/zmap.fs new file mode 100644 index 0000000..5248c17 --- /dev/null +++ b/src/absil/zmap.fs @@ -0,0 +1,51 @@ +(* (c) Microsoft Corporation. Apache 2.0 License *) + + +namespace Microsoft.FSharp.Compiler.AbstractIL.Internal + +open Internal.Utilities +open Internal.Utilities.Collections.Tagged +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library +open System.Collections.Generic + +/// Maps with a specific comparison function +type internal Zmap<'Key,'T> = Internal.Utilities.Collections.Tagged.Map<'Key,'T> + +[] +module internal Zmap = + + let empty (ord: IComparer<'T>) = Map<_,_,_>.Empty(ord) + + let add k v (m:Zmap<_,_>) = m.Add(k,v) + let find k (m:Zmap<_,_>) = m.[k] + let tryFind k (m:Zmap<_,_>) = m.TryFind(k) + let remove k (m:Zmap<_,_>) = m.Remove(k) + let mem k (m:Zmap<_,_>) = m.ContainsKey(k) + let iter f (m:Zmap<_,_>) = m.Iterate(f) + let first f (m:Zmap<_,_>) = m.First(fun k v -> if f k v then Some (k,v) else None) + let exists f (m:Zmap<_,_>) = m.Exists(f) + let forall f (m:Zmap<_,_>) = m.ForAll(f) + let map f (m:Zmap<_,_>) = m.MapRange(f) + let mapi f (m:Zmap<_,_>) = m.Map(f) + let fold f (m:Zmap<_,_>) x = m.Fold f x + let toList (m:Zmap<_,_>) = m.ToList() + let foldSection lo hi f (m:Zmap<_,_>) x = m.FoldSection lo hi f x + + let isEmpty (m:Zmap<_,_>) = m.IsEmpty + + let fmap f z (m:Zmap<_,_>) = + let m,z = m.FoldAndMap (fun k v z -> let z,v' = f z k v in v',z) z in + z,m + + let choose f (m:Zmap<_,_>) = m.First(f) + + let chooseL f (m:Zmap<_,_>) = + m.Fold (fun k v s -> match f k v with None -> s | Some x -> x::s) [] + + let ofList m xs = List.fold (fun m (k,v) -> add k v m) (empty m) xs + let ofFlatList m xs = FlatList.fold (fun m (k,v) -> add k v m) (empty m) xs + + let keys m = chooseL (fun k _ -> Some k) m + let values m = chooseL (fun _ v -> Some v) m + + let memberOf m k = mem k m diff --git a/src/absil/zmap.fsi b/src/absil/zmap.fsi new file mode 100644 index 0000000..0aa0fbd --- /dev/null +++ b/src/absil/zmap.fsi @@ -0,0 +1,46 @@ +(* (c) Microsoft Corporation. Apache 2.0 License *) + +namespace Microsoft.FSharp.Compiler.AbstractIL.Internal + +open Internal.Utilities +open Internal.Utilities.Collections.Tagged +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library +open System.Collections.Generic + +/// Maps with a specific comparison function +type internal Zmap<'Key,'T> = Internal.Utilities.Collections.Tagged.Map<'Key,'T> + +[] +module internal Zmap = + + val empty : IComparer<'Key> -> Zmap<'Key,'T> + val isEmpty : Zmap<'Key,'T> -> bool + + val add : 'Key -> 'T -> Zmap<'Key,'T> -> Zmap<'Key,'T> + val remove : 'Key -> Zmap<'Key,'T> -> Zmap<'Key,'T> + val mem : 'Key -> Zmap<'Key,'T> -> bool + val memberOf : Zmap<'Key,'T> -> 'Key -> bool + val tryFind : 'Key -> Zmap<'Key,'T> -> 'T option + val find : 'Key -> Zmap<'Key,'T> -> 'T // raises KeyNotFoundException + + val map : mapping:('T -> 'U) -> Zmap<'Key,'T> -> Zmap<'Key,'U> + val mapi : ('Key -> 'T -> 'U) -> Zmap<'Key,'T> -> Zmap<'Key,'U> + val fold : ('Key -> 'T -> 'U -> 'U) -> Zmap<'Key,'T> -> 'U -> 'U + val fmap : ('State -> 'Key -> 'T -> 'State * 'U) -> 'State -> Zmap<'Key,'T> -> 'State * Zmap<'Key,'U> + val iter : action:('T -> 'U -> unit) -> Zmap<'T, 'U> -> unit + + val foldSection: 'Key -> 'Key -> ('Key -> 'T -> 'U -> 'U) -> Zmap<'Key,'T> -> 'U -> 'U + + val first : ('Key -> 'T -> bool) -> Zmap<'Key,'T> -> ('Key * 'T) option + val exists : ('Key -> 'T -> bool) -> Zmap<'Key,'T> -> bool + val forall : ('Key -> 'T -> bool) -> Zmap<'Key,'T> -> bool + + val choose : ('Key -> 'T -> 'U option) -> Zmap<'Key,'T> -> 'U option + val chooseL : ('Key -> 'T -> 'U option) -> Zmap<'Key,'T> -> 'U list + + val toList : Zmap<'Key,'T> -> ('Key * 'T) list + val ofList : IComparer<'Key> -> ('Key * 'T) list -> Zmap<'Key,'T> + val ofFlatList : IComparer<'Key> -> FlatList<'Key * 'T> -> Zmap<'Key,'T> + + val keys : Zmap<'Key,'T> -> 'Key list + val values : Zmap<'Key,'T> -> 'T list diff --git a/src/absil/zset.fs b/src/absil/zset.fs new file mode 100644 index 0000000..ec92ae0 --- /dev/null +++ b/src/absil/zset.fs @@ -0,0 +1,44 @@ +(* (c) Microsoft Corporation. Apache 2.0 License *) + +namespace Microsoft.FSharp.Compiler.AbstractIL.Internal + +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library +open Internal.Utilities +open Internal.Utilities.Collections.Tagged +open System.Collections.Generic + +/// Sets with a specific comparison function +type internal Zset<'T> = Internal.Utilities.Collections.Tagged.Set<'T> + +[] +module internal Zset = + + let empty (ord : IComparer<'T>) = Internal.Utilities.Collections.Tagged.Set<_,_>.Empty(ord) + + let isEmpty (s:Zset<_>) = s.IsEmpty + + let contains x (s:Zset<_>) = s.Contains(x) + let add x (s:Zset<_>) = s.Add(x) + let addList xs a = List.fold (fun a x -> add x a) a xs + let addFlatList xs a = FlatList.fold (fun a x -> add x a) a xs + + let singleton ord x = add x (empty ord) + let remove x (s:Zset<_>) = s.Remove(x) + + let fold (f : 'T -> 'b -> 'b) (s:Zset<_>) b = s.Fold f b + let iter f (s:Zset<_>) = s.Iterate f + let forall p (s:Zset<_>) = s.ForAll p + let count (s:Zset<_>) = s.Count + let exists p (s:Zset<_>) = s.Exists p + let subset (s1:Zset<_>) (s2:Zset<_>) = s1.IsSubsetOf s2 + let equal (s1:Zset<_>) (s2:Zset<_>) = Internal.Utilities.Collections.Tagged.Set<_,_>.Equality(s1,s2) + let elements (s:Zset<_>) = s.ToList() + let filter p (s:Zset<_>) = s.Filter p + + let union (s1:Zset<_>) (s2:Zset<_>) = Internal.Utilities.Collections.Tagged.Set<_,_>.Union(s1,s2) + let inter (s1:Zset<_>) (s2:Zset<_>) = Internal.Utilities.Collections.Tagged.Set<_,_>.Intersection(s1,s2) + let diff (s1:Zset<_>) (s2:Zset<_>) = Internal.Utilities.Collections.Tagged.Set<_,_>.Difference(s1,s2) + + let memberOf m k = contains k m diff --git a/src/absil/zset.fsi b/src/absil/zset.fsi new file mode 100644 index 0000000..7084bc4 --- /dev/null +++ b/src/absil/zset.fsi @@ -0,0 +1,43 @@ +(* (c) Microsoft Corporation. Apache 2.0 License *) + +namespace Microsoft.FSharp.Compiler.AbstractIL.Internal + +open Internal.Utilities +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library +open System.Collections.Generic + +/// Sets with a specific comparison function +type internal Zset<'T> = Internal.Utilities.Collections.Tagged.Set<'T> + + +[] +module internal Zset = + + val empty : IComparer<'T> -> Zset<'T> + val isEmpty : Zset<'T> -> bool + val contains : 'T -> Zset<'T> -> bool + val memberOf : Zset<'T> -> 'T -> bool + val add : 'T -> Zset<'T> -> Zset<'T> + val addList : 'T list -> Zset<'T> -> Zset<'T> + val addFlatList : FlatList<'T> -> Zset<'T> -> Zset<'T> + val singleton : IComparer<'T> -> 'T -> Zset<'T> + val remove : 'T -> Zset<'T> -> Zset<'T> + + val count : Zset<'T> -> int + val union : Zset<'T> -> Zset<'T> -> Zset<'T> + val inter : Zset<'T> -> Zset<'T> -> Zset<'T> + val diff : Zset<'T> -> Zset<'T> -> Zset<'T> + val equal : Zset<'T> -> Zset<'T> -> bool + val subset : Zset<'T> -> Zset<'T> -> bool + val forall : predicate:('T -> bool) -> Zset<'T> -> bool + val exists : predicate:('T -> bool) -> Zset<'T> -> bool + val filter : predicate:('T -> bool) -> Zset<'T> -> Zset<'T> + + val fold : ('T -> 'State -> 'State) -> Zset<'T> -> 'State -> 'State + val iter : ('T -> unit) -> Zset<'T> -> unit + + val elements : Zset<'T> -> 'T list + + + diff --git a/src/assemblyinfo/assemblyinfo.FSharp.Build.dll.fs b/src/assemblyinfo/assemblyinfo.FSharp.Build.dll.fs new file mode 100644 index 0000000..19d9547 --- /dev/null +++ b/src/assemblyinfo/assemblyinfo.FSharp.Build.dll.fs @@ -0,0 +1,22 @@ +#light +namespace Microsoft.FSharp +open System.Reflection +[] +[] +[] +[] +do() + +#if NO_STRONG_NAMES +[] +[] +#endif +#if STRONG_NAME_AND_DELAY_SIGN_FSHARP_COMPILER_WITH_MSFT_KEY +[] +[] +#endif +#if STRONG_NAME_FSHARP_COMPILER_WITH_TEST_KEY +[] +[] +#endif +do() diff --git a/src/assemblyinfo/assemblyinfo.FSharp.Compiler.Interactive.Settings.dll.fs b/src/assemblyinfo/assemblyinfo.FSharp.Compiler.Interactive.Settings.dll.fs new file mode 100644 index 0000000..6711d77 --- /dev/null +++ b/src/assemblyinfo/assemblyinfo.FSharp.Compiler.Interactive.Settings.dll.fs @@ -0,0 +1,21 @@ +#light +namespace Microsoft.FSharp +open System.Reflection +[] +[] +[] +[] + +#if NO_STRONG_NAMES +[] +[] +#endif +#if STRONG_NAME_AND_DELAY_SIGN_FSHARP_COMPILER_WITH_MSFT_KEY +[] +[] +#endif +#if STRONG_NAME_FSHARP_COMPILER_WITH_TEST_KEY +[] +[] +#endif +do() diff --git a/src/assemblyinfo/assemblyinfo.FSharp.Compiler.Server.Shared.dll.fs b/src/assemblyinfo/assemblyinfo.FSharp.Compiler.Server.Shared.dll.fs new file mode 100644 index 0000000..1f97015 --- /dev/null +++ b/src/assemblyinfo/assemblyinfo.FSharp.Compiler.Server.Shared.dll.fs @@ -0,0 +1,25 @@ +#light +namespace Microsoft.FSharp +open System.Reflection + +[] +[] +[] +[] + +#if NO_STRONG_NAMES +[] +[] +[] +#endif +#if STRONG_NAME_AND_DELAY_SIGN_FSHARP_COMPILER_WITH_MSFT_KEY +[] +[] +[] +#endif +#if STRONG_NAME_FSHARP_COMPILER_WITH_TEST_KEY +[] +[] +[] +#endif +do() diff --git a/src/assemblyinfo/assemblyinfo.FSharp.Compiler.Silverlight.dll.fs b/src/assemblyinfo/assemblyinfo.FSharp.Compiler.Silverlight.dll.fs new file mode 100644 index 0000000..8d8db04 --- /dev/null +++ b/src/assemblyinfo/assemblyinfo.FSharp.Compiler.Silverlight.dll.fs @@ -0,0 +1,16 @@ +#light +namespace Microsoft.FSharp +open System.Reflection + +[] +[] +[] +[] + +// Note: internals visible to unit test DLLs in Retail (and all) builds. +[] +[] +[] +[] + +do() diff --git a/src/assemblyinfo/assemblyinfo.FSharp.Compiler.dll.fs b/src/assemblyinfo/assemblyinfo.FSharp.Compiler.dll.fs new file mode 100644 index 0000000..5da7f0f --- /dev/null +++ b/src/assemblyinfo/assemblyinfo.FSharp.Compiler.dll.fs @@ -0,0 +1,69 @@ +#light +namespace Microsoft.FSharp +open System.Reflection + +[] +[] +[] +[] + +#if NO_STRONG_NAMES +[] +[] +[] +[] +[] +[] +[] +[] +[] + +// Note: internals visible to unit test DLLs in Retail (and all) builds. +[] +[] +[] +[] +#if BUILDING_WITH_LKG +[] +#endif +#endif +#if STRONG_NAME_AND_DELAY_SIGN_FSHARP_COMPILER_WITH_MSFT_KEY + +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] +#endif + +#if STRONG_NAME_FSHARP_COMPILER_WITH_TEST_KEY +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] +#endif + + +#if BUILDING_WITH_LKG +[] +#endif +do() diff --git a/src/assemblyinfo/assemblyinfo.FSharp.Core.dll.fs b/src/assemblyinfo/assemblyinfo.FSharp.Core.dll.fs new file mode 100644 index 0000000..3afa0e7 --- /dev/null +++ b/src/assemblyinfo/assemblyinfo.FSharp.Core.dll.fs @@ -0,0 +1,15 @@ + +namespace Microsoft.FSharp +open System.Reflection +[] +[] +[] +[] + +#if PORTABLE +[] +[] // ensure we replace any 4.0.30319.* or 4.0.31105.* versions in the GAC. These are the FileVersions for RTM VS2010 and SP1 VS2010 +#endif + +do() + diff --git a/src/assemblyinfo/assemblyinfo.FSharp.Data.TypeProviders.dll.fs b/src/assemblyinfo/assemblyinfo.FSharp.Data.TypeProviders.dll.fs new file mode 100644 index 0000000..e90a104 --- /dev/null +++ b/src/assemblyinfo/assemblyinfo.FSharp.Data.TypeProviders.dll.fs @@ -0,0 +1,26 @@ +#light +namespace Microsoft.FSharp +open System.Reflection +[] +[] +[] +[] +do() + +#if NO_STRONG_NAMES +[] +[] +#endif + +#if STRONG_NAME_AND_DELAY_SIGN_FSHARP_COMPILER_WITH_MSFT_KEY +[] // ensure we replace any 4.0.30319.* or 4.0.31105.* versions in the GAC. These are the FileVersions for RTM VS2010 and SP1 VS2010 +[] +[] +#endif + +#if STRONG_NAME_FSHARP_COMPILER_WITH_TEST_KEY +[] // ensure we replace any 4.0.30319.* or 4.0.31105.* versions in the GAC. These are the FileVersions for RTM VS2010 and SP1 VS2010 +[] +[] +#endif +do() diff --git a/src/assemblyinfo/assemblyinfo.fsc.exe.fs b/src/assemblyinfo/assemblyinfo.fsc.exe.fs new file mode 100644 index 0000000..c323c65 --- /dev/null +++ b/src/assemblyinfo/assemblyinfo.fsc.exe.fs @@ -0,0 +1,11 @@ +#light +namespace Microsoft.FSharp +open System.Reflection +[] +[] +[] +[] +[] + +[] +do() diff --git a/src/assemblyinfo/assemblyinfo.fsi.exe.fs b/src/assemblyinfo/assemblyinfo.fsi.exe.fs new file mode 100644 index 0000000..8c386ec --- /dev/null +++ b/src/assemblyinfo/assemblyinfo.fsi.exe.fs @@ -0,0 +1,12 @@ +#light +namespace Microsoft.FSharp +open System.Reflection +[] +[] +[] +[] +[] +do() + + +do() diff --git a/src/fsharp/ErrorLogger.fs b/src/fsharp/ErrorLogger.fs new file mode 100644 index 0000000..baedfcb --- /dev/null +++ b/src/fsharp/ErrorLogger.fs @@ -0,0 +1,535 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +module internal Microsoft.FSharp.Compiler.ErrorLogger + + +open Internal.Utilities +open Microsoft.FSharp.Compiler +open Microsoft.FSharp.Compiler.AbstractIL.Diagnostics +open Microsoft.FSharp.Compiler.Lib +open Microsoft.FSharp.Compiler.Range +open System + +//------------------------------------------------------------------------ +// General error recovery mechanism +//----------------------------------------------------------------------- + +/// Thrown when want to add some range information to some .NET exception +exception WrappedError of exn * range + +/// Thrown when immediate, local error recovery is not possible. This indicates +/// we've reported an error but need to make a non-local transfer of control. +/// Error recovery may catch this and continue (see 'errorRecovery') +/// +/// The exception that caused the report is carried as data because in some +/// situations (LazyWithContext) we may need to re-report the original error +/// when a lazy thunk is re-evaluated. +exception ReportedError of exn option with + override this.Message = + match this :> exn with + | ReportedError (Some exn) -> exn.Message + | _ -> "ReportedError" + +let rec findOriginalException err = + match err with + | ReportedError (Some err) -> err + | WrappedError(err,_) -> findOriginalException err + | _ -> err + + +/// Thrown when we stop processing the F# Interactive interactive entry or #load. +exception StopProcessing + + +(* common error kinds *) +exception NumberedError of (int * string) * range with // int is e.g. 191 in FS0191 + override this.Message = + match this :> exn with + | NumberedError((_,msg),_) -> msg + | _ -> "impossible" +exception Error of (int * string) * range with // int is e.g. 191 in FS0191 // eventually remove this type, it is a transitional artifact of the old unnumbered error style + override this.Message = + match this :> exn with + | Error((_,msg),_) -> msg + | _ -> "impossible" +exception InternalError of string * range +exception UserCompilerMessage of string * int * range +exception LibraryUseOnly of range +exception Deprecated of string * range +exception Experimental of string * range +exception PossibleUnverifiableCode of range + +// Range\NoRange Duals +exception UnresolvedReferenceNoRange of (*assemblyname*) string +exception UnresolvedReferenceError of (*assemblyname*) string * range +exception UnresolvedPathReferenceNoRange of (*assemblyname*) string * (*path*) string +exception UnresolvedPathReference of (*assemblyname*) string * (*path*) string * range + + +let inline protectAssemblyExploration dflt f = + try + f() + with + | UnresolvedPathReferenceNoRange _ -> dflt + | _ -> reraise() + +let inline protectAssemblyExplorationNoReraise dflt1 dflt2 f = + try + f() + with + | UnresolvedPathReferenceNoRange _ -> dflt1 + | _ -> dflt2 + +// Attach a range if this is a range dual exception. +let rec AttachRange m (exn:exn) = + if m = range0 then exn + else + match exn with + // Strip TargetInvocationException wrappers + | :? System.Reflection.TargetInvocationException -> AttachRange m exn.InnerException + | UnresolvedReferenceNoRange(a) -> UnresolvedReferenceError(a,m) + | UnresolvedPathReferenceNoRange(a,p) -> UnresolvedPathReference(a,p,m) + | Failure(msg) -> InternalError(msg^" (Failure)",m) + | :? System.ArgumentException as exn -> InternalError(exn.Message + " (ArgumentException)",m) + | notARangeDual -> notARangeDual + +//---------------------------------------------------------------------------- +// Error logger interface + +type Exiter = + abstract Exit : int -> 'T + +let QuitProcessExiter = + { new Exiter with + member x.Exit(n) = +#if SILVERLIGHT +#else + try + System.Environment.Exit(n) + with _ -> + () +#endif + failwithf "%s" <| FSComp.SR.elSysEnvExitDidntExit() } + +/// Closed enumeration of build phases. +type BuildPhase = + | DefaultPhase + | Compile + | Parameter | Parse | TypeCheck + | CodeGen + | Optimize | IlxGen | IlGen | Output + | Interactive // An error seen during interactive execution + +/// Literal build phase subcategory strings. +module BuildPhaseSubcategory = + [] + let DefaultPhase = "" + [] + let Compile = "compile" + [] + let Parameter = "parameter" + [] + let Parse = "parse" + [] + let TypeCheck = "typecheck" + [] + let CodeGen = "codegen" + [] + let Optimize = "optimize" + [] + let IlxGen = "ilxgen" + [] + let IlGen = "ilgen" + [] + let Output = "output" + [] + let Interactive = "interactive" + [] + let Internal = "internal" // Compiler ICE + +[] +type PhasedError = { Exception:exn; Phase:BuildPhase } with + /// Construct a phased error + static member Create(exn:exn,phase:BuildPhase) : PhasedError = +#if SILVERLIGHT +#else + System.Diagnostics.Debug.Assert(phase<>BuildPhase.DefaultPhase, sprintf "Compile error seen with no phase to attribute it to.%A %s %s" phase exn.Message exn.StackTrace ) +#endif + {Exception = exn; Phase=phase} + member this.DebugDisplay() = + sprintf "%s: %s" (this.Subcategory()) this.Exception.Message + /// This is the textual subcategory to display in error and warning messages (shows only under --vserrors): + /// + /// file1.fs(72): subcategory warning FS0072: This is a warning message + /// + member pe.Subcategory() = + match pe.Phase with + | DefaultPhase -> BuildPhaseSubcategory.DefaultPhase + | Compile -> BuildPhaseSubcategory.Compile + | Parameter -> BuildPhaseSubcategory.Parameter + | Parse -> BuildPhaseSubcategory.Parse + | TypeCheck -> BuildPhaseSubcategory.TypeCheck + | CodeGen -> BuildPhaseSubcategory.CodeGen + | Optimize -> BuildPhaseSubcategory.Optimize + | IlxGen -> BuildPhaseSubcategory.IlxGen + | IlGen -> BuildPhaseSubcategory.IlGen + | Output -> BuildPhaseSubcategory.Output + | Interactive -> BuildPhaseSubcategory.Interactive + /// Return true if the textual phase given is from the compile part of the build process. + /// This set needs to be equal to the set of subcategories that the language service can produce. + static member IsSubcategoryOfCompile(subcategory:string) = + // Beware: This code logic is duplicated in DocumentTask.cs in the language service + match subcategory with + | BuildPhaseSubcategory.Compile + | BuildPhaseSubcategory.Parameter + | BuildPhaseSubcategory.Parse + | BuildPhaseSubcategory.TypeCheck -> true + | null + | BuildPhaseSubcategory.DefaultPhase + | BuildPhaseSubcategory.CodeGen + | BuildPhaseSubcategory.Optimize + | BuildPhaseSubcategory.IlxGen + | BuildPhaseSubcategory.IlGen + | BuildPhaseSubcategory.Output + | BuildPhaseSubcategory.Interactive -> false + | BuildPhaseSubcategory.Internal + // Getting here means the compiler has ICE-d. Let's not pile on by showing the unknownSubcategory assert below. + // Just treat as an unknown-to-LanguageService error. + -> false + | unknownSubcategory -> + System.Diagnostics.Debug.Assert(false, sprintf "Subcategory '%s' could not be correlated with a build phase." unknownSubcategory) + // Recovery is to treat this as a 'build' error. Downstream, the project system and language service will treat this as + // if it came from the build and not the language service. + false + /// Return true if this phase is one that's known to be part of the 'compile'. This is the initial phase of the entire compilation that + /// the language service knows about. + member pe.IsPhaseInCompile() = + let isPhaseInCompile = + match pe.Phase with + | Compile | Parameter | Parse | TypeCheck -> true + | _ -> false + // Sanity check ensures that Phase matches Subcategory +#if DEBUG + if isPhaseInCompile then + System.Diagnostics.Debug.Assert(PhasedError.IsSubcategoryOfCompile(pe.Subcategory()), "Subcategory did not match isPhaesInCompile=true") + else + System.Diagnostics.Debug.Assert(not(PhasedError.IsSubcategoryOfCompile(pe.Subcategory())), "Subcategory did not match isPhaseInCompile=false") +#endif + isPhaseInCompile + +[] +[] +type ErrorLogger(nameForDebugging:string) = + abstract ErrorCount: int + // the purpose of the 'Impl' factoring is so that you can put a breakpoint on the non-Impl code just below, and get a breakpoint for all implementations of error loggers + abstract WarnSinkImpl: PhasedError -> unit + abstract ErrorSinkImpl: PhasedError -> unit + member this.WarnSink err = + this.WarnSinkImpl err + member this.ErrorSink err = + this.ErrorSinkImpl err + member this.DebugDisplay() = sprintf "ErrorLogger(%s)" nameForDebugging + +let DiscardErrorsLogger = + { new ErrorLogger("DiscardErrorsLogger") with + member x.WarnSinkImpl(e) = + () + member x.ErrorSinkImpl(e) = + () + member x.ErrorCount = + 0 } + +let AssertFalseErrorLogger = + { new ErrorLogger("AssertFalseErrorLogger") with + member x.WarnSinkImpl(e) = + assert false; () + member x.ErrorSinkImpl(e) = + assert false; () + member x.ErrorCount = + assert false; 0 } + +/// When no errorLogger is installed (on the thread) use this one. +let uninitializedErrorLoggerFallback = ref AssertFalseErrorLogger + +/// Type holds thread-static globals for use by the compile +type internal CompileThreadStatic = + [] + static val mutable private buildPhase : BuildPhase + + [] + static val mutable private errorLogger : ErrorLogger + + static member BuildPhaseUnchecked with get() = CompileThreadStatic.buildPhase (* This can be a null value *) + static member BuildPhase + with get() = if box CompileThreadStatic.buildPhase <> null then CompileThreadStatic.buildPhase else (assert false; BuildPhase.DefaultPhase) + and set v = CompileThreadStatic.buildPhase <- v + + static member ErrorLogger + with get() = if box CompileThreadStatic.errorLogger <> null then CompileThreadStatic.errorLogger else !uninitializedErrorLoggerFallback + and set v = CompileThreadStatic.errorLogger <- v + + +[] +module ErrorLoggerExtensions = + open System.Reflection + +#if SILVERLIGHT +#else + // Instruct the exception not to reset itself when thrown again. + // Why don?t we just not catch these in the first place? Because we made the design choice to ask the user to send mail to fsbugs@microsoft.com. + // To achieve this, we need to catch the exception, report the email address and stack trace, and then reraise. + let PreserveStackTrace(exn) = + try + let preserveStackTrace = typeof.GetMethod("InternalPreserveStackTrace", BindingFlags.Instance ||| BindingFlags.NonPublic) + preserveStackTrace.Invoke(exn, null) |> ignore + with e-> + // This is probably only the mono case. + System.Diagnostics.Debug.Assert(false, "Could not preserve stack trace for watson exception.") + () + + + // Reraise an exception if it is one we want to report to Watson. + let ReraiseIfWatsonable(exn:exn) = + match exn with + // These few SystemExceptions which we don't report to Watson are because we handle these in some way in Build.fs + | :? System.Reflection.TargetInvocationException -> () + | :? System.NotSupportedException -> () + | :? System.IO.IOException -> () // This covers FileNotFoundException and DirectoryNotFoundException + | :? System.UnauthorizedAccessException -> () + | Failure _ // This gives reports for compiler INTERNAL ERRORs + | :? System.SystemException -> + PreserveStackTrace(exn) + raise exn + | _ -> () +#endif + + type ErrorLogger with + member x.ErrorR exn = match exn with StopProcessing | ReportedError _ -> raise exn | _ -> x.ErrorSink(PhasedError.Create(exn,CompileThreadStatic.BuildPhase)) + member x.Warning exn = match exn with StopProcessing | ReportedError _ -> raise exn | _ -> x.WarnSink(PhasedError.Create(exn,CompileThreadStatic.BuildPhase)) + member x.Error exn = x.ErrorR exn; raise (ReportedError (Some exn)) + member x.PhasedError (ph:PhasedError) = + x.ErrorSink ph + raise (ReportedError (Some ph.Exception)) + member x.ErrorRecovery (exn:exn) (m:range) = + // Never throws ReportedError. + // Throws StopProcessing and exceptions raised by the ErrorSink(exn) handler. + match exn with + (* Don't send ThreadAbortException down the error channel *) + | :? System.Threading.ThreadAbortException | WrappedError((:? System.Threading.ThreadAbortException),_) -> () + | ReportedError _ | WrappedError(ReportedError _,_) -> () + | StopProcessing | WrappedError(StopProcessing,_) -> raise exn + | _ -> + try + x.ErrorR (AttachRange m exn) // may raise exceptions, e.g. an fsi error sink raises StopProcessing. +#if SILVERLIGHT +#else + ReraiseIfWatsonable(exn) +#endif + with + | ReportedError _ | WrappedError(ReportedError _,_) -> () + member x.StopProcessingRecovery (exn:exn) (m:range) = + // Do standard error recovery. + // Additionally ignore/catch StopProcessing. [This is the only catch handler for StopProcessing]. + // Additionally ignore/catch ReportedError. + // Can throw other exceptions raised by the ErrorSink(exn) handler. + match exn with + | StopProcessing | WrappedError(StopProcessing,_) -> () // suppress, so skip error recovery. + | _ -> + try x.ErrorRecovery exn m + with + | StopProcessing | WrappedError(StopProcessing,_) -> () // catch, e.g. raised by ErrorSink. + | ReportedError _ | WrappedError(ReportedError _,_) -> () // catch, but not expected unless ErrorRecovery is changed. + member x.ErrorRecoveryNoRange (exn:exn) = + x.ErrorRecovery exn range0 + +/// NOTE: The change will be undone when the returned "unwind" object disposes +let PushThreadBuildPhaseUntilUnwind (phase:BuildPhase) = + let oldBuildPhase = CompileThreadStatic.BuildPhaseUnchecked + CompileThreadStatic.BuildPhase <- phase + { new System.IDisposable with + member x.Dispose() = CompileThreadStatic.BuildPhase <- oldBuildPhase (* maybe null *) } + +/// NOTE: The change will be undone when the returned "unwind" object disposes +let PushErrorLoggerPhaseUntilUnwind(errorLoggerTransformer : ErrorLogger -> #ErrorLogger) = + let oldErrorLogger = CompileThreadStatic.ErrorLogger + let newErrorLogger = errorLoggerTransformer oldErrorLogger + let newInstalled = ref true + let newIsInstalled() = if !newInstalled then () else (assert false; (); (*failwith "error logger used after unwind"*)) // REVIEW: ok to throw? + let chkErrorLogger = { new ErrorLogger("PushErrorLoggerPhaseUntilUnwind") with + member x.WarnSinkImpl(e) = newIsInstalled(); newErrorLogger.WarnSink(e) + member x.ErrorSinkImpl(e) = newIsInstalled(); newErrorLogger.ErrorSink(e) + member x.ErrorCount = newIsInstalled(); newErrorLogger.ErrorCount } + CompileThreadStatic.ErrorLogger <- chkErrorLogger + { new System.IDisposable with + member x.Dispose() = + CompileThreadStatic.ErrorLogger <- oldErrorLogger + newInstalled := false } + +let SetThreadBuildPhaseNoUnwind(phase:BuildPhase) = CompileThreadStatic.BuildPhase <- phase +let SetThreadErrorLoggerNoUnwind(errorLogger) = CompileThreadStatic.ErrorLogger <- errorLogger +let SetUninitializedErrorLoggerFallback errLogger = uninitializedErrorLoggerFallback := errLogger + +// Global functions are still used by parser and TAST ops +let errorR exn = CompileThreadStatic.ErrorLogger.ErrorR exn +let warning exn = CompileThreadStatic.ErrorLogger.Warning exn +let error exn = CompileThreadStatic.ErrorLogger.Error exn +// for test only +let phasedError (p : PhasedError) = CompileThreadStatic.ErrorLogger.PhasedError p + +let errorSink pe = CompileThreadStatic.ErrorLogger.ErrorSink pe +let warnSink pe = CompileThreadStatic.ErrorLogger.WarnSink pe +let errorRecovery exn m = CompileThreadStatic.ErrorLogger.ErrorRecovery exn m +let stopProcessingRecovery exn m = CompileThreadStatic.ErrorLogger.StopProcessingRecovery exn m +let errorRecoveryNoRange exn = CompileThreadStatic.ErrorLogger.ErrorRecoveryNoRange exn + + +let report f = + f() + +let deprecatedWithError s m = errorR(Deprecated(s,m)) + +// Note: global state, but only for compiling FSHarp.Core.dll +let mutable reportLibraryOnlyFeatures = true +let libraryOnlyError m = if reportLibraryOnlyFeatures then errorR(LibraryUseOnly(m)) +let libraryOnlyWarning m = if reportLibraryOnlyFeatures then warning(LibraryUseOnly(m)) +let deprecatedOperator m = deprecatedWithError (FSComp.SR.elDeprecatedOperator()) m +let mlCompatWarning s m = warning(UserCompilerMessage(FSComp.SR.mlCompatMessage s, 62, m)) + +let suppressErrorReporting f = + let errorLogger = CompileThreadStatic.ErrorLogger + try + let errorLogger = + { new ErrorLogger("suppressErrorReporting") with + member x.WarnSinkImpl(_exn) = () + member x.ErrorSinkImpl(_exn) = () + member x.ErrorCount = 0 } + SetThreadErrorLoggerNoUnwind(errorLogger) + f() + finally + SetThreadErrorLoggerNoUnwind(errorLogger) + +let conditionallySuppressErrorReporting cond f = if cond then suppressErrorReporting f else f() + +//------------------------------------------------------------------------ +// Errors as data: Sometimes we have to reify errors as data, e.g. if backtracking +// +// REVIEW: consider using F# computation expressions here + +[] +type OperationResult<'T> = + | OkResult of (* warnings: *) exn list * 'T + | ErrorResult of (* warnings: *) exn list * exn + +type ImperativeOperationResult = OperationResult + +let ReportWarnings warns = + match warns with + | [] -> () // shortcut in common case + | _ -> List.iter warning warns + +let CommitOperationResult res = + match res with + | OkResult (warns,res) -> ReportWarnings warns; res + | ErrorResult (warns,err) -> ReportWarnings warns; error err + +let RaiseOperationResult res : unit = CommitOperationResult res + +let ErrorD err = ErrorResult([],err) +let WarnD err = OkResult([err],()) +let CompleteD = OkResult([],()) +let ResultD x = OkResult([],x) +let CheckNoErrorsAndGetWarnings res = match res with OkResult (warns,_) -> Some warns | ErrorResult _ -> None + +/// The bind in the monad. Stop on first error. Accumulate warnings and continue. +let (++) res f = + match res with + | OkResult([],res) -> (* tailcall *) f res + | OkResult(warns,res) -> + begin match f res with + | OkResult(warns2,res2) -> OkResult(warns@warns2, res2) + | ErrorResult(warns2,err) -> ErrorResult(warns@warns2, err) + end + | ErrorResult(warns,err) -> + ErrorResult(warns,err) + +/// Stop on first error. Accumulate warnings and continue. +let rec IterateD f xs = match xs with [] -> CompleteD | h :: t -> f h ++ (fun () -> IterateD f t) +let rec WhileD gd body = if gd() then body() ++ (fun () -> WhileD gd body) else CompleteD +let MapD f xs = let rec loop acc xs = match xs with [] -> ResultD (List.rev acc) | h :: t -> f h ++ (fun x -> loop (x::acc) t) in loop [] xs + +type TrackErrorsBuilder() = + member x.Bind(res,k) = res ++ k + member x.Return(res) = ResultD(res) + member x.ReturnFrom(res) = res + member x.For(seq,k) = IterateD k seq + member x.While(gd,k) = WhileD gd k + member x.Zero() = CompleteD + +let trackErrors = TrackErrorsBuilder() + +/// Stop on first error. Accumulate warnings and continue. +let OptionD f xs = match xs with None -> CompleteD | Some(h) -> f h + +/// Stop on first error. Report index +let IterateIdxD f xs = + let rec loop xs i = match xs with [] -> CompleteD | h :: t -> f i h ++ (fun () -> loop t (i+1)) + loop xs 0 + +/// Stop on first error. Accumulate warnings and continue. +let rec Iterate2D f xs ys = + match xs,ys with + | [],[] -> CompleteD + | h1 :: t1, h2::t2 -> f h1 h2 ++ (fun () -> Iterate2D f t1 t2) + | _ -> failwith "Iterate2D" + +let TryD f g = + match f() with + | ErrorResult(warns,err) -> (OkResult(warns,())) ++ (fun () -> g err) + | res -> res + +let rec RepeatWhileD ndeep body = body ndeep ++ (function true -> RepeatWhileD (ndeep+1) body | false -> CompleteD) +let AtLeastOneD f l = MapD f l ++ (fun res -> ResultD (List.exists id res)) + + +// Code below is for --flaterrors flag that is only used by the IDE + +let stringThatIsAProxyForANewlineInFlatErrors = new System.String[|char 29 |] + +let NewlineifyErrorString (message:string) = message.Replace(stringThatIsAProxyForANewlineInFlatErrors, Environment.NewLine) + +/// fixes given string by replacing all control chars with spaces. +/// NOTE: newlines are recognized and replaced with stringThatIsAProxyForANewlineInFlatErrors (ASCII 29, the 'group separator'), +/// which is decoded by the IDE with 'NewlineifyErrorString' back into newlines, so that multi-line errors can be displayed in QuickInfo +let NormalizeErrorString (text : string) = + if text = null then nullArg "text" + let text = text.Trim() + + let buf = System.Text.StringBuilder() + let mutable i = 0 + while i < text.Length do + let delta = + match text.[i] with + | '\r' when i + 1 < text.Length && text.[i + 1] = '\n' -> + // handle \r\n sequence - replace it with one single space + buf.Append(stringThatIsAProxyForANewlineInFlatErrors) |> ignore + 2 + | '\n' -> + buf.Append(stringThatIsAProxyForANewlineInFlatErrors) |> ignore + 1 + | c -> + // handle remaining chars: control - replace with space, others - keep unchanged + let c = if Char.IsControl(c) then ' ' else c + buf.Append(c) |> ignore + 1 + i <- i + delta + buf.ToString() \ No newline at end of file diff --git a/src/fsharp/FSComp.txt b/src/fsharp/FSComp.txt new file mode 100644 index 0000000..86f36a2 --- /dev/null +++ b/src/fsharp/FSComp.txt @@ -0,0 +1,1330 @@ +# Old-style error strings getting moved over +undefinedNameNamespace,"The namespace '%s' is not defined" +undefinedNameNamespaceOrModule,"The namespace or module '%s' is not defined" +undefinedNameFieldConstructorOrMember,"The field, constructor or member '%s' is not defined" +undefinedNameValueConstructorNamespaceOrType,"The value, constructor, namespace or type '%s' is not defined" +undefinedNameValueOfConstructor,"The value or constructor '%s' is not defined" +undefinedNameValueNamespaceTypeOrModule,"The value, namespace, type or module '%s' is not defined" +undefinedNameConstructorModuleOrNamespace,"The constructor, module or namespace '%s' is not defined" +undefinedNameType,"The type '%s' is not defined" +undefinedNameRecordLabelOrNamespace,"The record label or namespace '%s' is not defined" +undefinedNameRecordLabel,"The record label '%s' is not defined" +undefinedNameTypeParameter,"The type parameter '%s' is not defined" +undefinedNamePatternDiscriminator,"The pattern discriminator '%s' is not defined" +# ----------------------------------------------------------------------------- +# build.fs +# ----------------------------------------------------------------------------- +buildUnexpectedTypeArgs,"The non-generic type '%s' does not expect any type arguments, but here is given %d type argument(s)" +203,buildInvalidWarningNumber,"Invalid warning number '%s'" +204,buildInvalidVersionString,"Invalid version string '%s'" +205,buildInvalidVersionFile,"Invalid version file '%s'" +buildProductName,"F# Compiler for F# 3.0 %s" +206,buildProblemWithFilename,"Problem with filename '%s': %s" +207,buildNoInputsSpecified,"No inputs specified" +208,buildMismatchOutputExtension,"The output name extension doesn't match the options used. If '-a' or '--target:library' is used the output file name must end with '.dll', if '--target:module' is used the output extension must be '.netmodule', otherwise '.exe'." +209,buildPdbRequiresDebug,"The '--pdb' option requires the '--debug' option to be used" +210,buildInvalidSearchDirectory,"The search directory '%s' is invalid" +211,buildSearchDirectoryNotFound,"The search directory '%s' could not be found" +212,buildInvalidFilename,"'%s' is not a valid filename" +213,buildInvalidAssemblyName,"'%s' is not a valid assembly name" +214,buildInvalidPrivacy,"Unrecognized privacy setting '%s' for managed resource, valid options are 'public' and 'private'" +215,buildMultipleReferencesNotAllowed,"Multiple references to '%s.dll' are not permitted" +216,buildRequiresCLI2,"The file '%s' is a CLI 1.x version of mscorlib. F# requires CLI version 2.0 or greater." +buildCouldNotReadVersionInfoFromMscorlib,"Could not read version from mscorlib.dll" +217,buildMscorlibAndReferencedAssemblyMismatch,"The referenced or default base CLI library 'mscorlib' is binary-incompatible with the referenced library '%s'. Consider recompiling the library or making an explicit reference to a version of this library that matches the CLI version you are using." +218,buildCannotReadAssembly,"Unable to read assembly '%s'" +219,buildMscorLibAndFSharpCoreMismatch,"The referenced or default base CLI library 'mscorlib' is binary-incompatible with the referenced F# core library '%s'. Consider recompiling the library or making an explicit reference to a version of this library that matches the CLI version you are using." +220,buildAssemblyResolutionFailed,"Assembly resolution failure at or near this location" +221,buildImplicitModuleIsNotLegalIdentifier,"The declarations in this file will be placed in an implicit module '%s' based on the file name '%s'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file." +222,buildMultiFileRequiresNamespaceOrModule,"Files in libraries or multiple-file applications must begin with a namespace or module declaration, e.g. 'namespace SomeNamespace.SubNamespace' or 'module SomeNamespace.SomeModule'" +223,buildMultipleToplevelModules,"This file contains multiple declarations of the form 'module SomeNamespace.SomeModule'. Only one declaration of this form is permitted in a file. Change your file to use an initial namespace declaration and/or use 'module ModuleName = ...' to define your modules." +buildUnknownFileSuffix,"ParseInput: unknown file suffix for '%s'" +224,buildOptionRequiresParameter,"Option requires parameter: %s" +225,buildCouldNotFindSourceFile,"Source file '%s' could not be found" +226,buildInvalidSourceFileExtension,"The file extension of '%s' is not recognized. Source files must have extension .fs, .fsi, .fsx, .fsscript, .ml or .mli." +227,buildCouldNotResolveAssembly,"Could not resolve assembly '%s'" +228,buildCouldNotResolveAssemblyRequiredByFile,"Could not resolve assembly '%s' required by '%s'" +229,buildErrorOpeningBinaryFile,"Error opening binary file '%s': %s" +231,buildDifferentVersionMustRecompile,"The F#-compiled DLL '%s' needs to be recompiled to be used with this version of F#" +232,buildInvalidHashIDirective,"Invalid directive. Expected '#I \"\"'." +233,buildInvalidHashrDirective,"Invalid directive. Expected '#r \"\"'." +234,buildInvalidHashloadDirective,"Invalid directive. Expected '#load \"\" ... \"\"'." +235,buildInvalidHashtimeDirective,"Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'." +236,buildDirectivesInModulesAreIgnored,"Directives inside modules are ignored" +237,buildSignatureAlreadySpecified,"A signature for the file or module '%s' has already been specified" +238,buildImplementationAlreadyGivenDetail,"An implementation of file or module '%s' has already been given. Compilation order is significant in F# because of type inference. You may need to adjust the order of your files to place the signature file before the implementation. In Visual Studio files are type-checked in the order they appear in the project file, which can be edited manually or adjusted using the solution explorer." +239,buildImplementationAlreadyGiven,"An implementation of the file or module '%s' has already been given" +240,buildSignatureWithoutImplementation,"The signature file '%s' does not have a corresponding implementation file. If an implementation file exists then check the 'module' and 'namespace' declarations in the signature and implementation files match." +241,buildArgInvalidInt,"'%s' is not a valid integer argument" +242,buildArgInvalidFloat,"'%s' is not a valid floating point argument" +243,buildUnrecognizedOption,"Unrecognized option: '%s'" +244,buildInvalidModuleOrNamespaceName,"Invalid module or namespace name" +# ----------------------------------------------------------------------------- +# pickle.fs +# ----------------------------------------------------------------------------- +pickleErrorReadingWritingMetadata,"Error reading/writing metadata for the F# compiled DLL '%s'. Was the DLL compiled with an earlier version of the F# compiler? (error: '%s')." +# ----------------------------------------------------------------------------- +# tast.fs +# ----------------------------------------------------------------------------- +245,tastTypeOrModuleNotConcrete,"The type/module '%s' is not a concrete module or type" +tastTypeHasAssemblyCodeRepresentation,"The type '%s' has an inline assembly code representation" +247,tastNamespaceAndModuleWithSameNameInAssembly,"A namespace and a module named '%s' both occur in two parts of this assembly" +248,tastTwoModulesWithSameNameInAssembly,"Two modules named '%s' occur in two parts of this assembly" +249,tastDuplicateTypeDefinitionInAssembly,"Two type definitions named '%s' occur in namespace '%s' in two parts of this assembly" +250,tastConflictingModuleAndTypeDefinitionInAssembly,"A module and a type definition named '%s' occur in namespace '%s' in two parts of this assembly" +# ----------------------------------------------------------------------------- +# tastops.fs +# ----------------------------------------------------------------------------- +251,tastInvalidMemberSignature,"Invalid member signature encountered because of an earlier error" +252,tastValueDoesNotHaveSetterType,"This value does not have a valid property setter type" +253,tastInvalidFormForPropertyGetter,"Invalid form for a property getter. At least one '()' argument is required when using the explicit syntax." +254,tastInvalidFormForPropertySetter,"Invalid form for a property setter. At least one argument is required." +255,tastUnexpectedByRef,"Unexpected use of a byref-typed variable" +256,tastValueMustBeLocalAndMutable,"A value must be mutable in order to mutate the contents or take the address of a value type, e.g. 'let mutable x = ...'" +257,tastInvalidMutationOfConstant,"Invalid mutation of a constant expression. Consider copying the expression to a mutable local, e.g. 'let mutable x = ...'." +tastValueHasBeenCopied,"The value has been copied to ensure the original is not mutated by this operation" +259,tastRecursiveValuesMayNotBeInConstructionOfTuple,"Recursively defined values cannot appear directly as part of the construction of a tuple value within a recursive binding" +260,tastRecursiveValuesMayNotAppearInConstructionOfType,"Recursive values cannot appear directly as a construction of the type '%s' within a recursive binding. This feature has been removed from the F# language. Consider using a record instead." +261,tastRecursiveValuesMayNotBeAssignedToNonMutableField,"Recursive values cannot be directly assigned to the non-mutable field '%s' of the type '%s' within a recursive binding. Consider using a mutable field instead." +tastUnexpectedDecodeOfAutoOpenAttribute,"Unexpected decode of AutoOpenAttribute" +tastUnexpectedDecodeOfInternalsVisibleToAttribute,"Unexpected decode of InternalsVisibleToAttribute" +tastUnexpectedDecodeOfInterfaceDataVersionAttribute,"Unexpected decode of InterfaceDataVersionAttribute" +265,tastActivePatternsLimitedToSeven,"Active patterns cannot return more than 7 possibilities" +266,tastConstantCannotBeCustomAttribute,"This constant cannot be used as a custom attribute value" +267,tastNotAConstantExpression,"This is not a constant expression or valid custom attribute value" +# ----------------------------------------------------------------------------- +# typrelns.fs +# ----------------------------------------------------------------------------- +ValueNotContainedMutabilityAttributesDiffer,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe mutability attributes differ" +ValueNotContainedMutabilityNamesDiffer,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe names differ" +ValueNotContainedMutabilityCompiledNamesDiffer,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe compiled names differ" +ValueNotContainedMutabilityDisplayNamesDiffer,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe display names differ" +ValueNotContainedMutabilityAccessibilityMore,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe accessibility specified in the signature is more than that specified in the implementation" +ValueNotContainedMutabilityInlineFlagsDiffer,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe inline flags differ" +ValueNotContainedMutabilityLiteralConstantValuesDiffer,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe literal constant values and/or attributes differ" +ValueNotContainedMutabilityOneIsTypeFunction,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is a type function and the other is not. The signature requires explicit type parameters if they are present in the implementation." +ValueNotContainedMutabilityParameterCountsDiffer,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe respective type parameter counts differ" +ValueNotContainedMutabilityTypesDiffer,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe types differ" +ValueNotContainedMutabilityExtensionsDiffer,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is an extension member and the other is not" +ValueNotContainedMutabilityArityNotInferred,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nAn arity was not inferred for this value" +ValueNotContainedMutabilityGenericParametersDiffer,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe number of generic parameters in the signature and implementation differ (the signature declares %s but the implementation declares %s" +ValueNotContainedMutabilityGenericParametersAreDifferentKinds,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe generic parameters in the signature and implementation have different kinds. Perhaps there is a missing [] attribute." +ValueNotContainedMutabilityAritiesDiffer,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe arities in the signature and implementation differ. The signature specifies that '%s' is function definition or lambda expression accepting at least %s argument(s), but the implementation is a computed function value. To declare that a computed function value is a permitted implementation simply parenthesize its type in the signature, e.g.\n\tval %s: int -> (int -> int)\ninstead of\n\tval %s: int -> int -> int." +ValueNotContainedMutabilityDotNetNamesDiffer,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe CLI member names differ" +ValueNotContainedMutabilityStaticsDiffer,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is static and the other isn't" +ValueNotContainedMutabilityVirtualsDiffer,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is virtual and the other isn't" +ValueNotContainedMutabilityAbstractsDiffer,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is abstract and the other isn't" +ValueNotContainedMutabilityFinalsDiffer,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is final and the other isn't" +ValueNotContainedMutabilityOverridesDiffer,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is marked as an override and the other isn't" +ValueNotContainedMutabilityOneIsConstructor,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is a constructor/property and the other is not" +ValueNotContainedMutabilityStaticButInstance,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe compiled representation of this method is as a static member but the signature indicates its compiled representation is as an instance member" +ValueNotContainedMutabilityInstanceButStatic,"Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe compiled representation of this method is as an instance member, but the signature indicates its compiled representation is as a static member" +290,DefinitionsInSigAndImplNotCompatibleNamesDiffer,"The %s definitions in the signature and implementation are not compatible because the names differ" +291,DefinitionsInSigAndImplNotCompatibleParameterCountsDiffer,"The %s definitions in the signature and implementation are not compatible because the respective type parameter counts differ" +292,DefinitionsInSigAndImplNotCompatibleAccessibilityDiffer,"The %s definitions in the signature and implementation are not compatible because the accessibility specified in the signature is more than that specified in the implementation" +293,DefinitionsInSigAndImplNotCompatibleMissingInterface,"The %s definitions in the signature and implementation are not compatible because the signature requires that the type supports the interface %s but the interface has not been implemented" +294,DefinitionsInSigAndImplNotCompatibleImplementationSaysNull,"The %s definitions in the signature and implementation are not compatible because the implementation says this type may use nulls as a representation but the signature does not" +294,DefinitionsInSigAndImplNotCompatibleImplementationSaysNull2,"The %s definitions in the signature and implementation are not compatible because the implementation says this type may use nulls as an extra value but the signature does not" +295,DefinitionsInSigAndImplNotCompatibleSignatureSaysNull,"The %s definitions in the signature and implementation are not compatible because the signature says this type may use nulls as a representation but the implementation does not" +295,DefinitionsInSigAndImplNotCompatibleSignatureSaysNull2,"The %s definitions in the signature and implementation are not compatible because the signature says this type may use nulls as an extra value but the implementation does not" +296,DefinitionsInSigAndImplNotCompatibleImplementationSealed,"The %s definitions in the signature and implementation are not compatible because the implementation type is sealed but the signature implies it is not. Consider adding the [] attribute to the signature." +297,DefinitionsInSigAndImplNotCompatibleImplementationIsNotSealed,"The %s definitions in the signature and implementation are not compatible because the implementation type is not sealed but signature implies it is. Consider adding the [] attribute to the implementation." +298,DefinitionsInSigAndImplNotCompatibleImplementationIsAbstract,"The %s definitions in the signature and implementation are not compatible because the implementation is an abstract class but the signature is not. Consider adding the [] attribute to the signature." +299,DefinitionsInSigAndImplNotCompatibleSignatureIsAbstract,"The %s definitions in the signature and implementation are not compatible because the signature is an abstract class but the implementation is not. Consider adding the [] attribute to the implementation." +300,DefinitionsInSigAndImplNotCompatibleTypesHaveDifferentBaseTypes,"The %s definitions in the signature and implementation are not compatible because the types have different base types" +301,DefinitionsInSigAndImplNotCompatibleNumbersDiffer,"The %s definitions in the signature and implementation are not compatible because the number of %ss differ" +302,DefinitionsInSigAndImplNotCompatibleSignatureDefinesButImplDoesNot,"The %s definitions in the signature and implementation are not compatible because the signature defines the %s '%s' but the implementation does not (or does, but not in the same order)" +303,DefinitionsInSigAndImplNotCompatibleImplDefinesButSignatureDoesNot,"The %s definitions in the signature and implementation are not compatible because the implementation defines the %s '%s' but the signature does not (or does, but not in the same order)" +304,DefinitionsInSigAndImplNotCompatibleImplDefinesStruct,"The %s definitions in the signature and implementation are not compatible because the implementation defines a struct but the signature defines a type with a hidden representation" +305,DefinitionsInSigAndImplNotCompatibleDotNetTypeRepresentationIsHidden,"The %s definitions in the signature and implementation are not compatible because a CLI type representation is being hidden by a signature" +306,DefinitionsInSigAndImplNotCompatibleTypeIsHidden,"The %s definitions in the signature and implementation are not compatible because a type representation is being hidden by a signature" +307,DefinitionsInSigAndImplNotCompatibleTypeIsDifferentKind,"The %s definitions in the signature and implementation are not compatible because the types are of different kinds" +308,DefinitionsInSigAndImplNotCompatibleILDiffer,"The %s definitions in the signature and implementation are not compatible because the IL representations differ" +309,DefinitionsInSigAndImplNotCompatibleRepresentationsDiffer,"The %s definitions in the signature and implementation are not compatible because the representations differ" +311,DefinitionsInSigAndImplNotCompatibleFieldWasPresent,"The %s definitions in the signature and implementation are not compatible because the field %s was present in the implementation but not in the signature" +312,DefinitionsInSigAndImplNotCompatibleFieldOrderDiffer,"The %s definitions in the signature and implementation are not compatible because the order of the fields is different in the signature and implementation" +313,DefinitionsInSigAndImplNotCompatibleFieldRequiredButNotSpecified,"The %s definitions in the signature and implementation are not compatible because the field %s was required by the signature but was not specified by the implementation" +314,DefinitionsInSigAndImplNotCompatibleFieldIsInImplButNotSig,"The %s definitions in the signature and implementation are not compatible because the field '%s' was present in the implementation but not in the signature. Struct types must now reveal their fields in the signature for the type, though the fields may still be labelled 'private' or 'internal'." +315,DefinitionsInSigAndImplNotCompatibleAbstractMemberMissingInImpl,"The %s definitions in the signature and implementation are not compatible because the abstract member '%s' was required by the signature but was not specified by the implementation" +316,DefinitionsInSigAndImplNotCompatibleAbstractMemberMissingInSig,"The %s definitions in the signature and implementation are not compatible because the abstract member '%s' was present in the implementation but not in the signature" +317,DefinitionsInSigAndImplNotCompatibleSignatureDeclaresDiffer,"The %s definitions in the signature and implementation are not compatible because the signature declares a %s while the implementation declares a %s" +318,DefinitionsInSigAndImplNotCompatibleAbbreviationsDiffer,"The %s definitions in the signature and implementation are not compatible because the abbreviations differ: %s versus %s" +319,DefinitionsInSigAndImplNotCompatibleAbbreviationHiddenBySig,"The %s definitions in the signature and implementation are not compatible because an abbreviation is being hidden by a signature. The abbreviation must be visible to other CLI languages. Consider making the abbreviation visible in the signature." +320,DefinitionsInSigAndImplNotCompatibleSigHasAbbreviation,"The %s definitions in the signature and implementation are not compatible because the signature has an abbreviation while the implementation does not" +ModuleContainsConstructorButNamesDiffer,"The module contains the constructor\n %s \nbut its signature specifies\n %s \nThe names differ" +ModuleContainsConstructorButDataFieldsDiffer,"The module contains the constructor\n %s \nbut its signature specifies\n %s \nThe respective number of data fields differ" +ModuleContainsConstructorButTypesOfFieldsDiffer,"The module contains the constructor\n %s \nbut its signature specifies\n %s \nThe types of the fields differ" +ModuleContainsConstructorButAccessibilityDiffers,"The module contains the constructor\n %s \nbut its signature specifies\n %s \nthe accessibility specified in the signature is more than that specified in the implementation" +FieldNotContainedNamesDiffer,"The module contains the field\n %s \nbut its signature specifies\n %s \nThe names differ" +FieldNotContainedAccessibilitiesDiffer,"The module contains the field\n %s \nbut its signature specifies\n %s \nthe accessibility specified in the signature is more than that specified in the implementation" +FieldNotContainedStaticsDiffer,"The module contains the field\n %s \nbut its signature specifies\n %s \nThe 'static' modifiers differ" +FieldNotContainedMutablesDiffer,"The module contains the field\n %s \nbut its signature specifies\n %s \nThe 'mutable' modifiers differ" +FieldNotContainedLiteralsDiffer,"The module contains the field\n %s \nbut its signature specifies\n %s \nThe 'literal' modifiers differ" +FieldNotContainedTypesDiffer,"The module contains the field\n %s \nbut its signature specifies\n %s \nThe types differ" +331,typrelCannotResolveImplicitGenericInstantiation,"The implicit instantiation of a generic construct at or near this point could not be resolved because it could resolve to multiple unrelated types, e.g. '%s' and '%s'. Consider using type annotations to resolve the ambiguity" +332,typrelCannotResolveAmbiguityInOverloadedOperator,"Could not resolve the ambiguity inherent in the use of the operator '%s' at or near this program point. Consider using type annotations to resolve the ambiguity." +333,typrelCannotResolveAmbiguityInPrintf,"Could not resolve the ambiguity inherent in the use of a 'printf'-style format string" +334,typrelCannotResolveAmbiguityInEnum,"Could not resolve the ambiguity in the use of a generic construct with an 'enum' constraint at or near this position" +335,typrelCannotResolveAmbiguityInDelegate,"Could not resolve the ambiguity in the use of a generic construct with a 'delegate' constraint at or near this position" +337,typrelInvalidValue,"Invalid value" +338,typrelSigImplNotCompatibleParamCountsDiffer,"The signature and implementation are not compatible because the respective type parameter counts differ" +339,typrelSigImplNotCompatibleCompileTimeRequirementsDiffer,"The signature and implementation are not compatible because the type parameter in the class/signature has a different compile-time requirement to the one in the member/implementation" +340,typrelSigImplNotCompatibleConstraintsDiffer,"The signature and implementation are not compatible because the declaration of the type parameter '%s' requires a constraint of the form %s" +341,typrelSigImplNotCompatibleConstraintsDifferRemove,"The signature and implementation are not compatible because the type parameter '%s' has a constraint of the form %s but the implementation does not. Either remove this constraint from the signature or add it to the implementation." +342,typrelTypeImplementsIComparableShouldOverrideObjectEquals,"The type '%s' implements 'System.IComparable'. Consider also adding an explicit override for 'Object.Equals'" +343,typrelTypeImplementsIComparableDefaultObjectEqualsProvided,"The type '%s' implements 'System.IComparable' explicitly but provides no corresponding override for 'Object.Equals'. An implementation of 'Object.Equals' has been automatically provided, implemented via 'System.IComparable'. Consider implementing the override 'Object.Equals' explicitly" +344,typrelExplicitImplementationOfGetHashCodeOrEquals,"The struct, record or union type '%s' has an explicit implementation of 'Object.GetHashCode' or 'Object.Equals'. You must apply the 'CustomEquality' attribute to the type" +345,typrelExplicitImplementationOfGetHashCode,"The struct, record or union type '%s' has an explicit implementation of 'Object.GetHashCode'. Consider implementing a matching override for 'Object.Equals(obj)'" +346,typrelExplicitImplementationOfEquals,"The struct, record or union type '%s' has an explicit implementation of 'Object.Equals'. Consider implementing a matching override for 'Object.GetHashCode()'" +ExceptionDefsNotCompatibleHiddenBySignature,"The exception definitions are not compatible because a CLI exception mapping is being hidden by a signature. The exception mapping must be visible to other modules. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s" +ExceptionDefsNotCompatibleDotNetRepresentationsDiffer,"The exception definitions are not compatible because the CLI representations differ. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s" +ExceptionDefsNotCompatibleAbbreviationHiddenBySignature,"The exception definitions are not compatible because the exception abbreviation is being hidden by the signature. The abbreviation must be visible to other CLI languages. Consider making the abbreviation visible in the signature. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s." +ExceptionDefsNotCompatibleSignaturesDiffer,"The exception definitions are not compatible because the exception abbreviations in the signature and implementation differ. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s." +ExceptionDefsNotCompatibleExceptionDeclarationsDiffer,"The exception definitions are not compatible because the exception declarations differ. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s." +ExceptionDefsNotCompatibleFieldInSigButNotImpl,"The exception definitions are not compatible because the field '%s' was required by the signature but was not specified by the implementation. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s." +ExceptionDefsNotCompatibleFieldInImplButNotSig,"The exception definitions are not compatible because the field '%s' was present in the implementation but not in the signature. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s." +ExceptionDefsNotCompatibleFieldOrderDiffers,"The exception definitions are not compatible because the order of the fields is different in the signature and implementation. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s." +355,typrelModuleNamespaceAttributesDifferInSigAndImpl,"The namespace or module attributes differ between signature and implementation" +356,typrelMethodIsOverconstrained,"This method is over-constrained in its type parameters" +357,typrelOverloadNotFound,"No implementations of '%s' had the correct number of arguments and type parameters. The required signature is '%s'." +358,typrelOverrideWasAmbiguous,"The override for '%s' was ambiguous" +359,typrelMoreThenOneOverride,"More than one override implements '%s'" +360,typrelMethodIsSealed,"The method '%s' is sealed and cannot be overridden" +361,typrelOverrideImplementsMoreThenOneSlot,"The override '%s' implements more than one abstract slot, e.g. '%s' and '%s'" +362,typrelDuplicateInterface,"Duplicate or redundant interface" +363,typrelNeedExplicitImplementation,"The interface '%s' is included in multiple explicitly implemented interface types. Add an explicit implementation of this interface." +364,typrelNamedArgumentHasBeenAssignedMoreThenOnce,"A named argument has been assigned more than one value" +365,typrelNoImplementationGiven,"No implementation was given for '%s'" +366,typrelNoImplementationGivenWithSuggestion,"No implementation was given for '%s'. Note that all interface members must be implemented and listed under an appropriate 'interface' declaration, e.g. 'interface ... with member ...'." +367,typrelMemberDoesNotHaveCorrectNumberOfArguments,"The member '%s' does not have the correct number of arguments. The required signature is '%s'." +368,typrelMemberDoesNotHaveCorrectNumberOfTypeParameters,"The member '%s' does not have the correct number of method type parameters. The required signature is '%s'." +369,typrelMemberDoesNotHaveCorrectKindsOfGenericParameters,"The member '%s' does not have the correct kinds of generic parameters. The required signature is '%s'." +370,typrelMemberCannotImplement,"The member '%s' cannot be used to implement '%s'. The required signature is '%s'." +# ----------------------------------------------------------------------------- +# ast.fs errors +# ----------------------------------------------------------------------------- +371,astParseEmbeddedILError,"Error while parsing embedded IL" +372,astParseEmbeddedILTypeError,"Error while parsing embedded IL type" +astDeprecatedIndexerNotation,"This indexer notation has been removed from the F# language" +374,astInvalidExprLeftHandOfAssignment,"Invalid expression on left of assignment" +# ----------------------------------------------------------------------------- +# augment.fs errors +# ----------------------------------------------------------------------------- +376,augNoRefEqualsOnStruct,"The 'ReferenceEquality' attribute cannot be used on structs. Consider using the 'StructuralEquality' attribute instead, or implement an override for 'System.Object.Equals(obj)'." +377,augInvalidAttrs,"This type uses an invalid mix of the attributes 'NoEquality', 'ReferenceEquality', 'StructuralEquality', 'NoComparison' and 'StructuralComparison' attributes" +378,augNoEqualityNeedsNoComparison,"The 'NoEquality' attribute must be used in conjunction with the 'NoComparison' attribute" +379,augStructCompNeedsStructEquality,"The 'StructuralComparison' attribute must be used in conjunction with the 'StructuralEquality' attribute" +380,augStructEqNeedsNoCompOrStructComp,"The 'StructuralEquality' attribute must be used in conjunction with the 'NoComparison' or 'StructuralComparison' attributes" +381,augTypeCantHaveRefEqAndStructAttrs,"A type cannot have both the 'ReferenceEquality' and 'StructuralEquality' or 'StructuralComparison' attributes" +382,augOnlyCertainTypesCanHaveAttrs,"Only record, union, exception and struct types may be augmented with the 'ReferenceEquality', 'StructuralEquality' and 'StructuralComparison' attributes" +383,augRefEqCantHaveObjEquals,"A type with attribute 'ReferenceEquality' cannot have an explicit implementation of 'Object.Equals(obj)', 'System.IEquatable<_>' or 'System.Collections.IStructuralEquatable'" +384,augCustomEqNeedsObjEquals,"A type with attribute 'CustomEquality' must have an explicit implementation of at least one of 'Object.Equals(obj)', 'System.IEquatable<_>' or 'System.Collections.IStructuralEquatable'" +385,augCustomCompareNeedsIComp,"A type with attribute 'CustomComparison' must have an explicit implementation of at least one of 'System.IComparable' or 'System.Collections.IStructuralComparable'" +386,augNoEqNeedsNoObjEquals,"A type with attribute 'NoEquality' should not usually have an explicit implementation of 'Object.Equals(obj)'. Disable this warning if this is intentional for interoperability purposes" +386,augNoCompCantImpIComp,"A type with attribute 'NoComparison' should not usually have an explicit implementation of 'System.IComparable', 'System.IComparable<_>' or 'System.Collections.IStructuralComparable'. Disable this warning if this is intentional for interoperability purposes" +387,augCustomEqNeedsNoCompOrCustomComp,"The 'CustomEquality' attribute must be used in conjunction with the 'NoComparison' or 'CustomComparison' attributes" +# ----------------------------------------------------------------------------- +# formats.fs errors +# ----------------------------------------------------------------------------- +forPositionalSpecifiersNotPermitted,"Positional specifiers are not permitted in format strings" +forMissingFormatSpecifier,"Missing format specifier" +forFlagSetTwice,"'%s' flag set twice" +forPrefixFlagSpacePlusSetTwice,"Prefix flag (' ' or '+') set twice" +forHashSpecifierIsInvalid,"The # formatting modifier is invalid in F#" +forBadPrecision,"Bad precision in format specifier" +forBadWidth,"Bad width in format specifier" +forDoesNotSupportZeroFlag,"'%s' format does not support '0' flag" +forPrecisionMissingAfterDot,"Precision missing after the '.'" +forFormatDoesntSupportPrecision,"'%s' format does not support precision" +forBadFormatSpecifier,"Bad format specifier (after l or L): Expected ld,li,lo,lu,lx or lX. In F# code you can use %%d, %%x, %%o or %%u instead, which are overloaded to work with all basic integer types." +forLIsUnnecessary,"The 'l' or 'L' in this format specifier is unnecessary. In F# code you can use %%d, %%x, %%o or %%u instead, which are overloaded to work with all basic integer types." +forHIsUnnecessary,"The 'h' or 'H' in this format specifier is unnecessary. You can use %%d, %%x, %%o or %%u instead, which are overloaded to work with all basic integer types.." +forDoesNotSupportPrefixFlag,"'%s' does not support prefix '%s' flag" +forBadFormatSpecifierGeneral,"Bad format specifier: '%s'" +# ----------------------------------------------------------------------------- +# ErrorLogger.fs errors +# ----------------------------------------------------------------------------- +elSysEnvExitDidntExit,"System.Environment.Exit did not exit" +elDeprecatedOperator,"The treatment of this operator is now handled directly by the F# compiler and its meaning cannot be redefined" +# ----------------------------------------------------------------------------- +# check.fs errors +# ----------------------------------------------------------------------------- +405,chkProtectedOrBaseCalled,"A protected member is called or 'base' is being used. This is only allowed in the direct implementation of members since they could escape their object scope." +406,chkByrefUsedInInvalidWay,"The byref-typed variable '%s' is used in an invalid way. Byrefs cannot be captured by closures or passed to inner functions." +407,chkMutableUsedInInvalidWay,"The mutable variable '%s' is used in an invalid way. Mutable variables cannot be captured by closures. Consider eliminating this use of mutation or using a heap-allocated mutable reference cell via 'ref' and '!'." +408,chkBaseUsedInInvalidWay,"The 'base' keyword is used in an invalid way. Base calls cannot be used in closures. Consider using a private member to make base calls." +chkVariableUsedInInvalidWay,"The variable '%s' is used in an invalid way" +410,chkTypeLessAccessibleThanType,"The type '%s' is less accessible than the value, member or type '%s' it is used in" +411,chkSystemVoidOnlyInTypeof,"'System.Void' can only be used as 'typeof' in F#" +412,chkErrorUseOfByref,"A type instantiation involves a byref type. This is not permitted by the rules of Common IL." +413,chkErrorContainsCallToRethrow,"Calls to 'reraise' may only occur directly in a handler of a try-with" +414,chkSplicingOnlyInQuotations,"Expression-splicing operators may only be used within quotations" +415,chkNoFirstClassSplicing,"First-class uses of the expression-splicing operator are not permitted" +416,chkNoFirstClassAddressOf,"First-class uses of the address-of operators are not permitted" +417,chkNoFirstClassRethrow,"First-class uses of the 'reraise' function is not permitted" +418,chkNoByrefAtThisPoint,"The byref typed value '%s' cannot be used at this point" +419,chkLimitationsOfBaseKeyword,"'base' values may only be used to make direct calls to the base implementations of overridden members" +420,chkObjCtorsCantUseExceptionHandling,"Object constructors cannot directly use try/with and try/finally prior to the initialization of the object. This includes constructs such as 'for x in ...' that may elaborate to uses of these constructs. This is a limitation imposed by Common IL." +421,chkNoAddressOfAtThisPoint,"The address of the variable '%s' cannot be used at this point" +422,chkNoAddressStaticFieldAtThisPoint,"The address of the static field '%s' cannot be used at this point" +423,chkNoAddressFieldAtThisPoint,"The address of the field '%s' cannot be used at this point" +424,chkNoAddressOfArrayElementAtThisPoint,"The address of an array element cannot be used at this point" +425,chkFirstClassFuncNoByref,"The type of a first-class function cannot contain byrefs" +426,chkReturnTypeNoByref,"A method return type would contain byrefs which is not permitted" +428,chkInvalidCustAttrVal,"Invalid custom attribute value (not a constant or literal)" +429,chkAttrHasAllowMultiFalse,"The attribute type '%s' has 'AllowMultiple=false'. Multiple instances of this attribute cannot be attached to a single language element." +430,chkMemberUsedInInvalidWay,"The member '%s' is used in an invalid way. A use of '%s' has been inferred prior to its definition at or near '%s'. This is an invalid forward reference." +431,chkNoByrefAsTopValue,"A byref typed value would be stored here. Top-level let-bound byref values are not permitted." +432,chkReflectedDefCantSplice,"[] terms cannot contain uses of the prefix splice operator '%%'" +433,chkEntryPointUsage,"A function labeled with the 'EntryPointAttribute' attribute must be the last declaration in the last file in the compilation sequence, and can only be used when compiling to a .exe" +chkUnionCaseCompiledForm,"compiled form of the union case" +chkUnionCaseDefaultAugmentation,"default augmentation of the union case" +434,chkPropertySameNameMethod,"Name clash. The property '%s' has the same name as a method in this type." +435,chkGetterSetterDoNotMatchAbstract,"The property '%s' has a getter and a setter that do not match. If one is abstract then the other must be as well." +436,chkPropertySameNameIndexer,"The property '%s' has the same name as another property in this type, but one takes indexer arguments and the other does not. You may be missing an indexer argument to one of your properties." +437,chkCantStoreByrefValue,"A type would store a byref typed value. This is not permitted by Common IL." +#See related 1205 chkDuplicateInherittedVirtualMethod +438,chkDuplicateMethod,"Duplicate method. The method '%s' has the same name and signature as another method in this type." +438,chkDuplicateMethodWithSuffix,"Duplicate method. The method '%s' has the same name and signature as another method in this type once tuples, functions, units of measure and/or provided types are erased." +439,chkDuplicateMethodCurried,"The method '%s' has curried arguments but has the same name as another method in this type. Methods with curried arguments cannot be overloaded. Consider using a method taking tupled arguments." +440,chkCurriedMethodsCantHaveOutParams,"Methods with curried arguments cannot declare 'out', 'ParamArray', 'optional' or 'byref' arguments" +441,chkDuplicateProperty,"Duplicate property. The property '%s' has the same name and signature as another property in this type." +441,chkDuplicatePropertyWithSuffix,"Duplicate property. The property '%s' has the same name and signature as another property in this type once tuples, functions, units of measure and/or provided types are erased." +442,chkDuplicateMethodInheritedType,"Duplicate method. The abstract method '%s' has the same name and signature as an abstract method in an inherited type." +442,chkDuplicateMethodInheritedTypeWithSuffix,"Duplicate method. The abstract method '%s' has the same name and signature as an abstract method in an inherited type once tuples, functions, units of measure and/or provided types are erased." +443,chkMultipleGenericInterfaceInstantiations,"This type implements or inherits the same interface at different generic instantiations '%s' and '%s'. This is not permitted in this version of F#." +444,chkValueWithDefaultValueMustHaveDefaultValue,"The type of a field using the 'DefaultValue' attribute must admit default initialization, i.e. have 'null' as a proper value or be a struct type whose fields all admit default initialization. You can use 'DefaultValue(false)' to disable this check" +445,chkNoByrefInTypeAbbrev,"The type abbreviation contains byrefs. This is not permitted by F#." +# ----------------------------------------------------------------------------- +# creflect.fs errors +# ----------------------------------------------------------------------------- +446,crefBoundVarUsedInSplice,"The variable '%s' is bound in a quotation but is used as part of a spliced expression. This is not permitted since it may escape its scope." +447,crefQuotationsCantContainGenericExprs,"Quotations cannot contain uses of generic expressions" +448,crefQuotationsCantContainGenericFunctions,"Quotations cannot contain function definitions that are inferred or declared to be generic. Consider adding some type constraints to make this a valid quoted expression." +449,crefQuotationsCantContainObjExprs,"Quotations cannot contain object expressions" +450,crefQuotationsCantContainAddressOf,"Quotations cannot contain expressions that take the address of a field" +451,crefQuotationsCantContainStaticFieldRef,"Quotations cannot contain expressions that fetch static fields" +452,crefQuotationsCantContainInlineIL,"Quotations cannot contain inline assembly code or pattern matching on arrays" +453,crefQuotationsCantContainDescendingForLoops,"Quotations cannot contain descending for loops" +454,crefQuotationsCantFetchUnionIndexes,"Quotations cannot contain expressions that fetch union case indexes" +455,crefQuotationsCantSetUnionFields,"Quotations cannot contain expressions that set union case fields" +456,crefQuotationsCantSetExceptionFields,"Quotations cannot contain expressions that set fields in exception values" +457,crefQuotationsCantRequireByref,"Quotations cannot contain expressions that require byref pointers" +458,crefQuotationsCantCallTraitMembers,"Quotations cannot contain expressions that make member constraint calls, or uses of operators that implicitly resolve to a member constraint call" +459,crefQuotationsCantContainThisConstant,"Quotations cannot contain this kind of constant" +460,crefQuotationsCantContainThisPatternMatch,"Quotations cannot contain this kind of pattern match" +461,crefQuotationsCantContainArrayPatternMatching,"Quotations cannot contain array pattern matching" +462,crefQuotationsCantContainThisType,"Quotations cannot contain this kind of type" +# ----------------------------------------------------------------------------- +# csolve.fs errors +# ----------------------------------------------------------------------------- +csTypeCannotBeResolvedAtCompileTime,"The declared type parameter '%s' cannot be used here since the type parameter cannot be resolved at compile time" +464,csCodeLessGeneric,"This code is less generic than indicated by its annotations. A unit-of-measure specified using '_' has been determined to be '1', i.e. dimensionless. Consider making the code generic, or removing the use of '_'." +465,csTypeInferenceMaxDepth,"Type inference problem too complicated (maximum iteration depth reached). Consider adding further type annotations." +csExpectedArguments,"Expected arguments to an instance member" +csIndexArgumentMismatch,"This indexer expects %d arguments but is here given %d" +csExpectTypeWithOperatorButGivenFunction,"Expecting a type supporting the operator '%s' but given a function type. You may be missing an argument to a function." +csExpectTypeWithOperatorButGivenTuple,"Expecting a type supporting the operator '%s' but given a tuple type" +csTypesDoNotSupportOperator,"None of the types '%s' support the operator '%s'" +csTypeDoesNotSupportOperator,"The type '%s' does not support the operator '%s'" +csTypesDoNotSupportOperatorNullable,"None of the types '%s' support the operator '%s'. Consider opening the module 'Microsoft.FSharp.Linq.NullableOperators'." +csTypeDoesNotSupportOperatorNullable,"The type '%s' does not support the operator '%s'. Consider opening the module 'Microsoft.FSharp.Linq.NullableOperators'." +csTypeDoesNotSupportConversion,"The type '%s' does not support a conversion to the type '%s'" +csMethodFoundButIsStatic,"The type '%s' has a method '%s' (full name '%s'), but the method is static" +csMethodFoundButIsNotStatic,"The type '%s' has a method '%s' (full name '%s'), but the method is not static" +472,csStructConstraintInconsistent,"The constraints 'struct' and 'not struct' are inconsistent" +csTypeDoesNotHaveNull,"The type '%s' does not have 'null' as a proper value" +csNullableTypeDoesNotHaveNull,"The type '%s' does not have 'null' as a proper value. To create a null value for a Nullable type use 'System.Nullable()'." +csTypeDoesNotSupportComparison1,"The type '%s' does not support the 'comparison' constraint because it has the 'NoComparison' attribute" +csTypeDoesNotSupportComparison2,"The type '%s' does not support the 'comparison' constraint. For example, it does not support the 'System.IComparable' interface" +csTypeDoesNotSupportComparison3,"The type '%s' does not support the 'comparison' constraint because it is a record, union or struct with one or more structural element types which do not support the 'comparison' constraint. Either avoid the use of comparison with this type, or add the 'StructuralComparison' attribute to the type to determine which field type does not support comparison" +csTypeDoesNotSupportEquality1,"The type '%s' does not support the 'equality' constraint because it has the 'NoEquality' attribute" +csTypeDoesNotSupportEquality2,"The type '%s' does not support the 'equality' constraint because it is a function type" +csTypeDoesNotSupportEquality3,"The type '%s' does not support the 'equality' constraint because it is a record, union or struct with one or more structural element types which do not support the 'equality' constraint. Either avoid the use of equality with this type, or add the 'StructuralEquality' attribute to the type to determine which field type does not support equality" +csTypeIsNotEnumType,"The type '%s' is not a CLI enum type" +csTypeHasNonStandardDelegateType,"The type '%s' has a non-standard delegate type" +csTypeIsNotDelegateType,"The type '%s' is not a CLI delegate type" +csTypeParameterCannotBeNullable,"This type parameter cannot be instantiated to 'Nullable'. This is a restriction imposed in order to ensure the meaning of 'null' in some CLI languages is not confusing when used in conjunction with 'Nullable' values." +csGenericConstructRequiresStructType,"A generic construct requires that the type '%s' is a CLI or F# struct type" +csGenericConstructRequiresUnmanagedType,"A generic construct requires that the type '%s' is an unmanaged type" +csTypeNotCompatibleBecauseOfPrintf,"The type '%s' is not compatible with any of the types %s, arising from the use of a printf-style format string" +csGenericConstructRequiresReferenceSemantics,"A generic construct requires that the type '%s' have reference semantics, but it does not, i.e. it is a struct" +csGenericConstructRequiresNonAbstract,"A generic construct requires that the type '%s' be non-abstract" +csGenericConstructRequiresPublicDefaultConstructor,"A generic construct requires that the type '%s' have a public default constructor" +483,csTypeInstantiationLengthMismatch,"Type instantiation length mismatch" +484,csOptionalArgumentNotPermittedHere,"Optional arguments not permitted here" +485,csMemberIsNotStatic,"%s is not a static member" +486,csMemberIsNotInstance,"%s is not an instance member" +487,csArgumentLengthMismatch,"Argument length mismatch" +488,csArgumentTypesDoNotMatch,"The argument types don't match" +489,csMethodExpectsParams,"This method expects a CLI 'params' parameter in this position. 'params' is a way of passing a variable number of arguments to a method in languages such as C#. Consider passing an array for this argument" +490,csMemberIsNotAccessible,"The member or object constructor '%s' is not %s" +491,csMemberIsNotAccessible2,"The member or object constructor '%s' is not %s. Private members may only be accessed from within the declaring type. Protected members may only be accessed from an extending type and cannot be accessed from inner lambda expressions." +492,csMethodIsNotAStaticMethod,"%s is not a static method" +493,csMethodIsNotAnInstanceMethod,"%s is not an instance method" +csMemberHasNoArgumentOrReturnProperty,"The member or object constructor '%s' has no argument or settable return property '%s'. %s." +495,csRequiredSignatureIs,"The required signature is %s" +496,csMemberSignatureMismatch,"The member or object constructor '%s' requires %d argument(s). The required signature is '%s'." +497,csMemberSignatureMismatch2,"The member or object constructor '%s' requires %d additional argument(s). The required signature is '%s'." +498,csMemberSignatureMismatch3,"The member or object constructor '%s' requires %d argument(s). The required signature is '%s'. Some names for missing arguments are %s." +499,csMemberSignatureMismatch4,"The member or object constructor '%s' requires %d additional argument(s). The required signature is '%s'. Some names for missing arguments are %s." +500,csMemberSignatureMismatchArityNamed,"The member or object constructor '%s' requires %d argument(s) but is here given %d unnamed and %d named argument(s). The required signature is '%s'." +501,csMemberSignatureMismatchArity,"The member or object constructor '%s' takes %d argument(s) but is here given %d. The required signature is '%s'." +502,csMemberSignatureMismatchArityType,"The member or object constructor '%s' takes %d type argument(s) but is here given %d. The required signature is '%s'." +503,csMemberNotAccessible,"The member or object constructor '%s' taking %d arguments are not accessible from this code location. All accessible versions of method '%s' take %d arguments." +504,csIncorrectGenericInstantiation,"Incorrect generic instantiation. No %s member named '%s' takes %d generic arguments." +505,csMemberOverloadArityMismatch,"The member or object constructor '%s' does not take %d argument(s). An overload was found taking %d arguments." +506,csNoMemberTakesTheseArguments,"No %s member or object constructor named '%s' takes %d arguments" +507,csNoMemberTakesTheseArguments2,"No %s member or object constructor named '%s' takes %d arguments. Note the call to this member also provides %d named arguments." +508,csNoMemberTakesTheseArguments3,"No %s member or object constructor named '%s' takes %d arguments. The named argument '%s' doesn't correspond to any argument or settable return property for any overload." +509,csMethodNotFound,"Method or object constructor '%s' not found" +csNoOverloadsFound,"No overloads match for method '%s'." +csMethodIsOverloaded,"A unique overload for method '%s' could not be determined based on type information prior to this program point. A type annotation may be needed." +csCandidates,"Candidates: %s" +csSeeAvailableOverloads,"The available overloads are shown below (or in the Error List window)." +# ----------------------------------------------------------------------------- +# pars.fsy errors +# ----------------------------------------------------------------------------- +512,parsDoCannotHaveVisibilityDeclarations,"Accessibility modifiers are not permitted on 'do' bindings" +513,parsEofInHashIf,"End of file in #if section begun at or after here" +514,parsEofInString,"End of file in string begun at or before here" +515,parsEofInVerbatimString,"End of file in verbatim string begun at or before here" +516,parsEofInComment,"End of file in comment begun at or before here" +517,parsEofInStringInComment,"End of file in string embedded in comment begun at or before here" +518,parsEofInVerbatimStringInComment,"End of file in verbatim string embedded in comment begun at or before here" +519,parsEofInIfOcaml,"End of file in IF-OCAML section begun at or before here" +520,parsEofInDirective,"End of file in directive begun at or before here" +521,parsNoHashEndIfFound,"No #endif found for #if or #else" +522,parsAttributesIgnored,"Attributes have been ignored in this construct" +523,parsUseBindingsIllegalInImplicitClassConstructors,"'use' bindings are not permitted in primary constructors" +524,parsUseBindingsIllegalInModules,"'use' bindings are not permitted in modules and are treated as 'let' bindings" +525,parsIntegerForLoopRequiresSimpleIdentifier,"An integer for loop must use a simple identifier" +526,parsOnlyOneWithAugmentationAllowed,"At most one 'with' augmentation is permitted" +527,parsUnexpectedSemicolon,"A semicolon is not expected at this point" +528,parsUnexpectedEndOfFile,"Unexpected end of input" +529,parsUnexpectedVisibilityDeclaration,"Accessibility modifiers are not permitted here" +530,parsOnlyHashDirectivesAllowed,"Only '#' compiler directives may occur prior to the first 'namespace' declaration" +531,parsVisibilityDeclarationsShouldComePriorToIdentifier,"Accessibility modifiers should come immediately prior to the identifier naming a construct" +532,parsNamespaceOrModuleNotBoth,"Files should begin with either a namespace or module declaration, e.g. 'namespace SomeNamespace.SubNamespace' or 'module SomeNamespace.SomeModule', but not both. To define a module within a namespace use 'module SomeModule = ...'" +534,parsModuleAbbreviationMustBeSimpleName,"A module abbreviation must be a simple name, not a path" +535,parsIgnoreAttributesOnModuleAbbreviation,"Ignoring attributes on module abbreviation" +536,parsIgnoreAttributesOnModuleAbbreviationAlwaysPrivate,"Ignoring accessibility attribute on module abbreviation. Module abbreviations are always private." +537,parsIgnoreVisibilityOnModuleAbbreviationAlwaysPrivate,"Ignoring visibility attribute on module abbreviation. Module abbreviations are always private." +538,parsUnClosedBlockInHashLight,"Unclosed block" +539,parsUnmatchedBeginOrStruct,"Unmatched 'begin' or 'struct'" +541,parsModuleDefnMustBeSimpleName,"A module name must be a simple name, not a path" +542,parsUnexpectedEmptyModuleDefn,"Unexpected empty type moduleDefn list" +parsAttributesMustComeBeforeVal,"Attributes should be placed before 'val'" +543,parsAttributesAreNotPermittedOnInterfaceImplementations,"Attributes are not permitted on interface implementations" +544,parsSyntaxError,"Syntax error" +545,parsAugmentationsIllegalOnDelegateType,"Augmentations are not permitted on delegate type moduleDefns" +546,parsUnmatchedClassInterfaceOrStruct,"Unmatched 'class', 'interface' or 'struct'" +547,parsEmptyTypeDefinition,"A type definition requires one or more members or other declarations. If you intend to define an empty class, struct or interface, then use 'type ... = class end', 'interface end' or 'struct end'." +550,parsUnmatchedWith,"Unmatched 'with' or badly formatted 'with' block" +551,parsGetOrSetRequired,"'get', 'set' or 'get,set' required" +552,parsOnlyClassCanTakeValueArguments,"Only class types may take value arguments" +553,parsUnmatchedBegin,"Unmatched 'begin'" +554,parsInvalidDeclarationSyntax,"Invalid declaration syntax" +555,parsGetAndOrSetRequired,"'get' and/or 'set' required" +556,parsTypeAnnotationsOnGetSet,"Type annotations on property getters and setters must be given after the 'get()' or 'set(v)', e.g. 'with get() : string = ...'" +557,parsGetterMustHaveAtLeastOneArgument,"A getter property is expected to be a function, e.g. 'get() = ...' or 'get(index) = ...'" +558,parsMultipleAccessibilitiesForGetSet,"Multiple accessibilities given for property getter or setter" +559,parsSetSyntax,"Property setters must be defined using 'set value = ', 'set idx value = ' or 'set (idx1,...,idxN) value = ... '" +560,parsInterfacesHaveSameVisibilityAsEnclosingType,"Interfaces always have the same visibility as the enclosing type" +561,parsAccessibilityModsIllegalForAbstract,"Accessibility modifiers are not allowed on this member. Abstract slots always have the same visibility as the enclosing type." +562,parsAttributesIllegalOnInherit,"Attributes are not permitted on 'inherit' declarations" +563,parsVisibilityIllegalOnInherit,"Accessibility modifiers are not permitted on an 'inherits' declaration" +564,parsInheritDeclarationsCannotHaveAsBindings,"'inherit' declarations cannot have 'as' bindings. To access members of the base class when overriding a method, the syntax 'base.SomeMember' may be used; 'base' is a keyword. Remove this 'as' binding." +565,parsAttributesIllegalHere,"Attributes are not allowed here" +566,parsTypeAbbreviationsCannotHaveVisibilityDeclarations,"Accessibility modifiers are not permitted in this position for type abbreviations" +567,parsEnumTypesCannotHaveVisibilityDeclarations,"Accessibility modifiers are not permitted in this position for enum types" +568,parsAllEnumFieldsRequireValues,"All enum fields must be given values" +569,parsInlineAssemblyCannotHaveVisibilityDeclarations,"Accessibility modifiers are not permitted on inline assembly code types" +571,parsUnexpectedIdentifier,"Unexpected identifier: '%s'" +572,parsUnionCasesCannotHaveVisibilityDeclarations,"Accessibility modifiers are not permitted on union cases. Use 'type U = internal ...' or 'type U = private ...' to give an accessibility to the whole representation." +573,parsEnumFieldsCannotHaveVisibilityDeclarations,"Accessibility modifiers are not permitted on enumeration fields" +parsConsiderUsingSeparateRecordType,"Consider using a separate record type instead" +575,parsRecordFieldsCannotHaveVisibilityDeclarations,"Accessibility modifiers are not permitted on record fields. Use 'type R = internal ...' or 'type R = private ...' to give an accessibility to the whole representation." +576,parsLetAndForNonRecBindings,"The declaration form 'let ... and ...' for non-recursive bindings is not used in F# code. Consider using a sequence of 'let' bindings" +583,parsUnmatchedParen,"Unmatched '('" +584,parsSuccessivePatternsShouldBeSpacedOrTupled,"Successive patterns should be separated by spaces or tupled" +586,parsNoMatchingInForLet,"No matching 'in' found for this 'let'" +587,parsErrorInReturnForLetIncorrectIndentation,"Error in the return expression for this 'let'. Possible incorrect indentation." +588,parsExpectedStatementAfterLet,"Block following this '%s' is unfinished. Expect an expression." +589,parsIncompleteIf,"Incomplete conditional. Expected 'if then ' or 'if then else '." +590,parsAssertIsNotFirstClassValue,"'assert' may not be used as a first class value. Use 'assert ' instead." +594,parsIdentifierExpected,"Identifier expected" +595,parsInOrEqualExpected,"'in' or '=' expected" +596,parsArrowUseIsLimited,"The use of '->' in sequence and computation expressions is limited to the form 'for pat in expr -> expr'. Use the syntax 'for ... in ... do ... yield...' to generate elements in more complex sequence expressions." +597,parsSuccessiveArgsShouldBeSpacedOrTupled,"Successive arguments should be separated by spaces or tupled, and arguments involving function or method applications should be parenthesized" +598,parsUnmatchedBracket,"Unmatched '['" +599,parsMissingQualificationAfterDot,"Missing qualification after '.'" +parsParenFormIsForML,"In F# code you may use 'expr.[expr]'. A type annotation may be required to indicate the first expression is an array" +601,parsMismatchedQuote,"Mismatched quotation, beginning with '%s'" +602,parsUnmatched,"Unmatched '%s'" +603,parsUnmatchedBracketBar,"Unmatched '[|'" +604,parsUnmatchedBrace,"Unmatched '{{'" +609,parsFieldBinding,"Field bindings must have the form 'id = expr;'" +610,parsMemberIllegalInObjectImplementation,"This member is not permitted in an object implementation" +611,parsMissingFunctionBody,"Missing function body" +613,parsSyntaxErrorInLabeledType,"Syntax error in labelled type argument" +615,parsUnexpectedInfixOperator,"Unexpected infix operator in type expression" +parsMultiArgumentGenericTypeFormDeprecated,"The syntax '(typ,...,typ) ident' is not used in F# code. Consider using 'ident' instead" +618,parsInvalidLiteralInType,"Invalid literal in type" +619,parsUnexpectedOperatorForUnitOfMeasure,"Unexpected infix operator in unit-of-measure expression. Legal operators are '*', '/' and '^'." +620,parsUnexpectedIntegerLiteralForUnitOfMeasure,"Unexpected integer literal in unit-of-measure expression" +621,parsUnexpectedTypeParameter,"Syntax error: unexpected type parameter specification" +622,parsMismatchedQuotationName,"Mismatched quotation operator name, beginning with '%s'" +623,parsActivePatternCaseMustBeginWithUpperCase,"Active pattern case identifiers must begin with an uppercase letter" +parsNoEqualShouldFollowNamespace,"No '=' symbol should follow a 'namespace' declaration" +parsSyntaxModuleStructEndDeprecated,"The syntax 'module ... = struct .. end' is not used in F# code. Consider using 'module ... = begin .. end'" +parsSyntaxModuleSigEndDeprecated,"The syntax 'module ... : sig .. end' is not used in F# code. Consider using 'module ... = begin .. end'" +# ----------------------------------------------------------------------------- +# tc.fs errors +# ----------------------------------------------------------------------------- +627,tcStaticFieldUsedWhenInstanceFieldExpected,"A static field was used where an instance field is expected" +629,tcMethodNotAccessible,"Method '%s' is not accessible from this code location" +#630,tcTypeFunctionFieldsCannotBeMutated,"Fields which are type functions cannot be mutated" +632,tcImplicitMeasureFollowingSlash,"Implicit product of measures following /" +633,tcUnexpectedMeasureAnon,"Unexpected SynMeasure.Anon" +634,tcNonZeroConstantCannotHaveGenericUnit,"Non-zero constants cannot have generic units. For generic zero, write 0.0<_>." +635,tcSeqResultsUseYield,"In sequence expressions, results are generated using 'yield'" +tcUnexpectedBigRationalConstant,"Unexpected big rational constant" +636,tcInvalidTypeForUnitsOfMeasure,"Units-of-measure supported only on float, float32, decimal and signed integer types" +tcUnexpectedConstUint16Array,"Unexpected Const_uint16array" +tcUnexpectedConstByteArray,"Unexpected Const_bytearray" +640,tcParameterRequiresName,"A parameter with attributes must also be given a name, e.g. '[] Name : Type'" +641,tcReturnValuesCannotHaveNames,"Return values cannot have names" +tcMemberKindPropertyGetSetNotExpected,"MemberKind.PropertyGetSet only expected in parse trees" +201,tcNamespaceCannotContainValues,"Namespaces cannot contain values. Consider using a module to hold your value declarations." +644,tcNamespaceCannotContainExtensionMembers,"Namespaces cannot contain extension members except in the same file and namespace where the type is defined. Consider using a module to hold declarations of extension members." +645,tcMultipleVisibilityAttributes,"Multiple visibility attributes have been specified for this identifier" +646,tcMultipleVisibilityAttributesWithLet,"Multiple visibility attributes have been specified for this identifier. 'let' bindings in classes are always private, as are any 'let' bindings inside expressions." +tcUnrecognizedAccessibilitySpec,"Unrecognized accessibility specification" +tcInvalidMethodNameForRelationalOperator,"The name '(%s)' should not be used as a member name. To define comparison semantics for a type, implement the 'System.IComparable' interface. If defining a static member for use from other CLI languages then use the name '%s' instead." +tcInvalidMethodNameForEquality,"The name '(%s)' should not be used as a member name. To define equality semantics for a type, override the 'Object.Equals' member. If defining a static member for use from other CLI languages then use the name '%s' instead." +tcInvalidMemberName,"The name '(%s)' should not be used as a member name. If defining a static member for use from other CLI languages then use the name '%s' instead." +tcInvalidMemberNameFixedTypes,"The name '(%s)' should not be used as a member name because it is given a standard definition in the F# library over fixed types" +tcInvalidOperatorDefinitionRelational,"The '%s' operator should not normally be redefined. To define overloaded comparison semantics for a particular type, implement the 'System.IComparable' interface in the definition of that type." +tcInvalidOperatorDefinitionEquality,"The '%s' operator should not normally be redefined. To define equality semantics for a type, override the 'Object.Equals' member in the definition of that type." +tcInvalidOperatorDefinition,"The '%s' operator should not normally be redefined. Consider using a different operator name" +tcInvalidIndexOperatorDefinition,"The '%s' operator cannot be redefined. Consider using a different operator name" +tcExpectModuleOrNamespaceParent,"Expected module or namespace parent %s" +647,tcImplementsIComparableExplicitly,"The struct, record or union type '%s' implements the interface 'System.IComparable' explicitly. You must apply the 'CustomComparison' attribute to the type." +648,tcImplementsGenericIComparableExplicitly,"The struct, record or union type '%s' implements the interface 'System.IComparable<_>' explicitly. You must apply the 'CustomComparison' attribute to the type, and should also provide a consistent implementation of the non-generic interface System.IComparable." +649,tcImplementsIStructuralComparableExplicitly,"The struct, record or union type '%s' implements the interface 'System.IStructuralComparable' explicitly. Apply the 'CustomComparison' attribute to the type." +656,tcRecordFieldInconsistentTypes,"This record contains fields from inconsistent types" +657,tcDllImportStubsCannotBeInlined,"DLLImport stubs cannot be inlined" +658,tcStructsCanOnlyBindThisAtMemberDeclaration,"Structs may only bind a 'this' parameter at member declarations" +659,tcUnexpectedExprAtRecInfPoint,"Unexpected expression at recursive inference point" +660,tcLessGenericBecauseOfAnnotation,"This code is less generic than required by its annotations because the explicit type variable '%s' could not be generalized. It was constrained to be '%s'." +661,tcConstrainedTypeVariableCannotBeGeneralized,"One or more of the explicit class or function type variables for this binding could not be generalized, because they were constrained to other types" +662,tcGenericParameterHasBeenConstrained,"A generic type parameter has been used in a way that constrains it to always be '%s'" +663,tcTypeParameterHasBeenConstrained,"This type parameter has been used in a way that constrains it to always be '%s'" +664,tcTypeParametersInferredAreNotStable,"The type parameters inferred for this value are not stable under the erasure of type abbreviations. This is due to the use of type abbreviations which drop or reorder type parameters, e.g. \n\ttype taggedInt<'a> = int or\n\ttype swap<'a,'b> = 'b * 'a.\nConsider declaring the type parameters for this value explicitly, e.g.\n\tlet f<'a,'b> ((x,y) : swap<'b,'a>) : swap<'a,'b> = (y,x)." +665,tcExplicitTypeParameterInvalid,"Explicit type parameters may only be used on module or member bindings" +666,tcOverridingMethodRequiresAllOrNoTypeParameters,"You must explicitly declare either all or no type parameters when overriding a generic abstract method" +667,tcFieldsDoNotDetermineUniqueRecordType,"The field labels and expected type of this record expression or pattern do not uniquely determine a corresponding record type" +668,tcFieldAppearsTwiceInRecord,"The field '%s' appears twice in this record expression or pattern" +669,tcUnknownUnion,"Unknown union case" +670,tcNotSufficientlyGenericBecauseOfScope,"This code is not sufficiently generic. The type variable %s could not be generalized because it would escape its scope." +671,tcPropertyRequiresExplicitTypeParameters,"A property cannot have explicit type parameters. Consider using a method instead." +672,tcConstructorCannotHaveTypeParameters,"A constructor cannot have explicit type parameters. Consider using a static construction method instead." +673,tcInstanceMemberRequiresTarget,"This instance member needs a parameter to represent the object being invoked. Make the member static or use the notation 'member x.Member(args) = ...'." +674,tcUnexpectedPropertyInSyntaxTree,"Unexpected source-level property specification in syntax tree" +675,tcStaticInitializerRequiresArgument,"A static initializer requires an argument" +676,tcObjectConstructorRequiresArgument,"An object constructor requires an argument" +677,tcStaticMemberShouldNotHaveThis,"This static member should not have a 'this' parameter. Consider using the notation 'member Member(args) = ...'." +678,tcExplicitStaticInitializerSyntax,"An explicit static initializer should use the syntax 'static new(args) = expr'" +679,tcExplicitObjectConstructorSyntax,"An explicit object constructor should use the syntax 'new(args) = expr'" +680,tcUnexpectedPropertySpec,"Unexpected source-level property specification" +tcObjectExpressionFormDeprecated,"This form of object expression is not used in F#. Use 'member this.MemberName ... = ...' to define member implementations in object expressions." +682,tcInvalidDeclaration,"Invalid declaration" +683,tcAttributesInvalidInPatterns,"Attributes are not allowed within patterns" +685,tcFunctionRequiresExplicitTypeArguments,"The generic function '%s' must be given explicit type argument(s)" +686,tcDoesNotAllowExplicitTypeArguments,"The method or function '%s' should not be given explicit type argument(s) because it does not declare its type parameters explicitly" +687,tcTypeParameterArityMismatch,"This value, type or method expects %d type parameter(s) but was given %d" +688,tcDefaultStructConstructorCall,"The default, zero-initializing constructor of a struct type may only be used if all the fields of the struct type admit default initialization" +tcCouldNotFindIDisposable,"Couldn't find Dispose on IDisposable, or it was overloaded" +689,tcNonLiteralCannotBeUsedInPattern,"This value is not a literal and cannot be used in a pattern" +690,tcFieldIsReadonly,"This field is readonly" +691,tcNameArgumentsMustAppearLast,"Named arguments must appear after all other arguments" +692,tcFunctionRequiresExplicitLambda,"This function value is being used to construct a delegate type whose signature includes a byref argument. You must use an explicit lambda expression taking %d arguments." +693,tcTypeCannotBeEnumerated,"The type '%s' is not a type whose values can be enumerated with this syntax, i.e. is not compatible with either seq<_>, IEnumerable<_> or IEnumerable and does not have a GetEnumerator method" +694,tcBadReturnTypeForGetEnumerator,"This expression has a method called GetEnumerator, but its return type is a value type. Methods returning struct enumerators cannot be used in this expression form." +695,tcInvalidMixtureOfRecursiveForms,"This recursive binding uses an invalid mixture of recursive forms" +696,tcInvalidObjectConstructionExpression,"This is not a valid object construction expression. Explicit object constructors must either call an alternate constructor or initialize all fields of the object and specify a call to a super class constructor." +697,tcInvalidConstraint,"Invalid constraint" +698,tcInvalidConstraintTypeSealed,"Invalid constraint: the type used for the constraint is sealed, which means the constraint could only be satisfied by at most one solution" +699,tcInvalidEnumConstraint,"An 'enum' constraint must be of the form 'enum'" +700,tcInvalidNewConstraint,"'new' constraints must take one argument of type 'unit' and return the constructed type" +701,tcInvalidPropertyType,"This property has an invalid type. Properties taking multiple indexer arguments should have types of the form 'ty1 * ty2 -> ty3'. Properties returning functions should have types of the form '(ty1 -> ty2)'." +702,tcExpectedUnitOfMeasureMarkWithAttribute,"Expected unit-of-measure parameter, not type parameter. Explicit unit-of-measure parameters must be marked with the [] attribute." +703,tcExpectedTypeParameter,"Expected type parameter, not unit-of-measure parameter" +704,tcExpectedTypeNotUnitOfMeasure,"Expected type, not unit-of-measure" +705,tcExpectedUnitOfMeasureNotType,"Expected unit-of-measure, not type" +706,tcInvalidUnitsOfMeasurePrefix,"Units-of-measure cannot be used as prefix arguments to a type. Rewrite as postfix arguments in angle brackets." +707,tcUnitsOfMeasureInvalidInTypeConstructor,"Unit-of-measure cannot be used in type constructor application" +708,tcRequireBuilderMethod,"This control construct may only be used if the computation expression builder defines a '%s' method" +709,tcTypeHasNoNestedTypes,"This type has no nested types" +711,tcUnexpectedSymbolInTypeExpression,"Unexpected %s in type expression" +712,tcTypeParameterInvalidAsTypeConstructor,"Type parameter cannot be used as type constructor" +713,tcIllegalSyntaxInTypeExpression,"Illegal syntax in type expression" +714,tcAnonymousUnitsOfMeasureCannotBeNested,"Anonymous unit-of-measure cannot be nested inside another unit-of-measure expression" +715,tcAnonymousTypeInvalidInDeclaration,"Anonymous type variables are not permitted in this declaration" +716,tcUnexpectedSlashInType,"Unexpected / in type" +717,tcUnexpectedTypeArguments,"Unexpected type arguments" +718,tcOptionalArgsOnlyOnMembers,"Optional arguments are only permitted on type members" +719,tcNameNotBoundInPattern,"Name '%s' not bound in pattern context" +720,tcInvalidNonPrimitiveLiteralInPatternMatch,"Non-primitive numeric literal constants cannot be used in pattern matches because they can be mapped to multiple different types through the use of a NumericLiteral module. Consider using replacing with a variable, and use 'when = ' at the end of the match clause." +721,tcInvalidTypeArgumentUsage,"Type arguments cannot be specified here" +722,tcRequireActivePatternWithOneResult,"Only active patterns returning exactly one result may accept arguments" +723,tcInvalidArgForParameterizedPattern,"Invalid argument to parameterized pattern label" +724,tcInvalidIndexIntoActivePatternArray,"Internal error. Invalid index into active pattern array" +725,tcUnionCaseDoesNotTakeArguments,"This union case does not take arguments" +726,tcUnionCaseRequiresOneArgument,"This union case takes one argument" +727,tcUnionCaseExpectsTupledArguments,"This union case expects %d arguments in tupled form" +728,tcFieldIsNotStatic,"Field '%s' is not static" +729,tcFieldNotLiteralCannotBeUsedInPattern,"This field is not a literal and cannot be used in a pattern" +730,tcRequireVarConstRecogOrLiteral,"This is not a variable, constant, active recognizer or literal" +731,tcInvalidPattern,"This is not a valid pattern" +tcUseWhenPatternGuard,"Character range matches have been removed in F#. Consider using a 'when' pattern guard instead." +733,tcIllegalPattern,"Illegal pattern" +734,tcSyntaxErrorUnexpectedQMark,"Syntax error - unexpected '?' symbol" +735,tcExpressionCountMisMatch,"Expected %d expressions, got %d" +736,tcExprUndelayed,"TcExprUndelayed: delayed" +737,tcExpressionRequiresSequence,"This expression form may only be used in sequence and computation expressions" +738,tcInvalidObjectExpressionSyntaxForm,"Invalid object expression. Objects without overrides or interfaces should use the expression form 'new Type(args)' without braces." +739,tcInvalidObjectSequenceOrRecordExpression,"Invalid object, sequence or record expression" +740,tcInvalidSequenceExpressionSyntaxForm,"Invalid record, sequence or computation expression. Sequence expressions should be of the form 'seq {{ ... }}'" +tcExpressionWithIfRequiresParenthesis,"This list or array expression includes an element of the form 'if ... then ... else'. Parenthesize this expression to indicate it is an individual element of the list or array, to disambiguate this from a list generated using a sequence expression" +741,tcUnableToParseFormatString,"Unable to parse format string '%s'" +742,tcListLiteralMaxSize,"This list expression exceeds the maximum size for list literals. Use an array for larger literals and call Array.ToList." +743,tcExpressionFormRequiresObjectConstructor,"The expression form 'expr then expr' may only be used as part of an explicit object constructor" +744,tcNamedArgumentsCannotBeUsedInMemberTraits,"Named arguments cannot be given to member trait calls" +745,tcNotValidEnumCaseName,"This is not a valid name for an enumeration case" +746,tcFieldIsNotMutable,"This field is not mutable" +747,tcConstructRequiresListArrayOrSequence,"This construct may only be used within list, array and sequence expressions, e.g. expressions of the form 'seq {{ ... }}', '[ ... ]' or '[| ... |]'. These use the syntax 'for ... in ... do ... yield...' to generate elements" +748,tcConstructRequiresComputationExpressions,"This construct may only be used within computation expressions. To return a value from an ordinary function simply write the expression without 'return'." +749,tcConstructRequiresSequenceOrComputations,"This construct may only be used within sequence or computation expressions" +750,tcConstructRequiresComputationExpression,"This construct may only be used within computation expressions" +751,tcInvalidIndexerExpression,"Invalid indexer expression" +752,tcObjectOfIndeterminateTypeUsedRequireTypeConstraint,"The operator 'expr.[idx]' has been used on an object of indeterminate type based on information prior to this program point. Consider adding further type constraints" +753,tcCannotInheritFromVariableType,"Cannot inherit from a variable type" +754,tcObjectConstructorsOnTypeParametersCannotTakeArguments,"Calls to object constructors on type parameters cannot be given arguments" +755,tcCompiledNameAttributeMisused,"The 'CompiledName' attribute cannot be used with this language element" +756,tcNamedTypeRequired,"'%s' may only be used with named types" +757,tcInheritCannotBeUsedOnInterfaceType,"'inherit' cannot be used on interface types. Consider implementing the interface by using 'interface ... with ... end' instead." +758,tcNewCannotBeUsedOnInterfaceType,"'new' cannot be used on interface types. Consider using an object expression '{{ new ... with ... }}' instead." +759,tcAbstractTypeCannotBeInstantiated,"Instances of this type cannot be created since it has been marked abstract or not all methods have been given implementations. Consider using an object expression '{{ new ... with ... }}' instead." +760,tcIDisposableTypeShouldUseNew,"It is recommended that objects that support the IDisposable interface are created using 'new Type(args)' rather than 'Type(args)' to indicate that resources may be owned by the generated value" +761,tcSyntaxCanOnlyBeUsedToCreateObjectTypes,"'%s' may only be used to construct object types" +762,tcConstructorRequiresCall,"Constructors for the type '%s' must directly or indirectly call its implicit object constructor. Use a call to the implicit object constructor instead of a record expression." +763,tcUndefinedField,"The field '%s' has been given a value, but is not present in the type '%s'" +764,tcFieldRequiresAssignment,"No assignment given for field '%s' of type '%s'" +765,tcExtraneousFieldsGivenValues,"Extraneous fields have been given values" +766,tcObjectExpressionsCanOnlyOverrideAbstractOrVirtual,"Only overrides of abstract and virtual members may be specified in object expressions" +767,tcNoAbstractOrVirtualMemberFound,"The member '%s' does not correspond to any abstract or virtual method available to override or implement" +768,tcArgumentArityMismatch,"The member '%s' does not accept the correct number of arguments, %d arguments are expected" +769,tcArgumentArityMismatchOneOverload,"The member '%s' does not accept the correct number of arguments. One overload accepts %d arguments." +770,tcSimpleMethodNameRequired,"A simple method name is required here" +771,tcPredefinedTypeCannotBeUsedAsSuperType,"The types System.ValueType, System.Enum, System.Delegate, System.MulticastDelegate and System.Array cannot be used as super types in an object expression or class" +772,tcNewMustBeUsedWithNamedType,"'new' must be used with a named type" +773,tcCannotCreateExtensionOfSealedType,"Cannot create an extension of a sealed type" +774,tcNoArgumentsForRecordValue,"No arguments may be given when constructing a record value" +775,tcNoInterfaceImplementationForConstructionExpression,"Interface implementations cannot be given on construction expressions" +776,tcObjectConstructionCanOnlyBeUsedInClassTypes,"Object construction expressions may only be used to implement constructors in class types" +777,tcOnlySimpleBindingsCanBeUsedInConstructionExpressions,"Only simple bindings of the form 'id = expr' can be used in construction expressions" +778,tcObjectsMustBeInitializedWithObjectExpression,"Objects must be initialized by an object construction expression that calls an inherited object constructor and assigns a value to each field" +779,tcExpectedInterfaceType,"Expected an interface type" +780,tcConstructorForInterfacesDoNotTakeArguments,"Constructor expressions for interfaces do not take arguments" +781,tcConstructorRequiresArguments,"This object constructor requires arguments" +782,tcNewRequiresObjectConstructor,"'new' may only be used with object constructors" +783,tcAtLeastOneOverrideIsInvalid,"At least one override did not correctly implement its corresponding abstract member" +784,tcNumericLiteralRequiresModule,"This numeric literal requires that a module '%s' defining functions FromZero, FromOne, FromInt32, FromInt64 and FromString be in scope" +785,tcInvalidRecordConstruction,"Invalid record construction" +786,tcExpressionFormRequiresRecordTypes,"The expression form {{ expr with ... }} may only be used with record types. To build object types use {{ new Type(...) with ... }}" +787,tcInheritedTypeIsNotObjectModelType,"The inherited type is not an object model type" +788,tcObjectConstructionExpressionCanOnlyImplementConstructorsInObjectModelTypes,"Object construction expressions (i.e. record expressions with inheritance specifications) may only be used to implement constructors in object model types. Use 'new ObjectType(args)' to construct instances of object model types outside of constructors" +789,tcEmptyRecordInvalid,"'{{ }}' is not a valid expression. Records must include at least one field. Empty sequences are specified by using Seq.empty or an empty list '[]'." +790,tcTypeIsNotARecordTypeNeedConstructor,"This type is not a record type. Values of class and struct types must be created using calls to object constructors." +791,tcTypeIsNotARecordType,"This type is not a record type" +792,tcConstructIsAmbiguousInComputationExpression,"This construct is ambiguous as part of a computation expression. Nested expressions may be written using 'let _ = (...)' and nested computations using 'let! res = builder {{ ... }}'." +793,tcConstructIsAmbiguousInSequenceExpression,"This construct is ambiguous as part of a sequence expression. Nested expressions may be written using 'let _ = (...)' and nested sequences using 'yield! seq {{... }}'." +794,tcDoBangIllegalInSequenceExpression,"'do!' cannot be used within sequence expressions" +795,tcUseForInSequenceExpression,"The use of 'let! x = coll' in sequence expressions is not permitted. Use 'for x in coll' instead." +796,tcTryIllegalInSequenceExpression,"'try'/'with' cannot be used within sequence expressions" +797,tcUseYieldBangForMultipleResults,"In sequence expressions, multiple results are generated using 'yield!'" +799,tcInvalidAssignment,"Invalid assignment" +800,tcInvalidUseOfTypeName,"Invalid use of a type name" +801,tcTypeHasNoAccessibleConstructor,"This type has no accessible object constructors" +802,tcInvalidUseOfTypeNameOrConstructor,"Invalid use of a type name and/or object constructor. If necessary use 'new' and apply the constructor to its arguments, e.g. 'new Type(args)'." +803,tcInvalidUseOfTypeNameOrConstructorWithOverloads,"Invalid use of a type name and/or object constructor. If necessary use 'new' and apply the constructor to its arguments, e.g. 'new Type(args)'. The required signature is:\n\t%s." +804,tcInvalidUseOfInterfaceType,"Invalid use of an interface type" +805,tcInvalidUseOfDelegate,"Invalid use of a delegate constructor. Use the syntax 'new Type(args)' or just 'Type(args)'." +806,tcPropertyIsNotStatic,"Property '%s' is not static" +807,tcPropertyIsNotReadable,"Property '%s' is not readable" +808,tcLookupMayNotBeUsedHere,"This lookup cannot be used here" +809,tcPropertyIsStatic,"Property '%s' is static" +810,tcPropertyCannotBeSet1,"Property '%s' cannot be set" +811,tcConstructorsCannotBeFirstClassValues,"Constructors must be applied to arguments and cannot be used as first-class values. If necessary use an anonymous function '(fun arg1 ... argN -> new Type(arg1,...,argN))'." +812,tcSyntaxFormUsedOnlyWithRecordLabelsPropertiesAndFields,"The syntax 'expr.id' may only be used with record labels, properties and fields" +813,tcEventIsStatic,"Event '%s' is static" +814,tcEventIsNotStatic,"Event '%s' is not static" +815,tcNamedArgumentDidNotMatch,"The named argument '%s' did not match any argument or mutable property" +816,tcOverloadsCannotHaveCurriedArguments,"One or more of the overloads of this method has curried arguments. Consider redesigning these members to take arguments in tupled form." +tcUnnamedArgumentsDoNotFormPrefix,"The unnamed arguments do not form a prefix of the arguments of the method called" +817,tcStaticOptimizationConditionalsOnlyForFSharpLibrary,"Static optimization conditionals are only for use within the F# library" +818,tcFormalArgumentIsNotOptional,"The corresponding formal argument is not optional" +819,tcInvalidOptionalAssignmentToPropertyOrField,"Invalid optional assignment to a property or field" +820,tcDelegateConstructorMustBePassed,"A delegate constructor must be passed a single function value" +821,tcBindingCannotBeUseAndRec,"A binding cannot be marked both 'use' and 'rec'" +823,tcVolatileOnlyOnClassLetBindings,"The 'VolatileField' attribute may only be used on 'let' bindings in classes" +824,tcAttributesAreNotPermittedOnLetBindings,"Attributes are not permitted on 'let' bindings in expressions" +825,tcDefaultValueAttributeRequiresVal,"The 'DefaultValue' attribute may only be used on 'val' declarations" +826,tcConditionalAttributeRequiresMembers,"The 'ConditionalAttribute' attribute may only be used on members" +827,tcInvalidActivePatternName,"This is not a valid name for an active pattern" +828,tcEntryPointAttributeRequiresFunctionInModule,"The 'EntryPointAttribute' attribute may only be used on function definitions in modules" +829,tcMutableValuesCannotBeInline,"Mutable values cannot be marked 'inline'" +830,tcMutableValuesMayNotHaveGenericParameters,"Mutable values cannot have generic parameters" +831,tcMutableValuesSyntax,"Mutable function values should be written 'let mutable f = (fun args -> ...)'" +832,tcOnlyFunctionsCanBeInline,"Only functions may be marked 'inline'" +833,tcIllegalAttributesForLiteral,"A literal value cannot be given the [] or [] attributes" +834,tcLiteralCannotBeMutable,"A literal value cannot be marked 'mutable'" +835,tcLiteralCannotBeInline,"A literal value cannot be marked 'inline'" +836,tcLiteralCannotHaveGenericParameters,"Literal values cannot have generic parameters" +837,tcInvalidConstantExpression,"This is not a valid constant expression" +838,tcTypeIsInaccessible,"This type is not accessible from this code location" +839,tcUnexpectedConditionInImportedAssembly,"Unexpected condition in imported assembly: failed to decode AttributeUsage attribute" +840,tcUnrecognizedAttributeTarget,"Unrecognized attribute target. Valid attribute targets are 'assembly', 'module', 'type', 'method', 'property', 'return', 'param', 'field', 'event', 'constructor'." +841,tcAttributeIsNotValidForLanguageElementUseDo,"This attribute is not valid for use on this language element. Assembly attributes should be attached to a 'do ()' declaration, if necessary within an F# module." +842,tcAttributeIsNotValidForLanguageElement,"This attribute is not valid for use on this language element" +843,tcOptionalArgumentsCannotBeUsedInCustomAttribute,"Optional arguments cannot be used in custom attributes" +844,tcPropertyCannotBeSet0,"This property cannot be set" +845,tcPropertyOrFieldNotFoundInAttribute,"This property or field was not found on this custom attribute type" +846,tcCustomAttributeMustBeReferenceType,"A custom attribute must be a reference type" +847,tcCustomAttributeArgumentMismatch,"The number of args for a custom attribute does not match the expected number of args for the attribute constructor" +848,tcCustomAttributeMustInvokeConstructor,"A custom attribute must invoke an object constructor" +849,tcAttributeExpressionsMustBeConstructorCalls,"Attribute expressions must be calls to object constructors" +850,tcUnsupportedAttribute,"This attribute cannot be used in this version of F#" +851,tcInvalidInlineSpecification,"Invalid inline specification" +852,tcInvalidUseBinding,"'use' bindings must be of the form 'use = '" +853,tcAbstractMembersIllegalInAugmentation,"Abstract members are not permitted in an augmentation - they must be defined as part of the type itself" +854,tcMethodOverridesIllegalHere,"Method overrides and interface implementations are not permitted here" +855,tcNoMemberFoundForOverride,"No abstract or interface member was found that corresponds to this override" +856,tcOverrideArityMismatch,"This override takes a different number of arguments to the corresponding abstract member" +857,tcDefaultImplementationAlreadyExists,"This method already has a default implementation" +858,tcDefaultAmbiguous,"The method implemented by this default is ambiguous" +859,tcNoPropertyFoundForOverride,"No abstract property was found that corresponds to this override" +860,tcAbstractPropertyMissingGetOrSet,"This property overrides or implements an abstract property but the abstract property doesn't have a corresponding %s" +861,tcInvalidSignatureForSet,"Invalid signature for set member" +862,tcPropertyAlreadyHasDefaultImplementation,"This property already has a default implementation" +863,tcPropertyImplementedIsAmbiguous,"The property implemented by this default is ambiguous" +864,tcNewMemberHidesAbstractMember,"This new member hides the abstract member '%s'. Rename the member or use 'override' instead." +864,tcNewMemberHidesAbstractMemberWithSuffix,"This new member hides the abstract member '%s' once tuples, functions, units of measure and/or provided types are erased. Rename the member or use 'override' instead." +865,tcStaticInitializersIllegalInInterface,"Interfaces cannot contain definitions of static initializers" +866,tcObjectConstructorsIllegalInInterface,"Interfaces cannot contain definitions of object constructors" +867,tcMemberOverridesIllegalInInterface,"Interfaces cannot contain definitions of member overrides" +868,tcConcreteMembersIllegalInInterface,"Interfaces cannot contain definitions of concrete members. You may need to define a constructor on your type to indicate that the type is a class." +869,tcConstructorsDisallowedInExceptionAugmentation,"Constructors cannot be specified in exception augmentations" +870,tcStructsCannotHaveConstructorWithNoArguments,"Structs cannot have an object constructor with no arguments. This is a restriction imposed on all CLI languages as structs automatically support a default constructor." +871,tcConstructorsIllegalForThisType,"Constructors cannot be defined for this type" +872,tcRecursiveBindingsWithMembersMustBeDirectAugmentation,"Recursive bindings that include member specifications can only occur as a direct augmentation of a type" +873,tcOnlySimplePatternsInLetRec,"Only simple variable patterns can be bound in 'let rec' constructs" +874,tcOnlyRecordFieldsAndSimpleLetCanBeMutable,"Only record fields and simple 'let' bindings may be marked mutable" +875,tcMemberIsNotSufficientlyGeneric,"This member is not sufficiently generic" +876,tcLiteralAttributeRequiresConstantValue,"A declaration may only be the [] attribute if a constant value is also given, e.g. 'val x : int = 1'" +877,tcValueInSignatureRequiresLiteralAttribute,"A declaration may only be given a value in a signature if the declaration has the [] attribute" +878,tcThreadStaticAndContextStaticMustBeStatic,"Thread-static and context-static variables must be static and given the [] attribute to indicate that the value is initialized to the default value on each new thread" +879,tcVolatileFieldsMustBeMutable,"Volatile fields must be marked 'mutable' and cannot be thread-static" +880,tcUninitializedValFieldsMustBeMutable,"Uninitialized 'val' fields must be mutable and marked with the '[]' attribute. Consider using a 'let' binding instead of a 'val' field." +881,tcStaticValFieldsMustBeMutableAndPrivate,"Static 'val' fields in types must be mutable, private and marked with the '[]' attribute. They are initialized to the 'null' or 'zero' value for their type. Consider also using a 'static let mutable' binding in a class type." +882,tcFieldRequiresName,"This field requires a name" +883,tcInvalidNamespaceModuleTypeUnionName,"Invalid namespace, module, type or union case name" +884,tcIllegalFormForExplicitTypeDeclaration,"Explicit type declarations for constructors must be of the form 'ty1 * ... * tyN -> resTy'. Parentheses may be required around 'resTy'" +885,tcReturnTypesForUnionMustBeSameAsType,"Return types of union cases must be identical to the type being defined, up to abbreviations" +886,tcInvalidEnumerationLiteral,"This is not a valid value for an enumeration literal" +887,tcTypeIsNotInterfaceType1,"The type '%s' is not an interface type" +888,tcDuplicateSpecOfInterface,"Duplicate specification of an interface" +889,tcFieldValIllegalHere,"A field/val declaration is not permitted here" +890,tcInheritIllegalHere,"A inheritance declaration is not permitted here" +892,tcModuleRequiresQualifiedAccess,"This declaration opens the module '%s', which is marked as 'RequireQualifiedAccess'. Adjust your code to use qualified references to the elements of the module instead, e.g. 'List.map' instead of 'map'. This change will ensure that your code is robust as new constructs are added to libraries." +893,tcOpenUsedWithPartiallyQualifiedPath,"This declaration opens the namespace or module '%s' through a partially qualified path. Adjust this code to use the full path of the namespace. This change will make your code more robust as new constructs are added to the F# and CLI libraries." +894,tcLocalClassBindingsCannotBeInline,"Local class bindings cannot be marked inline. Consider lifting the definition out of the class or else do not mark it as inline." +895,tcTypeAbbreviationsMayNotHaveMembers,"Type abbreviations cannot have members" +896,tcEnumerationsMayNotHaveMembers,"Enumerations cannot have members" +897,tcMeasureDeclarationsRequireStaticMembers,"Measure declarations may have only static members" +tcStructsMayNotContainDoBindings,"Structs cannot contain 'do' bindings because the default constructor for structs would not execute these bindings" +901,tcStructsMayNotContainLetBindings,"Structs cannot contain value definitions because the default constructor for structs will not execute these bindings. Consider adding additional arguments to the primary constructor for the type." +902,tcStaticLetBindingsRequireClassesWithImplicitConstructors,"Static value definitions may only be used in types with a primary constructor. Consider adding arguments to the type definition, e.g. 'type X(args) = ...'." +904,tcMeasureDeclarationsRequireStaticMembersNotConstructors,"Measure declarations may have only static members: constructors are not available" +905,tcMemberAndLocalClassBindingHaveSameName,"A member and a local class binding both have the name '%s'" +906,tcTypeAbbreviationsCannotHaveInterfaceDeclaration,"Type abbreviations cannot have interface declarations" +907,tcEnumerationsCannotHaveInterfaceDeclaration,"Enumerations cannot have interface declarations" +908,tcTypeIsNotInterfaceType0,"This type is not an interface type" +909,tcAllImplementedInterfacesShouldBeDeclared,"All implemented interfaces should be declared on the initial declaration of the type" +910,tcDefaultImplementationForInterfaceHasAlreadyBeenAdded,"A default implementation of this interface has already been added because the explicit implementation of the interface was not specified at the definition of the type" +911,tcMemberNotPermittedInInterfaceImplementation,"This member is not permitted in an interface implementation" +912,tcDeclarationElementNotPermittedInAugmentation,"This declaration element is not permitted in an augmentation" +913,tcTypesCannotContainNestedTypes,"Types cannot contain nested type definitions" +tcTypeExceptionOrModule,"type, exception or module" +tcTypeOrModule,"type or module" +914,tcImplementsIStructuralEquatableExplicitly,"The struct, record or union type '%s' implements the interface 'System.IStructuralEquatable' explicitly. Apply the 'CustomEquality' attribute to the type." +915,tcImplementsIEquatableExplicitly,"The struct, record or union type '%s' implements the interface 'System.IEquatable<_>' explicitly. Apply the 'CustomEquality' attribute to the type and provide a consistent implementation of the non-generic override 'System.Object.Equals(obj)'." +916,tcExplicitTypeSpecificationCannotBeUsedForExceptionConstructors,"Explicit type specifications cannot be used for exception constructors" +917,tcExceptionAbbreviationsShouldNotHaveArgumentList,"Exception abbreviations should not have argument lists" +918,tcAbbreviationsFordotNetExceptionsCannotTakeArguments,"Abbreviations for Common IL exceptions cannot take arguments" +919,tcExceptionAbbreviationsMustReferToValidExceptions,"Exception abbreviations must refer to existing exceptions or F# types deriving from System.Exception" +920,tcAbbreviationsFordotNetExceptionsMustHaveMatchingObjectConstructor,"Abbreviations for Common IL exception types must have a matching object constructor" +921,tcNotAnException,"Not an exception" +#922,tcUnexpectedConstraintsOrParametersOnModule,"Unexpected constraints or parameters on module specification" +924,tcInvalidModuleName,"Invalid module name" +925,tcInvalidTypeExtension,"Invalid type extension" +926,tcAttributesOfTypeSpecifyMultipleKindsForType,"The attributes of this type specify multiple kinds for the type" +927,tcKindOfTypeSpecifiedDoesNotMatchDefinition,"The kind of the type specified by its attributes does not match the kind implied by its definition" +928,tcMeasureDefinitionsCannotHaveTypeParameters,"Measure definitions cannot have type parameters" +929,tcTypeRequiresDefinition,"This type requires a definition" +tcTypeAbbreviationHasTypeParametersMissingOnType,"This type abbreviation has one or more declared type parameters that do not appear in the type being abbreviated. Type abbreviations must use all declared type parameters in the type being abbreviated. Consider removing one or more type parameters, or use a concrete type definition that wraps an underlying type, such as 'type C<'a> = C of ...'." +931,tcStructsInterfacesEnumsDelegatesMayNotInheritFromOtherTypes,"Structs, interfaces, enums and delegates cannot inherit from other types" +932,tcTypesCannotInheritFromMultipleConcreteTypes,"Types cannot inherit from multiple concrete types" +934,tcRecordsUnionsAbbreviationsStructsMayNotHaveAllowNullLiteralAttribute,"Records, union, abbreviations and struct types cannot have the 'AllowNullLiteral' attribute" +935,tcAllowNullTypesMayOnlyInheritFromAllowNullTypes,"Types with the 'AllowNullLiteral' attribute may only inherit from or implement types which also allow the use of the null literal" +936,tcGenericTypesCannotHaveStructLayout,"Generic types cannot be given the 'StructLayout' attribute" +937,tcOnlyStructsCanHaveStructLayout,"Only structs and classes without primary constructors may be given the 'StructLayout' attribute" +938,tcRepresentationOfTypeHiddenBySignature,"The representation of this type is hidden by the signature. It must be given an attribute such as [], [] or [] to indicate the characteristics of the type." +939,tcOnlyClassesCanHaveAbstract,"Only classes may be given the 'AbstractClass' attribute" +940,tcOnlyTypesRepresentingUnitsOfMeasureCanHaveMeasure,"Only types representing units-of-measure may be given the 'Measure' attribute" +941,tcOverridesCannotHaveVisibilityDeclarations,"Accessibility modifiers are not permitted on overrides or interface implementations" +942,tcTypesAreAlwaysSealedDU,"Discriminated union types are always sealed" +942,tcTypesAreAlwaysSealedRecord,"Record types are always sealed" +942,tcTypesAreAlwaysSealedAssemblyCode,"Assembly code types are always sealed" +942,tcTypesAreAlwaysSealedStruct,"Struct types are always sealed" +942,tcTypesAreAlwaysSealedDelegate,"Delegate types are always sealed" +942,tcTypesAreAlwaysSealedEnum,"Enum types are always sealed" +943,tcInterfaceTypesAndDelegatesCannotContainFields,"Interface types and delegate types cannot contain fields" +944,tcAbbreviatedTypesCannotBeSealed,"Abbreviated types cannot be given the 'Sealed' attribute" +945,tcCannotInheritFromSealedType,"Cannot inherit a sealed type" +946,tcCannotInheritFromInterfaceType,"Cannot inherit from interface type. Use interface ... with instead." +947,tcStructTypesCannotContainAbstractMembers,"Struct types cannot contain abstract members" +948,tcInterfaceTypesCannotBeSealed,"Interface types cannot be sealed" +949,tcInvalidDelegateSpecification,"Delegate specifications must be of the form 'typ -> typ'" +950,tcDelegatesCannotBeCurried,"Delegate specifications must not be curried types. Use 'typ * ... * typ -> typ' for multi-argument delegates, and 'typ -> (typ -> typ)' for delegates returning function values." +951,tcInvalidTypeForLiteralEnumeration,"Literal enumerations must have type int, uint, int16, uint16, int64, uint64, byte, sbyte or char" +#952,tcTypeAbbreviationMustBePublic,"Type abbreviations must be public. If you want to use a private type abbreviation you must use an explicit signature." +953,tcTypeDefinitionIsCyclic,"This type definition involves an immediate cyclic reference through an abbreviation" +954,tcTypeDefinitionIsCyclicThroughInheritance,"This type definition involves an immediate cyclic reference through a struct field or inheritance relation" +tcReservedSyntaxForAugmentation,"The syntax 'type X with ...' is reserved for augmentations. Types whose representations are hidden but which have members are now declared in signatures using 'type X = ...'. You may also need to add the '[] attribute to the type definition in the signature" +956,tcMembersThatExtendInterfaceMustBePlacedInSeparateModule,"Members that extend interface, delegate or enum types must be placed in a module separate to the definition of the type. This module must either have the AutoOpen attribute or be opened explicitly by client code to bring the extension members into scope." +957,tcDeclaredTypeParametersForExtensionDoNotMatchOriginal,"The declared type parameters for this type extension do not match the declared type parameters on the original type '%s'" +959,tcTypeDefinitionsWithImplicitConstructionMustHaveOneInherit,"Type definitions may only have one 'inherit' specification and it must be the first declaration" +960,tcTypeDefinitionsWithImplicitConstructionMustHaveLocalBindingsBeforeMembers,"'let' and 'do' bindings must come before member and interface definitions in type definitions" +961,tcInheritDeclarationMissingArguments,"This 'inherit' declaration specifies the inherited type but no arguments. Consider supplying arguments, e.g. 'inherit BaseType(args)'." +962,tcInheritConstructionCallNotPartOfImplicitSequence,"This 'inherit' declaration has arguments, but is not in a type with a primary constructor. Consider adding arguments to your type definition, e.g. 'type X(args) = ...'." +963,tcLetAndDoRequiresImplicitConstructionSequence,"This definition may only be used in a type with a primary constructor. Consider adding arguments to your type definition, e.g. 'type X(args) = ...'." +964,tcTypeAbbreviationsCannotHaveAugmentations,"Type abbreviations cannot have augmentations" +965,tcModuleAbbreviationForNamespace,"The path '%s' is a namespace. A module abbreviation may not abbreviate a namespace." +966,tcTypeUsedInInvalidWay,"The type '%s' is used in an invalid way. A value prior to '%s' has an inferred type involving '%s', which is an invalid forward reference." +967,tcMemberUsedInInvalidWay,"The member '%s' is used in an invalid way. A use of '%s' has been inferred prior to the definition of '%s', which is an invalid forward reference." +#968,tcExplicitSignaturesInImplementationFileCannotBeUsed,"Explicit signatures within implementation files are not permitted" +#969,tcModulesCannotUseNamedModuleSignatures,"Modules cannot use named module signature definitions" +970,tcAttributeAutoOpenWasIgnored,"The attribute 'AutoOpen(\"%s\")' in the assembly '%s' did not refer to a valid module or namespace in that assembly and has been ignored" +# ----------------------------------------------------------------------------- +# ilxgen errors +# ----------------------------------------------------------------------------- +971,ilUndefinedValue,"Undefined value '%s'" +972,ilLabelNotFound,"Label %s not found" +973,ilIncorrectNumberOfTypeArguments,"Incorrect number of type arguments to local call" +ilDynamicInvocationNotSupported,"Dynamic invocation of %s is not supported" +975,ilAddressOfLiteralFieldIsInvalid,"Taking the address of a literal field is invalid" +976,ilAddressOfValueHereIsInvalid,"This operation involves taking the address of a value '%s' represented using a local variable or other special representation. This is invalid." +978,ilValuesWithLiteralAttributeCannotBeMutable,"Values marked with 'LiteralAttribute' cannot be mutable" +979,ilValuesWithLiteralAttributeMustBeSimple,"Values marked with 'LiteralAttribute' must currently be simple integer, character, Boolean, string or floating point constants" +980,ilCustomMarshallersCannotBeUsedInFSharp,"Custom marshallers cannot be specified in F# code. Consider using a C# helper function." +981,ilMarshalAsAttributeCannotBeDecoded,"The MarshalAs attribute could not be decoded" +982,ilSignatureForExternalFunctionContainsTypeParameters,"The signature for this external function contains type parameters. Constrain the argument and return types to indicate the types of the corresponding C function." +983,ilDllImportAttributeCouldNotBeDecoded,"The DllImport attribute could not be decoded" +984,ilLiteralFieldsCannotBeSet,"Literal fields cannot be set" +985,ilStaticMethodIsNotLambda,"GenSetStorage: %s was represented as a static method but was not an appropriate lambda expression" +986,ilMutableVariablesCannotEscapeMethod,"Mutable variables cannot escape their method" +987,ilUnexpectedUnrealizedValue,"Compiler error: unexpected unrealized value" +988,ilMainModuleEmpty,"Main module of program is empty: nothing will happen when it is run" +989,ilTypeCannotBeUsedForLiteralField,"This type cannot be used for a literal field" +990,ilUnexpectedGetSetAnnotation,"Unexpected GetSet annotation on a property" +991,ilFieldOffsetAttributeCouldNotBeDecoded,"The FieldOffset attribute could not be decoded" +992,ilStructLayoutAttributeCouldNotBeDecoded,"The StructLayout attribute could not be decoded" +993,ilDefaultAugmentationAttributeCouldNotBeDecoded,"The DefaultAugmentation attribute could not be decoded" +994,ilReflectedDefinitionsCannotUseSliceOperator,"Reflected definitions cannot contain uses of the prefix splice operator '%%'" +# ----------------------------------------------------------------------------- +# fscopts text +# ----------------------------------------------------------------------------- +1000,optsProblemWithCodepage,"Problem with codepage '%d': %s" +optsCopyright,"Freely distributed under the Apache 2.0 Open Source License" +optsNameOfOutputFile,"Name of the output file (Short form: -o)" +optsBuildConsole,"Build a console executable" +optsBuildWindows,"Build a Windows executable" +optsBuildLibrary,"Build a library (Short form: -a)" +optsBuildModule,"Build a module that can be added to another assembly" +optsDelaySign,"Delay-sign the assembly using only the public portion of the strong name key" +optsWriteXml,"Write the xmldoc of the assembly to the given file" +optsStrongKeyFile,"Specify a strong name key file" +optsStrongKeyContainer,"Specify a strong name key container" +optsPlatform,"Limit which platforms this code can run on: x86, Itanium, x64, anycpu32bitpreferred, or anycpu. The default is anycpu." +optsNoOpt,"Only include optimization information essential for implementing inlined constructs. Inhibits cross-module inlining but improves binary compatibility." +optsNoInterface,"Don't add a resource to the generated assembly containing F#-specific metadata" +optsSig,"Print the inferred interface of the assembly to a file" +optsReference,"Reference an assembly (Short form: -r)" +optsWin32res,"Specify a Win32 resource file (.res)" +optsWin32manifest,"Specify a Win32 manifest file" +optsNowin32manifest,"Do not include the default Win32 manifest" +optsResource,"Embed the specified managed resource" +optsLinkresource,"Link the specified resource to this assembly where the resinfo format is [,[,public|private]]" +optsDebugPM,"Emit debug information (Short form: -g)" +optsDebug,"Specify debugging type: full, pdbonly. ('full' is the default and enables attaching a debugger to a running program)." +optsOptimize,"Enable optimizations (Short form: -O)" +optsTailcalls,"Enable or disable tailcalls" +optsCrossoptimize,"Enable or disable cross-module optimizations" +optsWarnaserrorPM,"Report all warnings as errors" +optsWarnaserror,"Report specific warnings as errors" +optsWarn,"Set a warning level (0-5)" +optsNowarn,"Disable specific warning messages" +optsWarnOn,"Enable specific warnings that may be off by default" +optsChecked,"Generate overflow checks" +optsDefine,"Define conditional compilation symbols (Short form: -d)" +optsMlcompatibility,"Ignore ML compatibility warnings" +optsNologo,"Suppress compiler copyright message" +optsHelp,"Display this usage message (Short form: -?)" +optsCodepage,"Specify the codepage used to read source files" +optsUtf8output,"Output messages in UTF-8 encoding" +optsFullpaths,"Output messages with fully qualified paths" +optsLib,"Specify a directory for the include path which is used to resolve source files and assemblies (Short form: -I)" +optsBaseaddress,"Base address for the library to be built" +optsNoframework,"Do not reference the default CLI assemblies by default" +optsStandalone,"Statically link the F# library and all referenced DLLs that depend on it into the assembly being generated" +optsStaticlink,"Statically link the given assembly and all referenced DLLs that depend on this assembly. Use an assembly name e.g. mylib, not a DLL name." +optsResident,"Use a resident background compilation service to improve compiler startup times." +optsPdb,"Name the output debug file" +optsSimpleresolution,"Resolve assembly references using directory-based rules rather than MSBuild resolution" +1048,optsUnrecognizedTarget,"Unrecognized target '%s', expected 'exe', 'winexe', 'library' or 'module'" +1049,optsUnrecognizedDebugType,"Unrecognized debug type '%s', expected 'pdbonly' or 'full'" +1050,optsInvalidWarningLevel,"Invalid warning level '%d'" +optsShortFormOf,"Short form of '%s'" +optsClirootDeprecatedMsg,"The command-line option '--cliroot' has been deprecated. Use an explicit reference to a specific copy of mscorlib.dll instead." +optsClirootDescription,"Use to override where the compiler looks for mscorlib.dll and framework components" +optsHelpBannerOutputFiles,"- OUTPUT FILES -" +optsHelpBannerInputFiles,"- INPUT FILES -" +optsHelpBannerResources,"- RESOURCES -" +optsHelpBannerCodeGen,"- CODE GENERATION -" +optsHelpBannerAdvanced,"- ADVANCED -" +optsHelpBannerMisc,"- MISCELLANEOUS -" +optsHelpBannerLanguage,"- LANGUAGE -" +optsHelpBannerErrsAndWarns,"- ERRORS AND WARNINGS -" +1063,optsUnknownArgumentToTheTestSwitch,"Unknown --test argument: '%s'" +1064,optsUnknownPlatform,"Unrecognized platform '%s', valid values are 'x86', 'x64', 'Itanium', 'anycpu32bitpreferred', and 'anycpu'" +optsInternalNoDescription,"The command-line option '%s' is for internal use only" +optsDCLONoDescription,"The command-line option '%s' has been deprecated" +optsDCLODeprecatedSuggestAlternative,"The command-line option '%s' has been deprecated. Use '%s' instead." +optsDCLOHtmlDoc,"The command-line option '%s' has been deprecated. HTML document generation is now part of the F# Power Pack, via the tool FsHtmlDoc.exe." +optsConsoleColors,"Output warning and error messages in color" +optsUseHighEntropyVA,"Enable high-entropy ASLR" +optsSubSystemVersion,"Specify subsystem version of this assembly" +1051,optsInvalidSubSystemVersion,"Invalid version '%s' for '--subsystemversion'. The version must be 4.00 or greater." +# ----------------------------------------------------------------------------- +# service.fs strings +# ----------------------------------------------------------------------------- +typeInfoFullName,"Full name" +typeInfoType,"type" +typeInfoInherits,"inherits" +typeInfoImplements,"implements" +typeInfoOtherOverloads,"and %d other overloads" +typeInfoUnionCase,"union case" +typeInfoActivePatternResult,"active pattern result" +typeInfoActiveRecognizer,"active recognizer" +typeInfoField,"field" +typeInfoEvent,"event" +typeInfoProperty,"property" +typeInfoCustomOperation,"custom operation" +typeInfoArgument,"argument" +typeInfoPatternVariable,"patvar" +typeInfoNamespace,"namespace" +typeInfoModule,"module" +typeInfoNamespaceOrModule,"namespace/module" +typeInfoFromFirst,"from %s" +typeInfoFromNext,"also from %s" +typeInfoGeneratedProperty,"generated property" +typeInfoGeneratedType,"generated type" +assemblyResolutionFoundByAssemblyFoldersKey,"Found by AssemblyFolders registry key" +assemblyResolutionFoundByAssemblyFoldersExKey,"Found by AssemblyFoldersEx registry key" +assemblyResolutionNetFramework,".NET Framework" +assemblyResolutionGAC,"Global Assembly Cache" +# ----------------------------------------------------------------------------- +# infos.fs errors +# ----------------------------------------------------------------------------- +1089,recursiveClassHierarchy,"Recursive class hierarchy in type '%s'" +1090,InvalidRecursiveReferenceToAbstractSlot,"Invalid recursive reference to an abstract slot" +1091,eventHasNonStandardType,"The event '%s' has a non-standard type. If this event is declared in another CLI language, you may need to access this event using the explicit %s and %s methods for the event. If this event is declared in F#, make the type of the event an instantiation of either 'IDelegateEvent<_>' or 'IEvent<_,_>'." +1092,typeIsNotAccessible,"The type '%s' is not accessible from this code location" +1093,unionCasesAreNotAccessible,"The union cases or fields of the type '%s' are not accessible from this code location" +1094,valueIsNotAccessible,"The value '%s' is not accessible from this code location" +1095,unionCaseIsNotAccessible,"The union case '%s' is not accessible from this code location" +1096,fieldIsNotAccessible,"The record, struct or class field '%s' is not accessible from this code location" +1097,structOrClassFieldIsNotAccessible,"The struct or class field '%s' is not accessible from this code location" +experimentalConstruct,"This construct is experimental" +1099,noInvokeMethodsFound,"No Invoke methods found for delegate type" +moreThanOneInvokeMethodFound,"More than one Invoke method found for delegate type" +1101,delegatesNotAllowedToHaveCurriedSignatures,"Delegates are not allowed to have curried signatures" +# ----------------------------------------------------------------------------- +# tlr.fs errors +# ----------------------------------------------------------------------------- +1102,tlrUnexpectedTExpr,"Unexpected Expr.TyChoose" +1103,tlrLambdaLiftingOptimizationsNotApplied,"Note: Lambda-lifting optimizations have not been applied because of the use of this local constrained generic function as a first class value. Adding type constraints may resolve this condition." +# ----------------------------------------------------------------------------- +# lexhelp.fs errors +# ----------------------------------------------------------------------------- +1104,lexhlpIdentifiersContainingAtSymbolReserved,"Identifiers containing '@' are reserved for use in F# code generation" +lexhlpIdentifierReserved,"The identifier '%s' is reserved for future use by F#" +# ----------------------------------------------------------------------------- +# patcompile.fs errors +# ----------------------------------------------------------------------------- +1106,patcMissingVariable,"Missing variable '%s'" +1107,patcPartialActivePatternsGenerateOneResult,"Partial active patterns may only generate one result" +# ----------------------------------------------------------------------------- +# import.fs errors +# ----------------------------------------------------------------------------- +1108,impTypeRequiredUnavailable,"The type '%s' is required here and is unavailable. You must add a reference to assembly '%s'." +1109,impReferencedTypeCouldNotBeFoundInAssembly,"A reference to the type '%s' in assembly '%s' was found, but the type could not be found in that assembly" +1110,impNotEnoughTypeParamsInScopeWhileImporting,"Internal error or badly formed metadata: not enough type parameters were in scope while importing" +1111,impReferenceToDllRequiredByAssembly,"A reference to the DLL %s is required by assembly %s. The imported type %s is located in the first assembly and could not be resolved." +1112,impImportedAssemblyUsesNotPublicType,"An imported assembly uses the type '%s' but that type is not public" +# ----------------------------------------------------------------------------- +# opt.fs errors +# ----------------------------------------------------------------------------- +1113,optValueMarkedInlineButIncomplete,"The value '%s' was marked inline but its implementation makes use of an internal or private function which is not sufficiently accessible" +1114,optValueMarkedInlineButWasNotBoundInTheOptEnv,"The value '%s' was marked inline but was not bound in the optimization environment" +1115,optLocalValueNotFoundDuringOptimization,"Local value %s not found during optimization" +1116,optValueMarkedInlineHasUnexpectedValue,"A value marked as 'inline' has an unexpected value" +1117,optValueMarkedInlineCouldNotBeInlined,"A value marked as 'inline' could not be inlined" +1118,optFailedToInlineValue,"Failed to inline the value '%s' marked 'inline', perhaps because a recursive value was marked 'inline'" +1119,optRecursiveValValue,"Recursive ValValue %s" +# ----------------------------------------------------------------------------- +# lexfilter.fs errors +# ----------------------------------------------------------------------------- +lexfltIncorrentIndentationOfIn,"The indentation of this 'in' token is incorrect with respect to the corresponding 'let'" +lexfltTokenIsOffsideOfContextStartedEarlier,"Possible incorrect indentation: this token is offside of context started at position %s. Try indenting this token further or using standard formatting conventions." +lexfltSeparatorTokensOfPatternMatchMisaligned,"The '|' tokens separating rules of this pattern match are misaligned by one column. Consider realigning your code or using further indentation." +# ----------------------------------------------------------------------------- +# nameres.fs errors +# ----------------------------------------------------------------------------- +1123,nrInvalidModuleExprType,"Invalid module/expression/type" +1124,nrTypeInstantiationNeededToDisambiguateTypesWithSameName,"Multiple types exist called '%s', taking different numbers of generic parameters. Provide a type instantiation to disambiguate the type resolution, e.g. '%s'." +1125,nrTypeInstantiationIsMissingAndCouldNotBeInferred,"The instantiation of the generic type '%s' is missing and can't be inferred from the arguments or return type of this member. Consider providing a type instantiation when accessing this type, e.g. '%s'." +1126,nrGlobalUsedOnlyAsFirstName,"'global' may only be used as the first name in a qualified path" +1127,nrIsNotConstructorOrLiteral,"This is not a constructor or literal, or a constructor is being used incorrectly" +1128,nrUnexpectedEmptyLongId,"Unexpected empty long identifier" +1129,nrTypeDoesNotContainSuchField,"The type '%s' does not contain a field '%s'" +1130,nrInvalidFieldLabel,"Invalid field label" +1132,nrInvalidExpression,"Invalid expression '%s'" +1133,nrNoConstructorsAvailableForType,"No constructors are available for the type '%s'" +# ----------------------------------------------------------------------------- +# ilwrite.fs errors +# ----------------------------------------------------------------------------- +1135,ilwriteErrorCreatingPdb,"Unexpected error creating debug information file '%s'" +# ----------------------------------------------------------------------------- +# lex.fsl errors +# ----------------------------------------------------------------------------- +1138,lexOutsideIntegerRange,"This number is outside the allowable range for this integer type" +lexCharNotAllowedInOperatorNames,"'%s' is not permitted as a character in operator names and is reserved for future use" +lexUnexpectedChar,"Unexpected character '%s'" +1140,lexByteArrayCannotEncode,"This byte array literal contains characters that do not encode as a single byte" +1141,lexIdentEndInMarkReserved,"Identifiers followed by '%s' are reserved for future use" +1142,lexOutsideEightBitSigned,"This number is outside the allowable range for 8-bit signed integers" +1143,lexOutsideEightBitSignedHex,"This number is outside the allowable range for hexadecimal 8-bit signed integers" +1144,lexOutsideEightBitUnsigned,"This number is outside the allowable range for 8-bit unsigned integers" +1145,lexOutsideSixteenBitSigned,"This number is outside the allowable range for 16-bit signed integers" +1146,lexOutsideSixteenBitUnsigned,"This number is outside the allowable range for 16-bit unsigned integers" +1147,lexOutsideThirtyTwoBitSigned,"This number is outside the allowable range for 32-bit signed integers" +1148,lexOutsideThirtyTwoBitUnsigned,"This number is outside the allowable range for 32-bit unsigned integers" +1149,lexOutsideSixtyFourBitSigned,"This number is outside the allowable range for 64-bit signed integers" +1150,lexOutsideSixtyFourBitUnsigned,"This number is outside the allowable range for 64-bit unsigned integers" +1151,lexOutsideNativeSigned,"This number is outside the allowable range for signed native integers" +1152,lexOutsideNativeUnsigned,"This number is outside the allowable range for unsigned native integers" +1153,lexInvalidFloat,"Invalid floating point number" +1154,lexOusideDecimal,"This number is outside the allowable range for decimal literals" +1155,lexOusideThirtyTwoBitFloat,"This number is outside the allowable range for 32-bit floats" +1156,lexInvalidNumericLiteral,"This is not a valid numeric literal. Sample formats include 4, 0x4, 0b0100, 4L, 4UL, 4u, 4s, 4us, 4y, 4uy, 4.0, 4.0f, 4I." +1157,lexInvalidByteLiteral,"This is not a valid byte literal" +1158,lexInvalidCharLiteral,"This is not a valid character literal" +1159,lexThisUnicodeOnlyInStringLiterals,"This Unicode encoding is only valid in string literals" +1160,lexTokenReserved,"This token is reserved for future use" +1161,lexTabsNotAllowed,"TABs are not allowed in F# code unless the #indent \"off\" option is used" +1162,lexInvalidLineNumber,"Invalid line number: '%s'" +1163,lexHashIfMustBeFirst,"#if directive must appear as the first non-whitespace character on a line" +lexHashElseNoMatchingIf,"#else has no matching #if" +lexHashEndifRequiredForElse,"#endif required for #else" +1166,lexHashElseMustBeFirst,"#else directive must appear as the first non-whitespace character on a line" +lexHashEndingNoMatchingIf,"#endif has no matching #if" +1168,lexHashEndifMustBeFirst,"#endif directive must appear as the first non-whitespace character on a line" +1169,lexHashIfMustHaveIdent,"#if directive should be immediately followed by an identifier" +1170,lexWrongNestedHashEndif,"Syntax error. Wrong nested #endif, unexpected tokens before it." +1171,lexExpectedSingleLineComment,"Expected single line comment or end of line" +1172,memberOperatorDefinitionWithNoArguments,"Infix operator member '%s' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ..." +1173,memberOperatorDefinitionWithNonPairArgument,"Infix operator member '%s' has %d initial argument(s). Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ..." +1174,memberOperatorDefinitionWithCurriedArguments,"Infix operator member '%s' has extra curried arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ..." +1175,tcFSharpCoreRequiresExplicit,"All record, union and struct types in FSharp.Core.dll must be explicitly labelled with 'StructuralComparison' or 'NoComparison'" +1176,tcStructuralComparisonNotSatisfied1,"The struct, record or union type '%s' has the 'StructuralComparison' attribute but the type parameter '%s' does not satisfy the 'comparison' constraint. Consider adding the 'comparison' constraint to the type parameter" +1177,tcStructuralComparisonNotSatisfied2,"The struct, record or union type '%s' has the 'StructuralComparison' attribute but the component type '%s' does not satisfy the 'comparison' constraint" +1178,tcNoComparisonNeeded1,"The struct, record or union type '%s' is not structurally comparable because the type parameter %s does not satisfy the 'comparison' constraint. Consider adding the 'NoComparison' attribute to the type '%s' to clarify that the type is not comparable" +1178,tcNoComparisonNeeded2,"The struct, record or union type '%s' is not structurally comparable because the type '%s' does not satisfy the 'comparison' constraint. Consider adding the 'NoComparison' attribute to the type '%s' to clarify that the type is not comparable" +1178,tcNoEqualityNeeded1,"The struct, record or union type '%s' does not support structural equality because the type parameter %s does not satisfy the 'equality' constraint. Consider adding the 'NoEquality' attribute to the type '%s' to clarify that the type does not support structural equality" +1178,tcNoEqualityNeeded2,"The struct, record or union type '%s' does not support structural equality because the type '%s' does not satisfy the 'equality' constraint. Consider adding the 'NoEquality' attribute to the type '%s' to clarify that the type does not support structural equality" +1179,tcStructuralEqualityNotSatisfied1,"The struct, record or union type '%s' has the 'StructuralEquality' attribute but the type parameter '%s' does not satisfy the 'equality' constraint. Consider adding the 'equality' constraint to the type parameter" +1180,tcStructuralEqualityNotSatisfied2,"The struct, record or union type '%s' has the 'StructuralEquality' attribute but the component type '%s' does not satisfy the 'equality' constraint" +1181,tcStructsMustDeclareTypesOfImplicitCtorArgsExplicitly,"Each argument of the primary constructor for a struct must be given a type, for example 'type S(x1:int, x2: int) = ...'. These arguments determine the fields of the struct." +1182,chkUnusedValue,"The value '%s' is unused" +1183,chkUnusedThisVariable,"The recursive object reference '%s' is unused. The presence of a recursive object reference adds runtime initialization checks to members in this and derived types. Consider removing this recursive object reference." +1184,parsGetterAtMostOneArgument,"A getter property may have at most one argument group" +1185,parsSetterAtMostTwoArguments,"A setter property may have at most two argument groups" +1186,parsInvalidProperty,"Invalid property getter or setter" +1187,parsIndexerPropertyRequiresAtLeastOneArgument,"An indexer property must be given at least one argument" +1188,tastInvalidAddressOfMutableAcrossAssemblyBoundary,"This operation accesses a mutable top-level value defined in another assembly in an unsupported way. The value cannot be accessed through its address. Consider copying the expression to a mutable local, e.g. 'let mutable x = ...', and if necessary assigning the value back after the completion of the operation" +1189,parsNonAdjacentTypars,"Type parameters must be placed directly adjacent to the type name, e.g. \"type C<'T>\", not type \"C <'T>\"" +1190,parsNonAdjacentTyargs,"Type arguments must be placed directly adjacent to the type name, e.g. \"C<'T>\", not \"C <'T>\"" +parsNonAtomicType,"The use of the type syntax 'int C' and 'C ' is not permitted here. Consider adjusting this type to be written in the form 'C'" +1191,tastUndefinedTyconItemField,"The type %s did not contain the field '%s'" +1192,tastUndefinedTyconItemUnionCase,"The type %s did not contain the union case '%s'" +1193,tastUndefinedItemRefModuleNamespace,"The module/namespace '%s' from compilation unit '%s' did not contain the module/namespace '%s'" +1194,tastUndefinedItemRefVal,"The module/namespace '%s' from compilation unit '%s' did not contain the val '%s'" +1195,tastUndefinedItemRefModuleNamespaceType,"The module/namespace '%s' from compilation unit '%s' did not contain the namespace, module or type '%s'" +1196,tcInvalidUseNullAsTrueValue,"The 'UseNullAsTrueValue' attribute flag may only be used with union types that have one nullary case and at least one non-nullary case" +1197,tcParameterInferredByref,"The parameter '%s' was inferred to have byref type. Parameters of byref type must be given an explicit type annotation, e.g. 'x1: byref'. When used, a byref parameter is implicitly dereferenced." +1198,tcNonUniformMemberUse,"The generic member '%s' has been used at a non-uniform instantiation prior to this program point. Consider reordering the members so this member occurs first. Alternatively, specify the full type of the member explicitly, including argument types, return type and any additional generic parameters and constraints." +1199,tcNamedArgumentsCannotBeUsedInUnionCaseConstructions,"The use of named arguments in union case expressions is reserved for future use. Arguments of the form 'a=b' should be parenthesized." +1200,tcAttribArgsDiffer,"The attribute '%s' appears in both the implementation and the signature, but the attribute arguments differ. Only the attribute from the signature will be included in the compiled code." +1201,tcCannotCallAbstractBaseMember,"Cannot call an abstract base member: '%s'" +1202,typrelCannotResolveAmbiguityInUnmanaged,"Could not resolve the ambiguity in the use of a generic construct with an 'unmanaged' constraint at or near this position" +#1203 - used for error in FSharp.Core CompilerMessage message +#1204 - used for error in FSharp.Core CompilerMessage message +mlCompatMessage,"This construct is for ML compatibility. %s. You can disable this warning by using '--mlcompatibility' or '--nowarn:62'." +#1205,chkDuplicateInherittedVirtualMethod,"Duplicate virtual methods. There are multiple virtual methods named '%s' with the same signature in the parent (inherited) type. This may be a result of instantiating the parent type." +1206,ilFieldDoesNotHaveValidOffsetForStructureLayout,"The type '%s' has been marked as having an Explicit layout, but the field '%s' has not been marked with the 'FieldOffset' attribute" +1207,tcInterfacesShouldUseInheritNotInterface,"Interfaces inherited by other interfaces should be declared using 'inherit ...' instead of 'interface ...'" +1208,parsInvalidPrefixOperator,"Invalid prefix operator" +1208,parsInvalidPrefixOperatorDefinition,"Invalid operator definition. Prefix operator definitions must use a valid prefix operator name." +buildCompilingExtensionIsForML,"The file extensions '.ml' and '.mli' are for ML compatibility" +lexIndentOffForML,"Consider using a file with extension '.ml' or '.mli' instead" +1209,activePatternIdentIsNotFunctionTyped,"Active pattern '%s' is not a function" +1210,activePatternChoiceHasFreeTypars,"Active pattern '%s' has a result type containing type variables that are not determined by the input. The common cause is a when a result case is not mentioned, e.g. 'let (|A|B|) (x:int) = A x'. This can be fixed with a type constraint, e.g. 'let (|A|B|) (x:int) : Choice = A x'" +1211,ilFieldHasOffsetForSequentialLayout,"The FieldOffset attribute can only be placed on members of types marked with the StructLayout(LayoutKind.Explicit)" +1212,tcOptionalArgsMustComeAfterNonOptionalArgs,"Optional arguments must come at the end of the argument list, after any non-optional arguments" +1213,tcConditionalAttributeUsage,"Attribute 'System.Diagnostics.ConditionalAttribute' is only valid on methods or attribute classes" +#1214,monoRegistryBugWorkaround,"Could not determine highest installed .NET framework version from Registry keys, using version 2.0" +1215,tcMemberOperatorDefinitionInExtrinsic,"Extension members cannot provide operator overloads. Consider defining the operator as part of the type definition instead." +1216,ilwriteMDBFileNameCannotBeChangedWarning,"The name of the MDB file must be .mdb. The --pdb option will be ignored." +1217,ilwriteMDBMemberMissing,"MDB generation failed. Could not find compatible member %s" +1218,ilwriteErrorCreatingMdb,"Cannot generate MDB debug information. Failed to load the 'MonoSymbolWriter' type from the 'Mono.CompilerServices.SymbolWriter.dll' assembly." +1219,tcUnionCaseNameConflictsWithGeneratedType,"The union case named '%s' conflicts with the generated type '%s'" +1220,chkNoReflectedDefinitionOnStructMember,"ReflectedDefinitionAttribute may not be applied to an instance member on a struct type, because the instance member takes an implicit 'this' byref parameter" +1221,tcDllImportNotAllowed,"DLLImport bindings must be static members in a class or function definitions in a module" +1222,buildExplicitCoreLibRequiresNoFramework,"When mscorlib.dll or FSharp.Core.dll is explicitly referenced the %s option must also be passed" +1223,buildExpectedSigdataFile,"FSharp.Core.sigdata not found alongside FSharp.Core" +1224,buildDidNotExpectOptDataResource,"Did not expect to find optdata resource in FSharp.Core.dll" +1225,buildExpectedFileAlongSideFSharpCore,"File '%s' not found alongside FSharp.Core" +1226,buildDidNotExpectSigdataResource,"Did not expect to find sigdata resource in FSharp.Core.dll" +1227,buildUnexpectedFileNameCharacter,"Filename '%s' contains invalid character '%s'" +1228,tcInvalidUseBangBinding,"'use!' bindings must be of the form 'use! = '" +1230,crefNoInnerGenericsInQuotations,"Inner generic functions are not permitted in quoted expressions. Consider adding some type constraints until this function is no longer generic." +1231,tcEnumTypeCannotBeEnumerated,"The type '%s' is not a valid enumerator type , i.e. does not have a 'MoveNext()' method returning a bool, and a 'Current' property" +1232,parsEofInTripleQuoteString,"End of file in triple-quote string begun at or before here" +1233,parsEofInTripleQuoteStringInComment,"End of file in triple-quote string embedded in comment begun at or before here" +1240,tcTypeTestLosesMeasures,"This type test or downcast will ignore the unit-of-measure '%s'" +1241,parsMissingTypeArgs,"Expected type argument or static argument" +1242,parsMissingGreaterThan,"Unmatched '<'. Expected closing '>'" +1243,parsUnexpectedQuotationOperatorInTypeAliasDidYouMeanVerbatimString,"Unexpected quotation operator '<@' in type definition. If you intend to pass a verbatim string as a static argument to a type provider, put a space between the '<' and '@' characters." +1244,parsErrorParsingAsOperatorName,"Attempted to parse this as an operator name, but failed" +# Fsc.exe resource strings +fscTooManyErrors,"Exiting - too many errors" +2001,docfileNoXmlSuffix,"The documentation file has no .xml suffix" +2002,fscNoImplementationFiles,"No implementation files specified" +2003,fscBadAssemblyVersion,"An AssemblyVersionAttribute specified version '%s', but this value is invalid and has been ignored" +2004,fscTwoResourceManifests,"Conflicting options specified: 'win32manifest' and 'win32res'. Only one of these can be used." +2005,fscQuotationLiteralsStaticLinking,"The code in assembly '%s' makes uses of quotation literals. Static linking may not include components that make use of quotation literals." +2006,fscQuotationLiteralsStaticLinking0,"Code in this assembly makes uses of quotation literals. Static linking may not include components that make use of quotation literals." +2007,fscStaticLinkingNoEXE,"Static linking may not include a .EXE" +2008,fscStaticLinkingNoMixedDLL,"Static linking may not include a mixed managed/unmanaged DLL" +2009,fscIgnoringMixedWhenLinking,"Ignoring mixed managed/unmanaged assembly '%s' during static linking" +2011,fscAssumeStaticLinkContainsNoDependencies,"Assembly '%s' was referenced transitively and the assembly could not be resolved automatically. Static linking will assume this DLL has no dependencies on the F# library or other statically linked DLLs. Consider adding an explicit reference to this DLL." +2012,fscAssemblyNotFoundInDependencySet,"Assembly '%s' not found in dependency set of target binary. Statically linked roots should be specified using an assembly name, without a DLL or EXE extension. If this assembly was referenced explicitly then it is possible the assembly was not actually required by the generated binary, in which case it should not be statically linked." +2013,fscKeyFileCouldNotBeOpened,"The key file '%s' could not be opened" +2014,fscProblemWritingBinary,"A problem occurred writing the binary '%s': %s" +2015,fscAssemblyVersionAttributeIgnored,"The 'AssemblyVersionAttribute' has been ignored because a version was given using a command line option" +2016,fscAssemblyCultureAttributeError,"Error emitting 'System.Reflection.AssemblyCultureAttribute' attribute -- 'Executables cannot be satellite assemblies, Culture should always be empty'" +2017,fscDelaySignWarning,"Option '--delaysign' overrides attribute 'System.Reflection.AssemblyDelaySignAttribute' given in a source file or added module" +2018,fscKeyFileWarning,"Option '--keyfile' overrides attribute 'System.Reflection.AssemblyKeyFileAttribute' given in a source file or added module" +2019,fscKeyNameWarning,"Option '--keycontainer' overrides attribute 'System.Reflection.AssemblyNameAttribute' given in a source file or added module" +2020,fscReferenceOnCommandLine,"The assembly '%s' is listed on the command line. Assemblies should be referenced using a command line flag such as '-r'." +2021,fscRemotingError,"The resident compilation service was not used because a problem occured in communicating with the server." +2022,pathIsInvalid,"Problem with filename '%s': Illegal characters in path." +2023,fscResxSourceFileDeprecated,"Passing a .resx file (%s) as a source file to the compiler is deprecated. Use resgen.exe to transform the .resx file into a .resources file to pass as a --resource option. If you are using MSBuild, this can be done via an item in the .fsproj project file." +# ----------------------------------------------------------------------------- +# Extension typing errors +# ----------------------------------------------------------------------------- +3000,etIllegalCharactersInNamespaceName,"Character '%s' is not allowed in provided namespace name '%s'" +3001,etNullOrEmptyMemberName,"The provided type '%s' returned a member with a null or empty member name" +3002,etNullMember,"The provided type '%s' returned a null member" +3003,etNullMemberDeclaringType,"The provided type '%s' member info '%s' has null declaring type" +3004,etNullMemberDeclaringTypeDifferentFromProvidedType,"The provided type '%s' has member '%s' which has declaring type '%s'. Expected declaring type to be the same as provided type." +3005,etHostingAssemblyFoundWithoutHosts,"Referenced assembly '%s' has assembly level attribute '%s' but no public type provider classes were found" +3006,etEmptyNamespaceOfTypeNotAllowed,"Type '%s' from type provider '%s' has an empty namespace. Use 'null' for the global namespace." +3007,etEmptyNamespaceNotAllowed,"Empty namespace found from the type provider '%s'. Use 'null' for the global namespace." +3011,etMustNotBeGeneric,"Provided type '%s' has 'IsGenericType' as true, but generic types are not supported." +3013,etMustNotBeAnArray,"Provided type '%s' has 'IsArray' as true, but array types are not supported." +3014,etMethodHasRequirements,"Invalid member '%s' on provided type '%s'. Provided type members must be public, and not be generic, virtual, or abstract." +3015,etUnsupportedMemberKind,"Invalid member '%s' on provided type '%s'. Only properties, methods and constructors are allowed" +3016,etPropertyCanReadButHasNoGetter,"Property '%s' on provided type '%s' has CanRead=true but there was no value from GetGetMethod()" +3017,etPropertyHasGetterButNoCanRead,"Property '%s' on provided type '%s' has CanRead=false but GetGetMethod() returned a method" +3018,etPropertyCanWriteButHasNoSetter,"Property '%s' on provided type '%s' has CanWrite=true but there was no value from GetSetMethod()" +3019,etPropertyHasSetterButNoCanWrite,"Property '%s' on provided type '%s' has CanWrite=false but GetSetMethod() returned a method" +3020,etOneOrMoreErrorsSeenDuringExtensionTypeSetting,"One or more errors seen during provided type setup" +3021,etUnexpectedExceptionFromProvidedTypeMember,"Unexpected exception from provided type '%s' member '%s': %s" +3022,etUnsupportedConstantType,"Unsupported constant type '%s'" +3025,etUnsupportedProvidedExpression,"Unsupported expression '%s' from type provider. If you are the author of this type provider, consider adjusting it to provide a different provided expression." +3028,etProvidedTypeHasUnexpectedName,"Expected provided type named '%s' but provided type has 'Name' with value '%s'" +3029,etEventNoAdd,"Event '%s' on provided type '%s' has no value from GetAddMethod()" +3030,etEventNoRemove,"Event '%s' on provided type '%s' has no value from GetRemoveMethod()" +3031,etProviderHasWrongDesignerAssembly,"Assembly attribute '%s' refers to a designer assembly '%s' which cannot be loaded or doesn't exist. %s" +3032,etProviderDoesNotHaveValidConstructor,"The type provider does not have a valid constructor. A constructor taking either no arguments or one argument of type 'TypeProviderConfig' was expected." +3033,etProviderError,"The type provider '%s' reported an error: %s" +3034,etIncorrectParameterExpression,"The type provider '%s' used an invalid parameter in the ParameterExpression: %s" +3035,etIncorrectProvidedMethod,"The type provider '%s' provided a method with a name '%s' and metadata token '%d', which is not reported among its methods of its declaring type '%s'" +3036,etIncorrectProvidedConstructor,"The type provider '%s' provided a constructor which is not reported among the constructors of its declaring type '%s'" +3039,etDirectReferenceToGeneratedTypeNotAllowed,"A direct reference to the generated type '%s' is not permitted. Instead, use a type definition, e.g. 'type TypeAlias = '. This indicates that a type provider adds generated types to your assembly." +3041,etProvidedTypeHasUnexpectedPath,"Expected provided type with path '%s' but provided type has path '%s'" +3042,etUnexpectedNullFromProvidedTypeMember,"Unexpected 'null' return value from provided type '%s' member '%s'" +3043,etUnexpectedExceptionFromProvidedMemberMember,"Unexpected exception from member '%s' of provided type '%s' member '%s': %s" +3044,etNestedProvidedTypesDoNotTakeStaticArgumentsOrGenericParameters,"Nested provided types do not take static arguments or generic parameters" +3045,etInvalidStaticArgument,"Invalid static argument to provided type. Expected an argument of kind '%s'." +3046,etErrorApplyingStaticArgumentsToType,"An error occured applying the static arguments to a provided type" +3047,etUnknownStaticArgumentKind,"Unknown static argument kind '%s' when resolving a reference to a provided type '%s'" +invalidNamespaceForProvidedType,"invalid namespace for provided type" +invalidFullNameForProvidedType,"invalid full name for provided type" +#3050,etGenerateAttributeRequiresInternal,"The 'Generate' attribute must be used with a type definition with 'internal' visibility" +3051,etProviderReturnedNull,"The type provider returned 'null', which is not a valid return value from '%s'" +3053,etTypeProviderConstructorException,"The type provider constructor has thrown an exception: %s" +3056,etNullProvidedExpression,"Type provider '%s' returned null from GetInvokerExpression." +3057,etProvidedAppliedTypeHadWrongName,"The type provider '%s' returned an invalid type from 'ApplyStaticArguments'. A type with name '%s' was expected, but a type with name '%s' was returned." +3060,tcTypeTestLossy,"This type test or downcast will erase the provided type '%s' to the type '%s'" +3061,tcTypeCastErased,"This downcast will erase the provided type '%s' to the type '%s'." +3062,tcTypeTestErased,"This type test with a provided type '%s' is not allowed because this provided type will be erased to '%s' at runtime." +3063,tcCannotInheritFromErasedType,"Cannot inherit from erased provided type" +3065,etInvalidTypeProviderAssemblyName,"Assembly '%s' hase TypeProviderAssembly attribute with invalid value '%s'. The value should be a valid assembly name" +3066,tcInvalidMemberNameCtor,"Invalid member name. Members may not have name '.ctor' or '.cctor'" +3068,tcInferredGenericTypeGivesRiseToInconsistency,"The function or member '%s' is used in a way that requires further type annotations at its definition to ensure consistency of inferred types. The inferred signature is '%s'." +3069,tcInvalidTypeArgumentCount,"The number of type arguments did not match: '%d' given, '%d' expected. This may be related to a previously reported error." +3070,tcCannotOverrideSealedMethod,"Cannot override inherited member '%s' because it is sealed" +3071,etProviderErrorWithContext,"The type provider '%s' reported an error in the context of provided type '%s', member '%s'. The error: %s" +3072,etProvidedTypeWithNameException,"An exception occurred when accessing the '%s' of a provided type: %s" +3073,etProvidedTypeWithNullOrEmptyName,"The '%s' of a provided type was null or empty." +3075,etIllegalCharactersInTypeName,"Character '%s' is not allowed in provided type name '%s'" +3077,tcJoinMustUseSimplePattern,"In queries, '%s' must use a simple pattern" +3078,tcMissingCustomOperation,"A custom query operation for '%s' is required but not specified" +3080,etBadUnnamedStaticArgs,"Named static arguments must come after all unnamed static arguments" +3081,etStaticParameterRequiresAValue,"The static parameter '%s' of the provided type '%s' requires a value. Static parameters to type providers may be optionally specified using named arguments, e.g. '%s<%s=...>'." +3082,etNoStaticParameterWithName,"No static parameter exists with name '%s'" +3083,etStaticParameterAlreadyHasValue,"The static parameter '%s' has already been given a value" +3084,etMultipleStaticParameterWithName,"Multiple static parameters exist with name '%s'" +3085,tcCustomOperationMayNotBeUsedInConjunctionWithNonSimpleLetBindings,"A custom operation may not be used in conjunction with a non-value or recursive 'let' binding in another part of this computation expression" +3086,tcCustomOperationMayNotBeUsedHere,"A custom operation may not be used in conjunction with 'use', 'try/with', 'try/finally', 'if/then/else' or 'match' operators within this computation expression" +3087,tcCustomOperationMayNotBeOverloaded,"The custom operation '%s' refers to a method which is overloaded. The implementations of custom operations may not be overloaded." +3088,tcTryFinallyMayNotBeUsedWithCustomOperators,"A try/finally expression may not be used within a computation expression with uses of custom operators. Consider using a sequence expression instead." +3089,tcTryWithMayNotBeUsedWithCustomOperators,"A try/with expression may not be used within a within a computation expression with uses of custom operators. Consider using a sequence expression instead." +3090,tcIfThenElseMayNotBeUsedWithCustomOperators,"An if/then/else expression may not be used within a computation expression with uses of custom operators. Consider using either an if/then expression, or use a sequence expression instead." +3091,ilxgenUnexpectedArgumentToMethodHandleOfDuringCodegen,"Invalid argument to 'methodhandleof' during codegen" +3092,etProvidedTypeReferenceMissingArgument,"A reference to a provided type was missing a value for the static parameter '%s'. You may need to recompile one or more referenced assemblies." +3093,etProvidedTypeReferenceInvalidText,"A reference to a provided type had an invalid value '%s' for a static parameter. You may need to recompile one or more referenced assemblies." +3095,tcCustomOperationNotUsedCorrectly,"'%s' is not used correctly. This is a custom operation in this query or computation expression." +3095,tcCustomOperationNotUsedCorrectly2,"'%s' is not used correctly. Usage: %s. This is a custom operation in this query or computation expression." +customOperationTextLikeJoin,"%s var in collection %s (outerKey = innerKey). Note that parentheses are required after '%s'" +customOperationTextLikeGroupJoin,"%s var in collection %s (outerKey = innerKey) into group. Note that parentheses are required after '%s'" +customOperationTextLikeZip,"%s collection into var" +3096,tcBinaryOperatorRequiresVariable,"'%s' must be followed by a variable name. Usage: %s." +3097,tcOperatorIncorrectSyntax,"Incorrect syntax for '%s'. Usage: %s." +3098,tcBinaryOperatorRequiresBody,"'%s' must come after a 'for' selection clause and be followed by the rest of the query. Syntax: ... %s ..." +3099,tcCustomOperationHasIncorrectArgCount,"'%s' is used with an incorrect number of arguments. This is a custom operation in this query or computation expression. Expected %d argument(s), but given %d." +3100,parsExpectedExpressionAfterToken,"Expected an expression after this point" +3101,parsExpectedTypeAfterToken,"Expected a type after this point" +3102,parsUnmatchedLBrackLess,"Unmatched '[<'. Expected closing '>]'" +3103,parsUnexpectedEndOfFileMatch,"Unexpected end of input in 'match' expression. Expected 'match with | -> | -> ...'." +3104,parsUnexpectedEndOfFileTry,"Unexpected end of input in 'try' expression. Expected 'try with ' or 'try finally '." +3105,parsUnexpectedEndOfFileWhile,"Unexpected end of input in 'while' expression. Expected 'while do '." +3106,parsUnexpectedEndOfFileFor,"Unexpected end of input in 'for' expression. Expected 'for in do '." +3107,parsUnexpectedEndOfFileWith,"Unexpected end of input in 'match' or 'try' expression" +3108,parsUnexpectedEndOfFileThen,"Unexpected end of input in 'then' branch of conditional expression. Expected 'if then ' or 'if then else '." +3109,parsUnexpectedEndOfFileElse,"Unexpected end of input in 'else' branch of conditional expression. Expected 'if then ' or 'if then else '." +3110,parsUnexpectedEndOfFileFunBody,"Unexpected end of input in body of lambda expression. Expected 'fun ... -> '." +3111,parsUnexpectedEndOfFileTypeArgs,"Unexpected end of input in type arguments" +3112,parsUnexpectedEndOfFileTypeSignature,"Unexpected end of input in type signature" +3113,parsUnexpectedEndOfFileTypeDefinition,"Unexpected end of input in type definition" +3114,parsUnexpectedEndOfFileObjectMembers,"Unexpected end of input in object members" +3115,parsUnexpectedEndOfFileDefinition,"Unexpected end of input in value, function or member definition" +3116,parsUnexpectedEndOfFileExpression,"Unexpected end of input in expression" +3117,parsExpectedNameAfterToken,"Unexpected end of type. Expected a name after this point." +3118,parsUnmatchedLet,"Incomplete value or function definition. If this is in an expression, the body of the expression must be indented to the same column as the 'let' keyword." +3119,parsUnmatchedLetBang,"Incomplete value definition. If this is in an expression, the body of the expression must be indented to the same column as the 'let!' keyword." +3120,parsUnmatchedUseBang,"Incomplete value definition. If this is in an expression, the body of the expression must be indented to the same column as the 'use!' keyword." +3121,parsUnmatchedUse,"Incomplete value definition. If this is in an expression, the body of the expression must be indented to the same column as the 'use' keyword." +3122,parsWhileDoExpected,"Missing 'do' in 'while' expression. Expected 'while do '." +3123,parsForDoExpected,"Missing 'do' in 'for' expression. Expected 'for in do '." +3125,tcInvalidRelationInJoin,"Invalid join relation in '%s'. Expected 'expr expr', where is =, =?, ?= or ?=?." +typeInfoCallsWord,"Calls" +3126,impInvalidNumberOfGenericArguments,"Invalid number of generic arguments to type '%s' in provided type. Expected '%d' arguments, given '%d'." +3127,impInvalidMeasureArgument1,"Invalid value '%s' for unit-of-measure parameter '%s'" +3127,impInvalidMeasureArgument2,"Invalid value unit-of-measure parameter '%s'" +3128,etPropertyNeedsCanWriteOrCanRead,"Property '%s' on provided type '%s' is neither readable nor writable as it has CanRead=false and CanWrite=false" +3129,tcIntoNeedsRestOfQuery,"A use of 'into' must be followed by the remainder of the computation" +3130,tcOperatorDoesntAcceptInto,"The operator '%s' does not accept the use of 'into'" +3131,tcCustomOperationInvalid,"The definition of the custom operator '%s' does not use a valid combination of attribute flags" +3132,tcThisTypeMayNotHaveACLIMutableAttribute,"This type definition may not have the 'CLIMutable' attribute. Only record types may have this attribute." +3133,tcAutoPropertyRequiresImplicitConstructionSequence,"'member val' definitions are only permitted in types with a primary constructor. Consider adding arguments to your type definition, e.g. 'type X(args) = ...'." +3134,parsMutableOnAutoPropertyShouldBeGetSet,"Property definitions may not be declared mutable. To indicate that this property can be set, use 'member val PropertyName = expr with get,set'." +3135,parsMutableOnAutoPropertyShouldBeGetSetNotJustSet,"To indicate that this property can be set, use 'member val PropertyName = expr with get,set'." +3136,chkNoByrefsOfByrefs,"Type '%s' is illegal because in byref, T cannot contain byref types." +3137,etTypeProviderNotApproved,"Type provider assembly '%s' is not trusted and will not be loaded for security reasons. This may cause subsequent build errors. See the 'F# Tools' section of Visual Studio options for more information." +3138,tastopsMaxArrayFour,"F# supports a maximum array rank of 4" +3139,tcNoIntegerForLoopInQuery,"In queries, use the form 'for x in n .. m do ...' for ranging over integers" +3140,tcNoWhileInQuery,"'while' expressions may not be used in queries" +3141,tcNoTryFinallyInQuery,"'try/finally' expressions may not be used in queries" +3142,tcUseMayNotBeUsedInQueries,"'use' expressions may not be used in queries" +3143,tcBindMayNotBeUsedInQueries,"'let!', 'use!' and 'do!' expressions may not be used in queries" +3144,tcReturnMayNotBeUsedInQueries,"'return' and 'return!' may not be used in queries" +3145,tcUnrecognizedQueryOperator,"This is not a known query operator. Query operators are identifiers such as 'select', 'where', 'sortBy', 'thenBy', 'groupBy', 'groupValBy', 'join', 'groupJoin', 'sumBy' and 'averageBy', defined using corresponding methods on the 'QueryBuilder' type." +3146,tcTryWithMayNotBeUsedInQueries,"'try/with' expressions may not be used in queries" +3147,tcNonSimpleLetBindingInQuery,"This 'let' definition may not be used in a query. Only simple value definitions may be used in queries." +3148,etTooManyStaticParameters,"Too many static parameters. Expected at most %d parameters, but got %d unnamed and %d named parameters." +3149,infosInvalidProvidedLiteralValue,"Invalid provided literal value '%s'" +3150,invalidPlatformTarget,"The 'anycpu32bitpreferred' platform can only be used with EXE targets. You must use 'anycpu' instead." +3151,tcThisValueMayNotBeInlined,"This member, function or value declaration may not be declared 'inline'" +3152,etErasedTypeUsedInGeneration,"The provider '%s' returned a non-generated type '%s' in the context of a set of generated types. Consider adjusting the type provider to only return generated types." +3153,tcUnrecognizedQueryBinaryOperator,"Arguments to query operators may require parentheses, e.g. 'where (x > y)' or 'groupBy (x.Length / 10)'" +3154,invalidPlatformTargetForOldFramework,"The 'anycpu32bitpreferred' platform flag may only be used with .NET Framework versions 4.5 and greater." +3155,crefNoSetOfHole,"A quotation may not involve an assignment to or taking the address of a captured local variable" +nicePrintOtherOverloads1,"+ 1 overload" +nicePrintOtherOverloadsN,"+ %d overloads" +erasedTo,"Erased to" +3156,parsUnfinishedExpression,"Unexpected token '%s' or incomplete expression" +3157,crefQuotationsCantContainByrefTypes,"Quotations cannot contain byref types" +3158,parsAttributeOnIncompleteCode,"Cannot find code target for this attribute, possibly because the code after the attribute is incomplete." +3159,parsTypeNameCannotBeEmpty,"Type name cannot be empty." +3160,buildProblemReadingAssembly,"Problem reading assembly '%s': %s" +3161,tcTPFieldMustBeLiteral,"Invalid provided field. Provided fields of erased provided types must be literals." +loadingDescription,"(loading description...)" +descriptionUnavailable,"(description unavailable...)" +3162,chkTyparMultipleClassConstraints,"A type variable has been constrained by multiple different class types. A type variable may only have one class constraint." +3163,tcMatchMayNotBeUsedWithQuery,"'match' expressions may not be used in queries" +3164,memberOperatorDefinitionWithNonTripleArgument,"Infix operator member '%s' has %d initial argument(s). Expected a tuple of 3 arguments" +3165,cannotResolveNullableOperators,"The operator '%s' cannot be resolved. Consider opening the module 'Microsoft.FSharp.Linq.NullableOperators'." +3167,tcOperatorRequiresIn,"'%s' must be followed by 'in'. Usage: %s." +3168,parsIllegalMemberVarInObjectImplementation,"Neither 'member val' nor 'override val' definitions are permitted in object expressions." +3169,tcEmptyCopyAndUpdateRecordInvalid,"Copy-and-update record expressions must include at least one field." +3170,parsUnderscoreInvalidFieldName,"'_' cannot be used as field name" +3171,tcGeneratedTypesShouldBeInternalOrPrivate,"The provided types generated by this use of a type provider may not be used from other F# assemblies and should be marked internal or private. Consider using 'type internal TypeName = ...' or 'type private TypeName = ...'." +3172,chkGetterAndSetterHaveSamePropertyType,"A property's getter and setter must have the same type. Property '%s' has getter of type '%s' but setter of type '%s'." +3173,tcRuntimeSuppliedMethodCannotBeUsedInUserCode,"Array method '%s' is supplied by the runtime and cannot be directly used in code. For operations with array elements consider using family of GetArray/SetArray functions from LanguagePrimitives.IntrinsicFunctions module." diff --git a/src/fsharp/FSInteractiveSettings.txt b/src/fsharp/FSInteractiveSettings.txt new file mode 100644 index 0000000..14705d3 --- /dev/null +++ b/src/fsharp/FSInteractiveSettings.txt @@ -0,0 +1 @@ +# FS Interactive.Settings resource strings \ No newline at end of file diff --git a/src/fsharp/FSStrings.resx b/src/fsharp/FSStrings.resx new file mode 100644 index 0000000..cee5e18 --- /dev/null +++ b/src/fsharp/FSStrings.resx @@ -0,0 +1,1080 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + . See also {0}. + + + The tuples have differing lengths of {0} and {1} + + + The resulting type would be infinite when unifying '{0}' and '{1}' + + + A type parameter is missing a constraint '{0}' + + + The unit of measure '{0}' does not match the unit of measure '{1}' + + + The type '{0}' does not match the type '{1}' + + + The type '{0}' is not compatible with the type '{1}'{2} + + + {0} + + + {0} + + + This expression was expected to have type\n {1} \nbut here has type\n {0} {2} + + + Type mismatch. Expecting a\n {0} \nbut given a\n {1} {2}\n + + + Type constraint mismatch when applying the default type '{0}' for a type inference variable. + + + Consider adding further type constraints + + + Type constraint mismatch. The type \n {0} \nis not compatible with type\n {1} {2}\n + + + Uppercase variable identifiers should not generally be used in patterns, and may indicate a misspelt pattern name. + + + Discriminated union cases and exception labels must be uppercase identifiers + + + Possible overload: '{0}'. {1}. + + + \n\nPossible best overload: '{0}'. + + + This function takes too many arguments, or is used in a context where a function is not expected + + + Member constraints with the name '{0}' are given special status by the F# compiler as certain .NET types are implicitly augmented with this member. This may result in runtime failures if you attempt to invoke the member constraint from your own code. + + + A definition to be compiled as a .NET event does not have the expected form. Only property members can be compiled as .NET events. + + + Implicit object constructors for structs must take at least one argument + + + The type implements the interface '{0}' but this is not revealed by the signature. You should list the interface in the signature, as the interface will be discoverable via dynamic type casts and/or reflection. + + + This value is not a function and cannot be applied. Did you forget to terminate a declaration? + + + This value is not a function and cannot be applied + + + The type '{0}' expects {1} type argument(s) but is given {2} + + + Lookup on object of indeterminate type based on information prior to this program point. A type annotation may be needed prior to this program point to constrain the type of the object. This may allow the lookup to be resolved. + + + Duplicate definition of {0} '{1}' + + + The {0} '{1}' can not be defined because the name '{2}' clashes with the {3} '{4}' in this type or module + + + Two members called '{0}' have the same signature + + + Duplicate definition of {0} '{1}' + + + A construct with this name was found in FSharp.PowerPack.dll, which contains some modules and types that were implicitly referenced in some previous versions of F#. You may need to add an explicit reference to this DLL in order to compile this code. + + + This field is not mutable + + + The fields '{0}' and '{1}' are from different types + + + '{0}' is bound twice in this pattern + + + A use of the function '{0}' does not match a type inferred elsewhere. The inferred type of the function is\n {1}. \nThe type of the function required at this point of use is\n {2} {3}\nThis error may be due to limitations associated with generic recursion within a 'let rec' collection or within a group of classes. Consider giving a full type signature for the targets of recursive calls including type annotations for both argument and return types. + + + Invalid runtime coercion or type test from type {0} to {1}\n{2} + + + This runtime coercion or type test from type\n {0} \n to \n {1} \ninvolves an indeterminate type based on information prior to this program point. Runtime type tests are not allowed on some types. Further type annotations are needed. + + + The static coercion from type\n {0} \nto \n {1} \n involves an indeterminate type based on information prior to this program point. Static coercions are not allowed on some types. Further type annotations are needed. + + + A coercion from the value type \n {0} \nto the type \n {1} \nwill involve boxing. Consider using 'box' instead + + + This type is 'abstract' since some abstract members have not been given an implementation. If this is intentional then add the '[<AbstractClass>]' attribute to your type. + + + This construct causes code to be less generic than indicated by its type annotations. The type variable implied by the use of a '#', '_' or other type annotation at or near '{0}' has been constrained to be type '{1}'. + + + This construct causes code to be less generic than indicated by the type annotations. The unit-of-measure variable '{0} has been constrained to be measure '{1}'. + + + This construct causes code to be less generic than indicated by the type annotations. The type variable '{0} has been constrained to be type '{1}'. + + + identifier + + + integer literal + + + floating point literal + + + decimal literal + + + character literal + + + keyword 'base' + + + symbol '(*)' + + + symbol '$' + + + infix operator + + + infix operator + + + symbol ':>' + + + symbol '::' + + + symbol '{0} + + + infix operator + + + infix operator + + + infix operator + + + prefix operator + + + symbol ':?>' + + + infix operator + + + infix operator + + + symbol '&' + + + symbol '&&' + + + symbol '||' + + + symbol '<' + + + symbol '>' + + + symbol '?' + + + symbol '??' + + + symbol ':?' + + + integer.. + + + symbol '..' + + + quote symbol + + + symbol '*' + + + type application + + + symbol ':' + + + symbol ':=' + + + symbol '<-' + + + symbol '=' + + + symbol '>|]' + + + symbol '-' + + + prefix operator + + + operator name + + + symbol ',' + + + symbol '.' + + + symbol '|' + + + symbol # + + + symbol '_' + + + symbol ';' + + + symbol ';;' + + + symbol '(' + + + symbol ')' + + + symbol 'splice' + + + start of quotation + + + symbol '[' + + + symbol '[|' + + + symbol '[<' + + + symbol '{' + + + symbol '{<' + + + symbol '|]' + + + symbol '>}' + + + symbol '>]' + + + end of quotation + + + symbol ']' + + + symbol '}' + + + keyword 'public' + + + keyword 'private' + + + keyword 'internal' + + + keyword 'constraint' + + + keyword 'instance' + + + keyword 'delegate' + + + keyword 'inherit' + + + keyword 'constructor' + + + keyword 'default' + + + keyword 'override' + + + keyword 'abstract' + + + keyword 'class' + + + keyword 'member' + + + keyword 'static' + + + keyword 'namespace' + + + start of structured construct + + + incomplete structured construct at or before this point + + + Incomplete structured construct at or before this point + + + keyword 'then' + + + keyword 'else' + + + keyword 'let' or 'use' + + + binder keyword + + + keyword 'do' + + + keyword 'const' + + + keyword 'with' + + + keyword 'function' + + + keyword 'fun' + + + end of input + + + internal dummy token + + + keyword 'do!' + + + yield + + + yield! + + + keyword 'interface' + + + keyword 'elif' + + + symbol '->' + + + keyword 'sig' + + + keyword 'struct' + + + keyword 'upcast' + + + keyword 'downcast' + + + keyword 'null' + + + reserved keyword + + + keyword 'module' + + + keyword 'and' + + + keyword 'as' + + + keyword 'assert' + + + keyword 'asr' + + + keyword 'downto' + + + keyword 'exception' + + + keyword 'false' + + + keyword 'for' + + + keyword 'fun' + + + keyword 'function' + + + keyword 'finally' + + + keyword 'lazy' + + + keyword 'match' + + + keyword 'mutable' + + + keyword 'new' + + + keyword 'of' + + + keyword 'open' + + + keyword 'or' + + + keyword 'void' + + + keyword 'extern' + + + keyword 'interface' + + + keyword 'rec' + + + keyword 'to' + + + keyword 'true' + + + keyword 'try' + + + keyword 'type' + + + keyword 'val' + + + keyword 'inline' + + + keyword 'when' + + + keyword 'while' + + + keyword 'with' + + + keyword 'if' + + + keyword 'do' + + + keyword 'global' + + + keyword 'done' + + + keyword 'in' + + + symbol '(' + + + symbol'[' + + + keyword 'begin' + + + keyword 'end' + + + directive + + + inactive code + + + lex failure + + + whitespace + + + comment + + + line comment + + + string text + + + compiler generated literal + + + byte array literal + + + string literal + + + end of input + + + Unexpected end of input + + + Unexpected {0} + + + in interaction + + + in directive + + + in field declaration + + + in discriminated union case declaration + + + in binding + + + in binding + + + in member definition + + + in definitions + + + in member signature + + + in value signature + + + in type signature + + + in lambda expression + + + in union case + + + in extern declaration + + + in object expression + + + in if/then/else expression + + + in open declaration + + + in module or namespace signature + + + in pattern matching + + + in begin/end expression + + + in record expression + + + in type definition + + + in exception definition + + + in type name + + + in attribute list + + + in quotation literal + + + in type constraint + + + in implementation file + + + in definition + + + in signature file + + + in pattern + + + in expression + + + in type + + + in type arguments + + + keyword + + + symbol + + + (due to indentation-aware syntax) + + + . Expected {0} or other token. + + + . Expected {0}, {1} or other token. + + + . Expected {0}, {1}, {2} or other token. + + + The type '{0}' cannot be used as the source of a type test or runtime coercion + + + The type '{0}' does not have any proper subtypes and cannot be used as the source of a type test or runtime coercion. + + + The type '{0}' does not have any proper subtypes and need not be used as the target of a static coercion + + + This upcast is unnecessary - the types are identical + + + This type test or downcast will always hold + + + The member '{0}' does not have the correct type to override any given virtual method + + + The member '{0}' does not have the correct type to override the corresponding abstract method. + + + The required signature is '{0}'. + + + This constructor is applied to {0} argument(s) but expects {1} + + + The two sides of this 'or' pattern bind different sets of variables + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \n{3}. + + + Module '{0}' requires a {1} '{2}' + + + The use of native pointers may result in unverifiable .NET IL code + + + {0} + + + Thread static and context static 'let' bindings are deprecated. Instead use a declaration of the form 'static val mutable <ident> : <type>' in a class. Add the 'DefaultValue' attribute to this declaration to indicate that the value is initialized to the default value on each new thread. + + + This expression is a function value, i.e. is missing arguments. Its type is {0}. + + + This expression should have type 'unit', but has type '{0}'. Use 'ignore' to discard the result of the expression, or 'let' to bind the result to a name. + + + This expression should have type 'unit', but has type '{0}'. If assigning to a property use the syntax 'obj.Prop <- expr'. + + + This recursive use will be checked for initialization-soundness at runtime. This warning is usually harmless, and may be suppressed by using '#nowarn "21"' or '--nowarn:21'. + + + The value '{0}' will be evaluated as part of its own definition + + + This value will be eventually evaluated as part of its own definition. You may need to make the value lazy or a function. Value '{0}'{1}. + + + will evaluate '{0}' + + + Bindings may be executed out-of-order because of this forward reference. + + + This and other recursive references to the object(s) being defined will be checked for initialization-soundness at runtime through the use of a delayed reference. This is because you are defining one or more recursive objects, rather than recursive functions. This warning may be suppressed by using '#nowarn "40"' or '--nowarn:40'. + + + Recursive references to the object being defined will be checked for initialization soundness at runtime through the use of a delayed reference. Consider placing self-references in members or within a trailing expression of the form '<ctor-expr> then <expr>'. + + + Recursive references to the object being defined will be checked for initialization soundness at runtime through the use of a delayed reference. Consider placing self-references within 'do' statements after the last 'let' binding in the construction sequence. + + + The containing type can use 'null' as a representation value for its nullary union case. Invoking an abstract or virtual member or an interface implementation on a null value will lead to an exception. If necessary add a dummy data value to the nullary constructor to avoid 'null' being used as a representation for this type. + + + The containing type can use 'null' as a representation value for its nullary union case. This member will be compiled as a static member. + + + The member '{0}' doesn't correspond to a unique abstract slot based on name and argument count alone + + + . Multiple implemented interfaces have a member with this name and argument count + + + . Consider implementing interfaces '{0}' and '{1}' explicitly. + + + . Additional type annotations may be required to indicate the relevant override. This warning can be disabled using '#nowarn "70"' or '--nowarn:70'. + + + parse error + + + parse error: unexpected end of file + + + {0} + + + internal error: {0} + + + {0} + + + Incomplete pattern matches on this expression. + + + For example, the value '{0}' may indicate a case not covered by the pattern(s). + + + For example, the value '{0}' may indicate a case not covered by the pattern(s). However, a pattern rule with a 'when' clause might successfully match this value. + + + Unmatched elements will be ignored. + + + This rule will never be matched + + + This value is not mutable + + + This value is not local + + + This construct is deprecated + + + . {0} + + + {0}. This warning can be disabled using '--nowarn:57' or '#nowarn "57"'. + + + Uses of this construct may result in the generation of unverifiable .NET IL code. This warning can be disabled using '--nowarn:9' or '#nowarn "9"'. + + + This construct is deprecated: {0} + + + This construct is deprecated: it is only for use in the F# library + + + The following fields require values: {0} + + + Value restriction. The value '{0}' has generic type\n {1} \nEither make the arguments to '{2}' explicit or, if you do not intend for it to be generic, add a type annotation. + + + Value restriction. The value '{0}' has generic type\n {1} \nEither make '{2}' into a function with explicit arguments or, if you do not intend for it to be generic, add a type annotation. + + + Value restriction. This member has been inferred to have generic type\n {0} \nConstructors and property getters/setters cannot be more generic than the enclosing type. Add a type annotation to indicate the exact types involved. + + + Value restriction. The value '{0}' has been inferred to have generic type\n {1} \nEither make the arguments to '{2}' explicit or, if you do not intend for it to be generic, add a type annotation. + + + Value restriction. The value '{0}' has been inferred to have generic type\n {1} \nEither define '{2}' as a simple data term, make it a function with explicit arguments or, if you do not intend for it to be generic, add a type annotation. + + + syntax error + + + {0} + + + {0} + + + Override implementations in augmentations are now deprecated. Override implementations should be given as part of the initial declaration of a type. + + + Override implementations should be given as part of the initial declaration of a type. + + + Interface implementations in augmentations are now deprecated. Interface implementations should be given on the initial declaration of a type. + + + Interface implementations should be given on the initial declaration of a type. + + + A required assembly reference is missing. You must add a reference to assembly '{0}'. + + + The type referenced through '{0}' is defined in an assembly that is not referenced. You must add a reference to assembly '{1}'. + + + #I directives may only occur in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. + + + #r directives may only occur in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-r' compiler option for this reference or delimit the directive with '#if INTERACTIVE'/'#endif'. + + + This directive may only be used in F# script files (extensions .fsx or .fsscript). Either remove the directive, move this code to a script file or delimit the directive with '#if INTERACTIVE'/'#endif'. + + + Unable to find the file '{0}' in any of\n {1} + + + Assembly reference '{0}' was not found or is invalid + + + One or more warnings in loaded file.\n + + + One or more errors in loaded file.\n + + + Loaded files may only be F# source files (extension .fs). This F# script file (.fsx or .fsscript) will be treated as an F# source file + + + Invalid assembly name '{0}' from InternalsVisibleTo attribute in {1} + + + Invalid assembly name '{0}' from InternalsVisibleTo attribute (assembly filename not available) + + + Could not load file '{0}' because it does not exist or is inaccessible + + + {0} (Code={1}) + + + internal error: {0} + + \ No newline at end of file diff --git a/src/fsharp/FSharp.AbsIL/FSComp.fs b/src/fsharp/FSharp.AbsIL/FSComp.fs new file mode 100644 index 0000000..817f57a --- /dev/null +++ b/src/fsharp/FSharp.AbsIL/FSComp.fs @@ -0,0 +1,5038 @@ +// This is a generated file; the original input is 'C:\code\clrish\src\fsharp\FSComp.txt' +namespace FSComp + +open Microsoft.FSharp.Core.LanguagePrimitives.IntrinsicOperators +open Microsoft.FSharp.Reflection +open System.Reflection +// (namespaces below for specific case of using the tool to compile FSharp.Core itself) +open Microsoft.FSharp.Core +open Microsoft.FSharp.Core.Operators +open Microsoft.FSharp.Text +open Microsoft.FSharp.Collections +open Printf + +type internal SR private() = + + // BEGIN BOILERPLATE + static let resources = lazy (new System.Resources.ResourceManager("FSComp", System.Reflection.Assembly.GetExecutingAssembly())) + + static let GetString(name:string) = + let s = resources.Value.GetString(name, System.Globalization.CultureInfo.CurrentUICulture) +#if DEBUG + if null = s then + System.Diagnostics.Debug.Assert(false, sprintf "**RESOURCE ERROR**: Resource token %s does not exist!" name) +#endif + s + + static let mkFunctionValue (tys: System.Type[]) (impl:obj->obj) = + FSharpValue.MakeFunction(FSharpType.MakeFunctionType(tys.[0],tys.[1]), impl) + + static let funTyC = typeof<(obj -> obj)>.GetGenericTypeDefinition() + + static let isNamedType(ty:System.Type) = not (ty.IsArray || ty.IsByRef || ty.IsPointer) + static let isFunctionType (ty1:System.Type) = + isNamedType(ty1) && ty1.IsGenericType && (ty1.GetGenericTypeDefinition()).Equals(funTyC) + + static let rec destFunTy (ty:System.Type) = + if isFunctionType ty then + ty, ty.GetGenericArguments() + else + match ty.BaseType with + | null -> failwith "destFunTy: not a function type" + | b -> destFunTy b + + static let buildFunctionForOneArgPat (ty: System.Type) impl = + let _,tys = destFunTy ty + let rty = tys.[1] + // PERF: this technique is a bit slow (e.g. in simple cases, like 'sprintf "%x"') + mkFunctionValue tys (fun inp -> impl rty inp) + + static let capture1 (fmt:string) i args ty (go : obj list -> System.Type -> int -> obj) : obj = + match fmt.[i] with + | '%' -> go args ty (i+1) + | 'd' + | 'f' + | 's' -> buildFunctionForOneArgPat ty (fun rty n -> go (n::args) rty (i+1)) + | _ -> failwith "bad format specifier" + + // newlines and tabs get converted to strings when read from a resource file + // this will preserve their original intention + static let postProcessString (s : string) = + s.Replace("\\n","\n").Replace("\\t","\t").Replace("\\r","\r").Replace("\\\"", "\"") + + static let createMessageString (messageString : string) (fmt : Printf.StringFormat<'T>) : 'T = + let fmt = fmt.Value // here, we use the actual error string, as opposed to the one stored as fmt + let len = fmt.Length + + /// Function to capture the arguments and then run. + let rec capture args ty i = + if i >= len || (fmt.[i] = '%' && i+1 >= len) then + let b = new System.Text.StringBuilder() + b.AppendFormat(messageString, [| for x in List.rev args -> x |]) |> ignore + box(b.ToString()) + // REVIEW: For these purposes, this should be a nop, but I'm leaving it + // in incase we ever decide to support labels for the error format string + // E.g., "%s%d" + elif System.Char.IsSurrogatePair(fmt,i) then + capture args ty (i+2) + else + match fmt.[i] with + | '%' -> + let i = i+1 + capture1 fmt i args ty capture + | _ -> + capture args ty (i+1) + + (unbox (capture [] (typeof<'T>) 0) : 'T) + + static let mutable swallowResourceText = false + + static let GetStringFunc((messageID : string),(fmt : Printf.StringFormat<'T>)) : 'T = + if swallowResourceText then + sprintf fmt + else + let mutable messageString = GetString(messageID) + messageString <- postProcessString messageString + createMessageString messageString fmt + + /// If set to true, then all error messages will just return the filled 'holes' delimited by ',,,'s - this is for language-neutral testing (e.g. localization-invariant baselines). + static member SwallowResourceText with get () = swallowResourceText + and set (b) = swallowResourceText <- b + // END BOILERPLATE + + /// The namespace '%s' is not defined + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:2) + static member undefinedNameNamespace(a0 : System.String) = (GetStringFunc("undefinedNameNamespace",",,,%s,,,") a0) + /// The namespace or module '%s' is not defined + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:3) + static member undefinedNameNamespaceOrModule(a0 : System.String) = (GetStringFunc("undefinedNameNamespaceOrModule",",,,%s,,,") a0) + /// The field, constructor or member '%s' is not defined + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:4) + static member undefinedNameFieldConstructorOrMember(a0 : System.String) = (GetStringFunc("undefinedNameFieldConstructorOrMember",",,,%s,,,") a0) + /// The value, constructor, namespace or type '%s' is not defined + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:5) + static member undefinedNameValueConstructorNamespaceOrType(a0 : System.String) = (GetStringFunc("undefinedNameValueConstructorNamespaceOrType",",,,%s,,,") a0) + /// The value or constructor '%s' is not defined + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:6) + static member undefinedNameValueOfConstructor(a0 : System.String) = (GetStringFunc("undefinedNameValueOfConstructor",",,,%s,,,") a0) + /// The value, namespace, type or module '%s' is not defined + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:7) + static member undefinedNameValueNamespaceTypeOrModule(a0 : System.String) = (GetStringFunc("undefinedNameValueNamespaceTypeOrModule",",,,%s,,,") a0) + /// The constructor, module or namespace '%s' is not defined + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:8) + static member undefinedNameConstructorModuleOrNamespace(a0 : System.String) = (GetStringFunc("undefinedNameConstructorModuleOrNamespace",",,,%s,,,") a0) + /// The type '%s' is not defined + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:9) + static member undefinedNameType(a0 : System.String) = (GetStringFunc("undefinedNameType",",,,%s,,,") a0) + /// The record label or namespace '%s' is not defined + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:10) + static member undefinedNameRecordLabelOrNamespace(a0 : System.String) = (GetStringFunc("undefinedNameRecordLabelOrNamespace",",,,%s,,,") a0) + /// The record label '%s' is not defined + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:11) + static member undefinedNameRecordLabel(a0 : System.String) = (GetStringFunc("undefinedNameRecordLabel",",,,%s,,,") a0) + /// The type parameter '%s' is not defined + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:12) + static member undefinedNameTypeParameter(a0 : System.String) = (GetStringFunc("undefinedNameTypeParameter",",,,%s,,,") a0) + /// The pattern discriminator '%s' is not defined + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:13) + static member undefinedNamePatternDiscriminator(a0 : System.String) = (GetStringFunc("undefinedNamePatternDiscriminator",",,,%s,,,") a0) + /// The non-generic type '%s' does not expect any type arguments, but here is given %d type argument(s) + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:17) + static member buildUnexpectedTypeArgs(a0 : System.String, a1 : System.Int32) = (GetStringFunc("buildUnexpectedTypeArgs",",,,%s,,,%d,,,") a0 a1) + /// Invalid warning number '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:18) + static member buildInvalidWarningNumber(a0 : System.String) = (203, GetStringFunc("buildInvalidWarningNumber",",,,%s,,,") a0) + /// Invalid version string '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:19) + static member buildInvalidVersionString(a0 : System.String) = (204, GetStringFunc("buildInvalidVersionString",",,,%s,,,") a0) + /// Invalid version file '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:20) + static member buildInvalidVersionFile(a0 : System.String) = (205, GetStringFunc("buildInvalidVersionFile",",,,%s,,,") a0) + /// F# Compiler for F# 3.0 %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:21) + static member buildProductName(a0 : System.String) = (GetStringFunc("buildProductName",",,,%s,,,") a0) + /// Problem with filename '%s': %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:22) + static member buildProblemWithFilename(a0 : System.String, a1 : System.String) = (206, GetStringFunc("buildProblemWithFilename",",,,%s,,,%s,,,") a0 a1) + /// No inputs specified + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:23) + static member buildNoInputsSpecified() = (207, GetStringFunc("buildNoInputsSpecified",",,,") ) + /// The output name extension doesn't match the options used. If '-a' or '--target:library' is used the output file name must end with '.dll', if '--target:module' is used the output extension must be '.netmodule', otherwise '.exe'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:24) + static member buildMismatchOutputExtension() = (208, GetStringFunc("buildMismatchOutputExtension",",,,") ) + /// The '--pdb' option requires the '--debug' option to be used + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:25) + static member buildPdbRequiresDebug() = (209, GetStringFunc("buildPdbRequiresDebug",",,,") ) + /// The search directory '%s' is invalid + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:26) + static member buildInvalidSearchDirectory(a0 : System.String) = (210, GetStringFunc("buildInvalidSearchDirectory",",,,%s,,,") a0) + /// The search directory '%s' could not be found + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:27) + static member buildSearchDirectoryNotFound(a0 : System.String) = (211, GetStringFunc("buildSearchDirectoryNotFound",",,,%s,,,") a0) + /// '%s' is not a valid filename + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:28) + static member buildInvalidFilename(a0 : System.String) = (212, GetStringFunc("buildInvalidFilename",",,,%s,,,") a0) + /// '%s' is not a valid assembly name + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:29) + static member buildInvalidAssemblyName(a0 : System.String) = (213, GetStringFunc("buildInvalidAssemblyName",",,,%s,,,") a0) + /// Unrecognized privacy setting '%s' for managed resource, valid options are 'public' and 'private' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:30) + static member buildInvalidPrivacy(a0 : System.String) = (214, GetStringFunc("buildInvalidPrivacy",",,,%s,,,") a0) + /// Multiple references to '%s.dll' are not permitted + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:31) + static member buildMultipleReferencesNotAllowed(a0 : System.String) = (215, GetStringFunc("buildMultipleReferencesNotAllowed",",,,%s,,,") a0) + /// The file '%s' is a CLI 1.x version of mscorlib. F# requires CLI version 2.0 or greater. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:32) + static member buildRequiresCLI2(a0 : System.String) = (216, GetStringFunc("buildRequiresCLI2",",,,%s,,,") a0) + /// Could not read version from mscorlib.dll + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:33) + static member buildCouldNotReadVersionInfoFromMscorlib() = (GetStringFunc("buildCouldNotReadVersionInfoFromMscorlib",",,,") ) + /// The referenced or default base CLI library 'mscorlib' is binary-incompatible with the referenced library '%s'. Consider recompiling the library or making an explicit reference to a version of this library that matches the CLI version you are using. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:34) + static member buildMscorlibAndReferencedAssemblyMismatch(a0 : System.String) = (217, GetStringFunc("buildMscorlibAndReferencedAssemblyMismatch",",,,%s,,,") a0) + /// Unable to read assembly '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:35) + static member buildCannotReadAssembly(a0 : System.String) = (218, GetStringFunc("buildCannotReadAssembly",",,,%s,,,") a0) + /// The referenced or default base CLI library 'mscorlib' is binary-incompatible with the referenced F# core library '%s'. Consider recompiling the library or making an explicit reference to a version of this library that matches the CLI version you are using. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:36) + static member buildMscorLibAndFSharpCoreMismatch(a0 : System.String) = (219, GetStringFunc("buildMscorLibAndFSharpCoreMismatch",",,,%s,,,") a0) + /// Assembly resolution failure at or near this location + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:37) + static member buildAssemblyResolutionFailed() = (220, GetStringFunc("buildAssemblyResolutionFailed",",,,") ) + /// The declarations in this file will be placed in an implicit module '%s' based on the file name '%s'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:38) + static member buildImplicitModuleIsNotLegalIdentifier(a0 : System.String, a1 : System.String) = (221, GetStringFunc("buildImplicitModuleIsNotLegalIdentifier",",,,%s,,,%s,,,") a0 a1) + /// Files in libraries or multiple-file applications must begin with a namespace or module declaration, e.g. 'namespace SomeNamespace.SubNamespace' or 'module SomeNamespace.SomeModule' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:39) + static member buildMultiFileRequiresNamespaceOrModule() = (222, GetStringFunc("buildMultiFileRequiresNamespaceOrModule",",,,") ) + /// This file contains multiple declarations of the form 'module SomeNamespace.SomeModule'. Only one declaration of this form is permitted in a file. Change your file to use an initial namespace declaration and/or use 'module ModuleName = ...' to define your modules. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:40) + static member buildMultipleToplevelModules() = (223, GetStringFunc("buildMultipleToplevelModules",",,,") ) + /// ParseInput: unknown file suffix for '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:41) + static member buildUnknownFileSuffix(a0 : System.String) = (GetStringFunc("buildUnknownFileSuffix",",,,%s,,,") a0) + /// Option requires parameter: %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:42) + static member buildOptionRequiresParameter(a0 : System.String) = (224, GetStringFunc("buildOptionRequiresParameter",",,,%s,,,") a0) + /// Source file '%s' could not be found + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:43) + static member buildCouldNotFindSourceFile(a0 : System.String) = (225, GetStringFunc("buildCouldNotFindSourceFile",",,,%s,,,") a0) + /// The file extension of '%s' is not recognized. Source files must have extension .fs, .fsi, .fsx, .fsscript, .ml or .mli. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:44) + static member buildInvalidSourceFileExtension(a0 : System.String) = (226, GetStringFunc("buildInvalidSourceFileExtension",",,,%s,,,") a0) + /// Could not resolve assembly '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:45) + static member buildCouldNotResolveAssembly(a0 : System.String) = (227, GetStringFunc("buildCouldNotResolveAssembly",",,,%s,,,") a0) + /// Could not resolve assembly '%s' required by '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:46) + static member buildCouldNotResolveAssemblyRequiredByFile(a0 : System.String, a1 : System.String) = (228, GetStringFunc("buildCouldNotResolveAssemblyRequiredByFile",",,,%s,,,%s,,,") a0 a1) + /// Error opening binary file '%s': %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:47) + static member buildErrorOpeningBinaryFile(a0 : System.String, a1 : System.String) = (229, GetStringFunc("buildErrorOpeningBinaryFile",",,,%s,,,%s,,,") a0 a1) + /// The F#-compiled DLL '%s' needs to be recompiled to be used with this version of F# + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:48) + static member buildDifferentVersionMustRecompile(a0 : System.String) = (231, GetStringFunc("buildDifferentVersionMustRecompile",",,,%s,,,") a0) + /// Invalid directive. Expected '#I \"\"'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:49) + static member buildInvalidHashIDirective() = (232, GetStringFunc("buildInvalidHashIDirective",",,,") ) + /// Invalid directive. Expected '#r \"\"'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:50) + static member buildInvalidHashrDirective() = (233, GetStringFunc("buildInvalidHashrDirective",",,,") ) + /// Invalid directive. Expected '#load \"\" ... \"\"'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:51) + static member buildInvalidHashloadDirective() = (234, GetStringFunc("buildInvalidHashloadDirective",",,,") ) + /// Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:52) + static member buildInvalidHashtimeDirective() = (235, GetStringFunc("buildInvalidHashtimeDirective",",,,") ) + /// Directives inside modules are ignored + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:53) + static member buildDirectivesInModulesAreIgnored() = (236, GetStringFunc("buildDirectivesInModulesAreIgnored",",,,") ) + /// A signature for the file or module '%s' has already been specified + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:54) + static member buildSignatureAlreadySpecified(a0 : System.String) = (237, GetStringFunc("buildSignatureAlreadySpecified",",,,%s,,,") a0) + /// An implementation of file or module '%s' has already been given. Compilation order is significant in F# because of type inference. You may need to adjust the order of your files to place the signature file before the implementation. In Visual Studio files are type-checked in the order they appear in the project file, which can be edited manually or adjusted using the solution explorer. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:55) + static member buildImplementationAlreadyGivenDetail(a0 : System.String) = (238, GetStringFunc("buildImplementationAlreadyGivenDetail",",,,%s,,,") a0) + /// An implementation of the file or module '%s' has already been given + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:56) + static member buildImplementationAlreadyGiven(a0 : System.String) = (239, GetStringFunc("buildImplementationAlreadyGiven",",,,%s,,,") a0) + /// The signature file '%s' does not have a corresponding implementation file. If an implementation file exists then check the 'module' and 'namespace' declarations in the signature and implementation files match. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:57) + static member buildSignatureWithoutImplementation(a0 : System.String) = (240, GetStringFunc("buildSignatureWithoutImplementation",",,,%s,,,") a0) + /// '%s' is not a valid integer argument + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:58) + static member buildArgInvalidInt(a0 : System.String) = (241, GetStringFunc("buildArgInvalidInt",",,,%s,,,") a0) + /// '%s' is not a valid floating point argument + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:59) + static member buildArgInvalidFloat(a0 : System.String) = (242, GetStringFunc("buildArgInvalidFloat",",,,%s,,,") a0) + /// Unrecognized option: '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:60) + static member buildUnrecognizedOption(a0 : System.String) = (243, GetStringFunc("buildUnrecognizedOption",",,,%s,,,") a0) + /// Invalid module or namespace name + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:61) + static member buildInvalidModuleOrNamespaceName() = (244, GetStringFunc("buildInvalidModuleOrNamespaceName",",,,") ) + /// Error reading/writing metadata for the F# compiled DLL '%s'. Was the DLL compiled with an earlier version of the F# compiler? (error: '%s'). + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:65) + static member pickleErrorReadingWritingMetadata(a0 : System.String, a1 : System.String) = (GetStringFunc("pickleErrorReadingWritingMetadata",",,,%s,,,%s,,,") a0 a1) + /// The type/module '%s' is not a concrete module or type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:69) + static member tastTypeOrModuleNotConcrete(a0 : System.String) = (245, GetStringFunc("tastTypeOrModuleNotConcrete",",,,%s,,,") a0) + /// The type '%s' has an inline assembly code representation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:70) + static member tastTypeHasAssemblyCodeRepresentation(a0 : System.String) = (GetStringFunc("tastTypeHasAssemblyCodeRepresentation",",,,%s,,,") a0) + /// A namespace and a module named '%s' both occur in two parts of this assembly + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:71) + static member tastNamespaceAndModuleWithSameNameInAssembly(a0 : System.String) = (247, GetStringFunc("tastNamespaceAndModuleWithSameNameInAssembly",",,,%s,,,") a0) + /// Two modules named '%s' occur in two parts of this assembly + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:72) + static member tastTwoModulesWithSameNameInAssembly(a0 : System.String) = (248, GetStringFunc("tastTwoModulesWithSameNameInAssembly",",,,%s,,,") a0) + /// Two type definitions named '%s' occur in namespace '%s' in two parts of this assembly + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:73) + static member tastDuplicateTypeDefinitionInAssembly(a0 : System.String, a1 : System.String) = (249, GetStringFunc("tastDuplicateTypeDefinitionInAssembly",",,,%s,,,%s,,,") a0 a1) + /// A module and a type definition named '%s' occur in namespace '%s' in two parts of this assembly + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:74) + static member tastConflictingModuleAndTypeDefinitionInAssembly(a0 : System.String, a1 : System.String) = (250, GetStringFunc("tastConflictingModuleAndTypeDefinitionInAssembly",",,,%s,,,%s,,,") a0 a1) + /// Invalid member signature encountered because of an earlier error + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:78) + static member tastInvalidMemberSignature() = (251, GetStringFunc("tastInvalidMemberSignature",",,,") ) + /// This value does not have a valid property setter type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:79) + static member tastValueDoesNotHaveSetterType() = (252, GetStringFunc("tastValueDoesNotHaveSetterType",",,,") ) + /// Invalid form for a property getter. At least one '()' argument is required when using the explicit syntax. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:80) + static member tastInvalidFormForPropertyGetter() = (253, GetStringFunc("tastInvalidFormForPropertyGetter",",,,") ) + /// Invalid form for a property setter. At least one argument is required. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:81) + static member tastInvalidFormForPropertySetter() = (254, GetStringFunc("tastInvalidFormForPropertySetter",",,,") ) + /// Unexpected use of a byref-typed variable + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:82) + static member tastUnexpectedByRef() = (255, GetStringFunc("tastUnexpectedByRef",",,,") ) + /// A value must be mutable in order to mutate the contents or take the address of a value type, e.g. 'let mutable x = ...' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:83) + static member tastValueMustBeLocalAndMutable() = (256, GetStringFunc("tastValueMustBeLocalAndMutable",",,,") ) + /// Invalid mutation of a constant expression. Consider copying the expression to a mutable local, e.g. 'let mutable x = ...'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:84) + static member tastInvalidMutationOfConstant() = (257, GetStringFunc("tastInvalidMutationOfConstant",",,,") ) + /// The value has been copied to ensure the original is not mutated by this operation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:85) + static member tastValueHasBeenCopied() = (GetStringFunc("tastValueHasBeenCopied",",,,") ) + /// Recursively defined values cannot appear directly as part of the construction of a tuple value within a recursive binding + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:86) + static member tastRecursiveValuesMayNotBeInConstructionOfTuple() = (259, GetStringFunc("tastRecursiveValuesMayNotBeInConstructionOfTuple",",,,") ) + /// Recursive values cannot appear directly as a construction of the type '%s' within a recursive binding. This feature has been removed from the F# language. Consider using a record instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:87) + static member tastRecursiveValuesMayNotAppearInConstructionOfType(a0 : System.String) = (260, GetStringFunc("tastRecursiveValuesMayNotAppearInConstructionOfType",",,,%s,,,") a0) + /// Recursive values cannot be directly assigned to the non-mutable field '%s' of the type '%s' within a recursive binding. Consider using a mutable field instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:88) + static member tastRecursiveValuesMayNotBeAssignedToNonMutableField(a0 : System.String, a1 : System.String) = (261, GetStringFunc("tastRecursiveValuesMayNotBeAssignedToNonMutableField",",,,%s,,,%s,,,") a0 a1) + /// Unexpected decode of AutoOpenAttribute + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:89) + static member tastUnexpectedDecodeOfAutoOpenAttribute() = (GetStringFunc("tastUnexpectedDecodeOfAutoOpenAttribute",",,,") ) + /// Unexpected decode of InternalsVisibleToAttribute + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:90) + static member tastUnexpectedDecodeOfInternalsVisibleToAttribute() = (GetStringFunc("tastUnexpectedDecodeOfInternalsVisibleToAttribute",",,,") ) + /// Unexpected decode of InterfaceDataVersionAttribute + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:91) + static member tastUnexpectedDecodeOfInterfaceDataVersionAttribute() = (GetStringFunc("tastUnexpectedDecodeOfInterfaceDataVersionAttribute",",,,") ) + /// Active patterns cannot return more than 7 possibilities + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:92) + static member tastActivePatternsLimitedToSeven() = (265, GetStringFunc("tastActivePatternsLimitedToSeven",",,,") ) + /// This constant cannot be used as a custom attribute value + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:93) + static member tastConstantCannotBeCustomAttribute() = (266, GetStringFunc("tastConstantCannotBeCustomAttribute",",,,") ) + /// This is not a constant expression or valid custom attribute value + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:94) + static member tastNotAConstantExpression() = (267, GetStringFunc("tastNotAConstantExpression",",,,") ) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe mutability attributes differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:98) + static member ValueNotContainedMutabilityAttributesDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityAttributesDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe names differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:99) + static member ValueNotContainedMutabilityNamesDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityNamesDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe compiled names differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:100) + static member ValueNotContainedMutabilityCompiledNamesDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityCompiledNamesDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe display names differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:101) + static member ValueNotContainedMutabilityDisplayNamesDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityDisplayNamesDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe accessibility specified in the signature is more than that specified in the implementation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:102) + static member ValueNotContainedMutabilityAccessibilityMore(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityAccessibilityMore",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe inline flags differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:103) + static member ValueNotContainedMutabilityInlineFlagsDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityInlineFlagsDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe literal constant values and/or attributes differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:104) + static member ValueNotContainedMutabilityLiteralConstantValuesDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityLiteralConstantValuesDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is a type function and the other is not. The signature requires explicit type parameters if they are present in the implementation. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:105) + static member ValueNotContainedMutabilityOneIsTypeFunction(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityOneIsTypeFunction",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe respective type parameter counts differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:106) + static member ValueNotContainedMutabilityParameterCountsDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityParameterCountsDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe types differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:107) + static member ValueNotContainedMutabilityTypesDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityTypesDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is an extension member and the other is not + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:108) + static member ValueNotContainedMutabilityExtensionsDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityExtensionsDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nAn arity was not inferred for this value + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:109) + static member ValueNotContainedMutabilityArityNotInferred(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityArityNotInferred",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe number of generic parameters in the signature and implementation differ (the signature declares %s but the implementation declares %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:110) + static member ValueNotContainedMutabilityGenericParametersDiffer(a0 : System.String, a1 : System.String, a2 : System.String, a3 : System.String, a4 : System.String) = (GetStringFunc("ValueNotContainedMutabilityGenericParametersDiffer",",,,%s,,,%s,,,%s,,,%s,,,%s,,,") a0 a1 a2 a3 a4) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe generic parameters in the signature and implementation have different kinds. Perhaps there is a missing [] attribute. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:111) + static member ValueNotContainedMutabilityGenericParametersAreDifferentKinds(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityGenericParametersAreDifferentKinds",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe arities in the signature and implementation differ. The signature specifies that '%s' is function definition or lambda expression accepting at least %s argument(s), but the implementation is a computed function value. To declare that a computed function value is a permitted implementation simply parenthesize its type in the signature, e.g.\n\tval %s: int -> (int -> int)\ninstead of\n\tval %s: int -> int -> int. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:112) + static member ValueNotContainedMutabilityAritiesDiffer(a0 : System.String, a1 : System.String, a2 : System.String, a3 : System.String, a4 : System.String, a5 : System.String, a6 : System.String) = (GetStringFunc("ValueNotContainedMutabilityAritiesDiffer",",,,%s,,,%s,,,%s,,,%s,,,%s,,,%s,,,%s,,,") a0 a1 a2 a3 a4 a5 a6) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe CLI member names differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:113) + static member ValueNotContainedMutabilityDotNetNamesDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityDotNetNamesDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is static and the other isn't + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:114) + static member ValueNotContainedMutabilityStaticsDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityStaticsDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is virtual and the other isn't + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:115) + static member ValueNotContainedMutabilityVirtualsDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityVirtualsDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is abstract and the other isn't + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:116) + static member ValueNotContainedMutabilityAbstractsDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityAbstractsDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is final and the other isn't + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:117) + static member ValueNotContainedMutabilityFinalsDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityFinalsDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is marked as an override and the other isn't + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:118) + static member ValueNotContainedMutabilityOverridesDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityOverridesDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is a constructor/property and the other is not + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:119) + static member ValueNotContainedMutabilityOneIsConstructor(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityOneIsConstructor",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe compiled representation of this method is as a static member but the signature indicates its compiled representation is as an instance member + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:120) + static member ValueNotContainedMutabilityStaticButInstance(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityStaticButInstance",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe compiled representation of this method is as an instance member, but the signature indicates its compiled representation is as a static member + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:121) + static member ValueNotContainedMutabilityInstanceButStatic(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityInstanceButStatic",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// The %s definitions in the signature and implementation are not compatible because the names differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:122) + static member DefinitionsInSigAndImplNotCompatibleNamesDiffer(a0 : System.String) = (290, GetStringFunc("DefinitionsInSigAndImplNotCompatibleNamesDiffer",",,,%s,,,") a0) + /// The %s definitions in the signature and implementation are not compatible because the respective type parameter counts differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:123) + static member DefinitionsInSigAndImplNotCompatibleParameterCountsDiffer(a0 : System.String) = (291, GetStringFunc("DefinitionsInSigAndImplNotCompatibleParameterCountsDiffer",",,,%s,,,") a0) + /// The %s definitions in the signature and implementation are not compatible because the accessibility specified in the signature is more than that specified in the implementation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:124) + static member DefinitionsInSigAndImplNotCompatibleAccessibilityDiffer(a0 : System.String) = (292, GetStringFunc("DefinitionsInSigAndImplNotCompatibleAccessibilityDiffer",",,,%s,,,") a0) + /// The %s definitions in the signature and implementation are not compatible because the signature requires that the type supports the interface %s but the interface has not been implemented + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:125) + static member DefinitionsInSigAndImplNotCompatibleMissingInterface(a0 : System.String, a1 : System.String) = (293, GetStringFunc("DefinitionsInSigAndImplNotCompatibleMissingInterface",",,,%s,,,%s,,,") a0 a1) + /// The %s definitions in the signature and implementation are not compatible because the implementation says this type may use nulls as a representation but the signature does not + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:126) + static member DefinitionsInSigAndImplNotCompatibleImplementationSaysNull(a0 : System.String) = (294, GetStringFunc("DefinitionsInSigAndImplNotCompatibleImplementationSaysNull",",,,%s,,,") a0) + /// The %s definitions in the signature and implementation are not compatible because the implementation says this type may use nulls as an extra value but the signature does not + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:127) + static member DefinitionsInSigAndImplNotCompatibleImplementationSaysNull2(a0 : System.String) = (294, GetStringFunc("DefinitionsInSigAndImplNotCompatibleImplementationSaysNull2",",,,%s,,,") a0) + /// The %s definitions in the signature and implementation are not compatible because the signature says this type may use nulls as a representation but the implementation does not + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:128) + static member DefinitionsInSigAndImplNotCompatibleSignatureSaysNull(a0 : System.String) = (295, GetStringFunc("DefinitionsInSigAndImplNotCompatibleSignatureSaysNull",",,,%s,,,") a0) + /// The %s definitions in the signature and implementation are not compatible because the signature says this type may use nulls as an extra value but the implementation does not + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:129) + static member DefinitionsInSigAndImplNotCompatibleSignatureSaysNull2(a0 : System.String) = (295, GetStringFunc("DefinitionsInSigAndImplNotCompatibleSignatureSaysNull2",",,,%s,,,") a0) + /// The %s definitions in the signature and implementation are not compatible because the implementation type is sealed but the signature implies it is not. Consider adding the [] attribute to the signature. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:130) + static member DefinitionsInSigAndImplNotCompatibleImplementationSealed(a0 : System.String) = (296, GetStringFunc("DefinitionsInSigAndImplNotCompatibleImplementationSealed",",,,%s,,,") a0) + /// The %s definitions in the signature and implementation are not compatible because the implementation type is not sealed but signature implies it is. Consider adding the [] attribute to the implementation. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:131) + static member DefinitionsInSigAndImplNotCompatibleImplementationIsNotSealed(a0 : System.String) = (297, GetStringFunc("DefinitionsInSigAndImplNotCompatibleImplementationIsNotSealed",",,,%s,,,") a0) + /// The %s definitions in the signature and implementation are not compatible because the implementation is an abstract class but the signature is not. Consider adding the [] attribute to the signature. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:132) + static member DefinitionsInSigAndImplNotCompatibleImplementationIsAbstract(a0 : System.String) = (298, GetStringFunc("DefinitionsInSigAndImplNotCompatibleImplementationIsAbstract",",,,%s,,,") a0) + /// The %s definitions in the signature and implementation are not compatible because the signature is an abstract class but the implementation is not. Consider adding the [] attribute to the implementation. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:133) + static member DefinitionsInSigAndImplNotCompatibleSignatureIsAbstract(a0 : System.String) = (299, GetStringFunc("DefinitionsInSigAndImplNotCompatibleSignatureIsAbstract",",,,%s,,,") a0) + /// The %s definitions in the signature and implementation are not compatible because the types have different base types + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:134) + static member DefinitionsInSigAndImplNotCompatibleTypesHaveDifferentBaseTypes(a0 : System.String) = (300, GetStringFunc("DefinitionsInSigAndImplNotCompatibleTypesHaveDifferentBaseTypes",",,,%s,,,") a0) + /// The %s definitions in the signature and implementation are not compatible because the number of %ss differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:135) + static member DefinitionsInSigAndImplNotCompatibleNumbersDiffer(a0 : System.String, a1 : System.String) = (301, GetStringFunc("DefinitionsInSigAndImplNotCompatibleNumbersDiffer",",,,%s,,,%s,,,") a0 a1) + /// The %s definitions in the signature and implementation are not compatible because the signature defines the %s '%s' but the implementation does not (or does, but not in the same order) + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:136) + static member DefinitionsInSigAndImplNotCompatibleSignatureDefinesButImplDoesNot(a0 : System.String, a1 : System.String, a2 : System.String) = (302, GetStringFunc("DefinitionsInSigAndImplNotCompatibleSignatureDefinesButImplDoesNot",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// The %s definitions in the signature and implementation are not compatible because the implementation defines the %s '%s' but the signature does not (or does, but not in the same order) + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:137) + static member DefinitionsInSigAndImplNotCompatibleImplDefinesButSignatureDoesNot(a0 : System.String, a1 : System.String, a2 : System.String) = (303, GetStringFunc("DefinitionsInSigAndImplNotCompatibleImplDefinesButSignatureDoesNot",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// The %s definitions in the signature and implementation are not compatible because the implementation defines a struct but the signature defines a type with a hidden representation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:138) + static member DefinitionsInSigAndImplNotCompatibleImplDefinesStruct(a0 : System.String) = (304, GetStringFunc("DefinitionsInSigAndImplNotCompatibleImplDefinesStruct",",,,%s,,,") a0) + /// The %s definitions in the signature and implementation are not compatible because a CLI type representation is being hidden by a signature + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:139) + static member DefinitionsInSigAndImplNotCompatibleDotNetTypeRepresentationIsHidden(a0 : System.String) = (305, GetStringFunc("DefinitionsInSigAndImplNotCompatibleDotNetTypeRepresentationIsHidden",",,,%s,,,") a0) + /// The %s definitions in the signature and implementation are not compatible because a type representation is being hidden by a signature + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:140) + static member DefinitionsInSigAndImplNotCompatibleTypeIsHidden(a0 : System.String) = (306, GetStringFunc("DefinitionsInSigAndImplNotCompatibleTypeIsHidden",",,,%s,,,") a0) + /// The %s definitions in the signature and implementation are not compatible because the types are of different kinds + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:141) + static member DefinitionsInSigAndImplNotCompatibleTypeIsDifferentKind(a0 : System.String) = (307, GetStringFunc("DefinitionsInSigAndImplNotCompatibleTypeIsDifferentKind",",,,%s,,,") a0) + /// The %s definitions in the signature and implementation are not compatible because the IL representations differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:142) + static member DefinitionsInSigAndImplNotCompatibleILDiffer(a0 : System.String) = (308, GetStringFunc("DefinitionsInSigAndImplNotCompatibleILDiffer",",,,%s,,,") a0) + /// The %s definitions in the signature and implementation are not compatible because the representations differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:143) + static member DefinitionsInSigAndImplNotCompatibleRepresentationsDiffer(a0 : System.String) = (309, GetStringFunc("DefinitionsInSigAndImplNotCompatibleRepresentationsDiffer",",,,%s,,,") a0) + /// The %s definitions in the signature and implementation are not compatible because the field %s was present in the implementation but not in the signature + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:144) + static member DefinitionsInSigAndImplNotCompatibleFieldWasPresent(a0 : System.String, a1 : System.String) = (311, GetStringFunc("DefinitionsInSigAndImplNotCompatibleFieldWasPresent",",,,%s,,,%s,,,") a0 a1) + /// The %s definitions in the signature and implementation are not compatible because the order of the fields is different in the signature and implementation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:145) + static member DefinitionsInSigAndImplNotCompatibleFieldOrderDiffer(a0 : System.String) = (312, GetStringFunc("DefinitionsInSigAndImplNotCompatibleFieldOrderDiffer",",,,%s,,,") a0) + /// The %s definitions in the signature and implementation are not compatible because the field %s was required by the signature but was not specified by the implementation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:146) + static member DefinitionsInSigAndImplNotCompatibleFieldRequiredButNotSpecified(a0 : System.String, a1 : System.String) = (313, GetStringFunc("DefinitionsInSigAndImplNotCompatibleFieldRequiredButNotSpecified",",,,%s,,,%s,,,") a0 a1) + /// The %s definitions in the signature and implementation are not compatible because the field '%s' was present in the implementation but not in the signature. Struct types must now reveal their fields in the signature for the type, though the fields may still be labelled 'private' or 'internal'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:147) + static member DefinitionsInSigAndImplNotCompatibleFieldIsInImplButNotSig(a0 : System.String, a1 : System.String) = (314, GetStringFunc("DefinitionsInSigAndImplNotCompatibleFieldIsInImplButNotSig",",,,%s,,,%s,,,") a0 a1) + /// The %s definitions in the signature and implementation are not compatible because the abstract member '%s' was required by the signature but was not specified by the implementation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:148) + static member DefinitionsInSigAndImplNotCompatibleAbstractMemberMissingInImpl(a0 : System.String, a1 : System.String) = (315, GetStringFunc("DefinitionsInSigAndImplNotCompatibleAbstractMemberMissingInImpl",",,,%s,,,%s,,,") a0 a1) + /// The %s definitions in the signature and implementation are not compatible because the abstract member '%s' was present in the implementation but not in the signature + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:149) + static member DefinitionsInSigAndImplNotCompatibleAbstractMemberMissingInSig(a0 : System.String, a1 : System.String) = (316, GetStringFunc("DefinitionsInSigAndImplNotCompatibleAbstractMemberMissingInSig",",,,%s,,,%s,,,") a0 a1) + /// The %s definitions in the signature and implementation are not compatible because the signature declares a %s while the implementation declares a %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:150) + static member DefinitionsInSigAndImplNotCompatibleSignatureDeclaresDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (317, GetStringFunc("DefinitionsInSigAndImplNotCompatibleSignatureDeclaresDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// The %s definitions in the signature and implementation are not compatible because the abbreviations differ: %s versus %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:151) + static member DefinitionsInSigAndImplNotCompatibleAbbreviationsDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (318, GetStringFunc("DefinitionsInSigAndImplNotCompatibleAbbreviationsDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// The %s definitions in the signature and implementation are not compatible because an abbreviation is being hidden by a signature. The abbreviation must be visible to other CLI languages. Consider making the abbreviation visible in the signature. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:152) + static member DefinitionsInSigAndImplNotCompatibleAbbreviationHiddenBySig(a0 : System.String) = (319, GetStringFunc("DefinitionsInSigAndImplNotCompatibleAbbreviationHiddenBySig",",,,%s,,,") a0) + /// The %s definitions in the signature and implementation are not compatible because the signature has an abbreviation while the implementation does not + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:153) + static member DefinitionsInSigAndImplNotCompatibleSigHasAbbreviation(a0 : System.String) = (320, GetStringFunc("DefinitionsInSigAndImplNotCompatibleSigHasAbbreviation",",,,%s,,,") a0) + /// The module contains the constructor\n %s \nbut its signature specifies\n %s \nThe names differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:154) + static member ModuleContainsConstructorButNamesDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("ModuleContainsConstructorButNamesDiffer",",,,%s,,,%s,,,") a0 a1) + /// The module contains the constructor\n %s \nbut its signature specifies\n %s \nThe respective number of data fields differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:155) + static member ModuleContainsConstructorButDataFieldsDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("ModuleContainsConstructorButDataFieldsDiffer",",,,%s,,,%s,,,") a0 a1) + /// The module contains the constructor\n %s \nbut its signature specifies\n %s \nThe types of the fields differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:156) + static member ModuleContainsConstructorButTypesOfFieldsDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("ModuleContainsConstructorButTypesOfFieldsDiffer",",,,%s,,,%s,,,") a0 a1) + /// The module contains the constructor\n %s \nbut its signature specifies\n %s \nthe accessibility specified in the signature is more than that specified in the implementation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:157) + static member ModuleContainsConstructorButAccessibilityDiffers(a0 : System.String, a1 : System.String) = (GetStringFunc("ModuleContainsConstructorButAccessibilityDiffers",",,,%s,,,%s,,,") a0 a1) + /// The module contains the field\n %s \nbut its signature specifies\n %s \nThe names differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:158) + static member FieldNotContainedNamesDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("FieldNotContainedNamesDiffer",",,,%s,,,%s,,,") a0 a1) + /// The module contains the field\n %s \nbut its signature specifies\n %s \nthe accessibility specified in the signature is more than that specified in the implementation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:159) + static member FieldNotContainedAccessibilitiesDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("FieldNotContainedAccessibilitiesDiffer",",,,%s,,,%s,,,") a0 a1) + /// The module contains the field\n %s \nbut its signature specifies\n %s \nThe 'static' modifiers differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:160) + static member FieldNotContainedStaticsDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("FieldNotContainedStaticsDiffer",",,,%s,,,%s,,,") a0 a1) + /// The module contains the field\n %s \nbut its signature specifies\n %s \nThe 'mutable' modifiers differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:161) + static member FieldNotContainedMutablesDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("FieldNotContainedMutablesDiffer",",,,%s,,,%s,,,") a0 a1) + /// The module contains the field\n %s \nbut its signature specifies\n %s \nThe 'literal' modifiers differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:162) + static member FieldNotContainedLiteralsDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("FieldNotContainedLiteralsDiffer",",,,%s,,,%s,,,") a0 a1) + /// The module contains the field\n %s \nbut its signature specifies\n %s \nThe types differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:163) + static member FieldNotContainedTypesDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("FieldNotContainedTypesDiffer",",,,%s,,,%s,,,") a0 a1) + /// The implicit instantiation of a generic construct at or near this point could not be resolved because it could resolve to multiple unrelated types, e.g. '%s' and '%s'. Consider using type annotations to resolve the ambiguity + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:164) + static member typrelCannotResolveImplicitGenericInstantiation(a0 : System.String, a1 : System.String) = (331, GetStringFunc("typrelCannotResolveImplicitGenericInstantiation",",,,%s,,,%s,,,") a0 a1) + /// Could not resolve the ambiguity inherent in the use of the operator '%s' at or near this program point. Consider using type annotations to resolve the ambiguity. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:165) + static member typrelCannotResolveAmbiguityInOverloadedOperator(a0 : System.String) = (332, GetStringFunc("typrelCannotResolveAmbiguityInOverloadedOperator",",,,%s,,,") a0) + /// Could not resolve the ambiguity inherent in the use of a 'printf'-style format string + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:166) + static member typrelCannotResolveAmbiguityInPrintf() = (333, GetStringFunc("typrelCannotResolveAmbiguityInPrintf",",,,") ) + /// Could not resolve the ambiguity in the use of a generic construct with an 'enum' constraint at or near this position + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:167) + static member typrelCannotResolveAmbiguityInEnum() = (334, GetStringFunc("typrelCannotResolveAmbiguityInEnum",",,,") ) + /// Could not resolve the ambiguity in the use of a generic construct with a 'delegate' constraint at or near this position + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:168) + static member typrelCannotResolveAmbiguityInDelegate() = (335, GetStringFunc("typrelCannotResolveAmbiguityInDelegate",",,,") ) + /// Invalid value + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:169) + static member typrelInvalidValue() = (337, GetStringFunc("typrelInvalidValue",",,,") ) + /// The signature and implementation are not compatible because the respective type parameter counts differ + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:170) + static member typrelSigImplNotCompatibleParamCountsDiffer() = (338, GetStringFunc("typrelSigImplNotCompatibleParamCountsDiffer",",,,") ) + /// The signature and implementation are not compatible because the type parameter in the class/signature has a different compile-time requirement to the one in the member/implementation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:171) + static member typrelSigImplNotCompatibleCompileTimeRequirementsDiffer() = (339, GetStringFunc("typrelSigImplNotCompatibleCompileTimeRequirementsDiffer",",,,") ) + /// The signature and implementation are not compatible because the declaration of the type parameter '%s' requires a constraint of the form %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:172) + static member typrelSigImplNotCompatibleConstraintsDiffer(a0 : System.String, a1 : System.String) = (340, GetStringFunc("typrelSigImplNotCompatibleConstraintsDiffer",",,,%s,,,%s,,,") a0 a1) + /// The signature and implementation are not compatible because the type parameter '%s' has a constraint of the form %s but the implementation does not. Either remove this constraint from the signature or add it to the implementation. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:173) + static member typrelSigImplNotCompatibleConstraintsDifferRemove(a0 : System.String, a1 : System.String) = (341, GetStringFunc("typrelSigImplNotCompatibleConstraintsDifferRemove",",,,%s,,,%s,,,") a0 a1) + /// The type '%s' implements 'System.IComparable'. Consider also adding an explicit override for 'Object.Equals' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:174) + static member typrelTypeImplementsIComparableShouldOverrideObjectEquals(a0 : System.String) = (342, GetStringFunc("typrelTypeImplementsIComparableShouldOverrideObjectEquals",",,,%s,,,") a0) + /// The type '%s' implements 'System.IComparable' explicitly but provides no corresponding override for 'Object.Equals'. An implementation of 'Object.Equals' has been automatically provided, implemented via 'System.IComparable'. Consider implementing the override 'Object.Equals' explicitly + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:175) + static member typrelTypeImplementsIComparableDefaultObjectEqualsProvided(a0 : System.String) = (343, GetStringFunc("typrelTypeImplementsIComparableDefaultObjectEqualsProvided",",,,%s,,,") a0) + /// The struct, record or union type '%s' has an explicit implementation of 'Object.GetHashCode' or 'Object.Equals'. You must apply the 'CustomEquality' attribute to the type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:176) + static member typrelExplicitImplementationOfGetHashCodeOrEquals(a0 : System.String) = (344, GetStringFunc("typrelExplicitImplementationOfGetHashCodeOrEquals",",,,%s,,,") a0) + /// The struct, record or union type '%s' has an explicit implementation of 'Object.GetHashCode'. Consider implementing a matching override for 'Object.Equals(obj)' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:177) + static member typrelExplicitImplementationOfGetHashCode(a0 : System.String) = (345, GetStringFunc("typrelExplicitImplementationOfGetHashCode",",,,%s,,,") a0) + /// The struct, record or union type '%s' has an explicit implementation of 'Object.Equals'. Consider implementing a matching override for 'Object.GetHashCode()' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:178) + static member typrelExplicitImplementationOfEquals(a0 : System.String) = (346, GetStringFunc("typrelExplicitImplementationOfEquals",",,,%s,,,") a0) + /// The exception definitions are not compatible because a CLI exception mapping is being hidden by a signature. The exception mapping must be visible to other modules. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:179) + static member ExceptionDefsNotCompatibleHiddenBySignature(a0 : System.String, a1 : System.String) = (GetStringFunc("ExceptionDefsNotCompatibleHiddenBySignature",",,,%s,,,%s,,,") a0 a1) + /// The exception definitions are not compatible because the CLI representations differ. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:180) + static member ExceptionDefsNotCompatibleDotNetRepresentationsDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("ExceptionDefsNotCompatibleDotNetRepresentationsDiffer",",,,%s,,,%s,,,") a0 a1) + /// The exception definitions are not compatible because the exception abbreviation is being hidden by the signature. The abbreviation must be visible to other CLI languages. Consider making the abbreviation visible in the signature. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:181) + static member ExceptionDefsNotCompatibleAbbreviationHiddenBySignature(a0 : System.String, a1 : System.String) = (GetStringFunc("ExceptionDefsNotCompatibleAbbreviationHiddenBySignature",",,,%s,,,%s,,,") a0 a1) + /// The exception definitions are not compatible because the exception abbreviations in the signature and implementation differ. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:182) + static member ExceptionDefsNotCompatibleSignaturesDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("ExceptionDefsNotCompatibleSignaturesDiffer",",,,%s,,,%s,,,") a0 a1) + /// The exception definitions are not compatible because the exception declarations differ. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:183) + static member ExceptionDefsNotCompatibleExceptionDeclarationsDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("ExceptionDefsNotCompatibleExceptionDeclarationsDiffer",",,,%s,,,%s,,,") a0 a1) + /// The exception definitions are not compatible because the field '%s' was required by the signature but was not specified by the implementation. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:184) + static member ExceptionDefsNotCompatibleFieldInSigButNotImpl(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ExceptionDefsNotCompatibleFieldInSigButNotImpl",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// The exception definitions are not compatible because the field '%s' was present in the implementation but not in the signature. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:185) + static member ExceptionDefsNotCompatibleFieldInImplButNotSig(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ExceptionDefsNotCompatibleFieldInImplButNotSig",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// The exception definitions are not compatible because the order of the fields is different in the signature and implementation. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:186) + static member ExceptionDefsNotCompatibleFieldOrderDiffers(a0 : System.String, a1 : System.String) = (GetStringFunc("ExceptionDefsNotCompatibleFieldOrderDiffers",",,,%s,,,%s,,,") a0 a1) + /// The namespace or module attributes differ between signature and implementation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:187) + static member typrelModuleNamespaceAttributesDifferInSigAndImpl() = (355, GetStringFunc("typrelModuleNamespaceAttributesDifferInSigAndImpl",",,,") ) + /// This method is over-constrained in its type parameters + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:188) + static member typrelMethodIsOverconstrained() = (356, GetStringFunc("typrelMethodIsOverconstrained",",,,") ) + /// No implementations of '%s' had the correct number of arguments and type parameters. The required signature is '%s'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:189) + static member typrelOverloadNotFound(a0 : System.String, a1 : System.String) = (357, GetStringFunc("typrelOverloadNotFound",",,,%s,,,%s,,,") a0 a1) + /// The override for '%s' was ambiguous + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:190) + static member typrelOverrideWasAmbiguous(a0 : System.String) = (358, GetStringFunc("typrelOverrideWasAmbiguous",",,,%s,,,") a0) + /// More than one override implements '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:191) + static member typrelMoreThenOneOverride(a0 : System.String) = (359, GetStringFunc("typrelMoreThenOneOverride",",,,%s,,,") a0) + /// The method '%s' is sealed and cannot be overridden + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:192) + static member typrelMethodIsSealed(a0 : System.String) = (360, GetStringFunc("typrelMethodIsSealed",",,,%s,,,") a0) + /// The override '%s' implements more than one abstract slot, e.g. '%s' and '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:193) + static member typrelOverrideImplementsMoreThenOneSlot(a0 : System.String, a1 : System.String, a2 : System.String) = (361, GetStringFunc("typrelOverrideImplementsMoreThenOneSlot",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Duplicate or redundant interface + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:194) + static member typrelDuplicateInterface() = (362, GetStringFunc("typrelDuplicateInterface",",,,") ) + /// The interface '%s' is included in multiple explicitly implemented interface types. Add an explicit implementation of this interface. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:195) + static member typrelNeedExplicitImplementation(a0 : System.String) = (363, GetStringFunc("typrelNeedExplicitImplementation",",,,%s,,,") a0) + /// A named argument has been assigned more than one value + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:196) + static member typrelNamedArgumentHasBeenAssignedMoreThenOnce() = (364, GetStringFunc("typrelNamedArgumentHasBeenAssignedMoreThenOnce",",,,") ) + /// No implementation was given for '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:197) + static member typrelNoImplementationGiven(a0 : System.String) = (365, GetStringFunc("typrelNoImplementationGiven",",,,%s,,,") a0) + /// No implementation was given for '%s'. Note that all interface members must be implemented and listed under an appropriate 'interface' declaration, e.g. 'interface ... with member ...'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:198) + static member typrelNoImplementationGivenWithSuggestion(a0 : System.String) = (366, GetStringFunc("typrelNoImplementationGivenWithSuggestion",",,,%s,,,") a0) + /// The member '%s' does not have the correct number of arguments. The required signature is '%s'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:199) + static member typrelMemberDoesNotHaveCorrectNumberOfArguments(a0 : System.String, a1 : System.String) = (367, GetStringFunc("typrelMemberDoesNotHaveCorrectNumberOfArguments",",,,%s,,,%s,,,") a0 a1) + /// The member '%s' does not have the correct number of method type parameters. The required signature is '%s'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:200) + static member typrelMemberDoesNotHaveCorrectNumberOfTypeParameters(a0 : System.String, a1 : System.String) = (368, GetStringFunc("typrelMemberDoesNotHaveCorrectNumberOfTypeParameters",",,,%s,,,%s,,,") a0 a1) + /// The member '%s' does not have the correct kinds of generic parameters. The required signature is '%s'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:201) + static member typrelMemberDoesNotHaveCorrectKindsOfGenericParameters(a0 : System.String, a1 : System.String) = (369, GetStringFunc("typrelMemberDoesNotHaveCorrectKindsOfGenericParameters",",,,%s,,,%s,,,") a0 a1) + /// The member '%s' cannot be used to implement '%s'. The required signature is '%s'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:202) + static member typrelMemberCannotImplement(a0 : System.String, a1 : System.String, a2 : System.String) = (370, GetStringFunc("typrelMemberCannotImplement",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Error while parsing embedded IL + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:206) + static member astParseEmbeddedILError() = (371, GetStringFunc("astParseEmbeddedILError",",,,") ) + /// Error while parsing embedded IL type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:207) + static member astParseEmbeddedILTypeError() = (372, GetStringFunc("astParseEmbeddedILTypeError",",,,") ) + /// This indexer notation has been removed from the F# language + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:208) + static member astDeprecatedIndexerNotation() = (GetStringFunc("astDeprecatedIndexerNotation",",,,") ) + /// Invalid expression on left of assignment + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:209) + static member astInvalidExprLeftHandOfAssignment() = (374, GetStringFunc("astInvalidExprLeftHandOfAssignment",",,,") ) + /// The 'ReferenceEquality' attribute cannot be used on structs. Consider using the 'StructuralEquality' attribute instead, or implement an override for 'System.Object.Equals(obj)'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:213) + static member augNoRefEqualsOnStruct() = (376, GetStringFunc("augNoRefEqualsOnStruct",",,,") ) + /// This type uses an invalid mix of the attributes 'NoEquality', 'ReferenceEquality', 'StructuralEquality', 'NoComparison' and 'StructuralComparison' attributes + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:214) + static member augInvalidAttrs() = (377, GetStringFunc("augInvalidAttrs",",,,") ) + /// The 'NoEquality' attribute must be used in conjunction with the 'NoComparison' attribute + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:215) + static member augNoEqualityNeedsNoComparison() = (378, GetStringFunc("augNoEqualityNeedsNoComparison",",,,") ) + /// The 'StructuralComparison' attribute must be used in conjunction with the 'StructuralEquality' attribute + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:216) + static member augStructCompNeedsStructEquality() = (379, GetStringFunc("augStructCompNeedsStructEquality",",,,") ) + /// The 'StructuralEquality' attribute must be used in conjunction with the 'NoComparison' or 'StructuralComparison' attributes + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:217) + static member augStructEqNeedsNoCompOrStructComp() = (380, GetStringFunc("augStructEqNeedsNoCompOrStructComp",",,,") ) + /// A type cannot have both the 'ReferenceEquality' and 'StructuralEquality' or 'StructuralComparison' attributes + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:218) + static member augTypeCantHaveRefEqAndStructAttrs() = (381, GetStringFunc("augTypeCantHaveRefEqAndStructAttrs",",,,") ) + /// Only record, union, exception and struct types may be augmented with the 'ReferenceEquality', 'StructuralEquality' and 'StructuralComparison' attributes + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:219) + static member augOnlyCertainTypesCanHaveAttrs() = (382, GetStringFunc("augOnlyCertainTypesCanHaveAttrs",",,,") ) + /// A type with attribute 'ReferenceEquality' cannot have an explicit implementation of 'Object.Equals(obj)', 'System.IEquatable<_>' or 'System.Collections.IStructuralEquatable' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:220) + static member augRefEqCantHaveObjEquals() = (383, GetStringFunc("augRefEqCantHaveObjEquals",",,,") ) + /// A type with attribute 'CustomEquality' must have an explicit implementation of at least one of 'Object.Equals(obj)', 'System.IEquatable<_>' or 'System.Collections.IStructuralEquatable' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:221) + static member augCustomEqNeedsObjEquals() = (384, GetStringFunc("augCustomEqNeedsObjEquals",",,,") ) + /// A type with attribute 'CustomComparison' must have an explicit implementation of at least one of 'System.IComparable' or 'System.Collections.IStructuralComparable' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:222) + static member augCustomCompareNeedsIComp() = (385, GetStringFunc("augCustomCompareNeedsIComp",",,,") ) + /// A type with attribute 'NoEquality' should not usually have an explicit implementation of 'Object.Equals(obj)'. Disable this warning if this is intentional for interoperability purposes + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:223) + static member augNoEqNeedsNoObjEquals() = (386, GetStringFunc("augNoEqNeedsNoObjEquals",",,,") ) + /// A type with attribute 'NoComparison' should not usually have an explicit implementation of 'System.IComparable', 'System.IComparable<_>' or 'System.Collections.IStructuralComparable'. Disable this warning if this is intentional for interoperability purposes + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:224) + static member augNoCompCantImpIComp() = (386, GetStringFunc("augNoCompCantImpIComp",",,,") ) + /// The 'CustomEquality' attribute must be used in conjunction with the 'NoComparison' or 'CustomComparison' attributes + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:225) + static member augCustomEqNeedsNoCompOrCustomComp() = (387, GetStringFunc("augCustomEqNeedsNoCompOrCustomComp",",,,") ) + /// Positional specifiers are not permitted in format strings + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:229) + static member forPositionalSpecifiersNotPermitted() = (GetStringFunc("forPositionalSpecifiersNotPermitted",",,,") ) + /// Missing format specifier + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:230) + static member forMissingFormatSpecifier() = (GetStringFunc("forMissingFormatSpecifier",",,,") ) + /// '%s' flag set twice + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:231) + static member forFlagSetTwice(a0 : System.String) = (GetStringFunc("forFlagSetTwice",",,,%s,,,") a0) + /// Prefix flag (' ' or '+') set twice + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:232) + static member forPrefixFlagSpacePlusSetTwice() = (GetStringFunc("forPrefixFlagSpacePlusSetTwice",",,,") ) + /// The # formatting modifier is invalid in F# + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:233) + static member forHashSpecifierIsInvalid() = (GetStringFunc("forHashSpecifierIsInvalid",",,,") ) + /// Bad precision in format specifier + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:234) + static member forBadPrecision() = (GetStringFunc("forBadPrecision",",,,") ) + /// Bad width in format specifier + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:235) + static member forBadWidth() = (GetStringFunc("forBadWidth",",,,") ) + /// '%s' format does not support '0' flag + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:236) + static member forDoesNotSupportZeroFlag(a0 : System.String) = (GetStringFunc("forDoesNotSupportZeroFlag",",,,%s,,,") a0) + /// Precision missing after the '.' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:237) + static member forPrecisionMissingAfterDot() = (GetStringFunc("forPrecisionMissingAfterDot",",,,") ) + /// '%s' format does not support precision + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:238) + static member forFormatDoesntSupportPrecision(a0 : System.String) = (GetStringFunc("forFormatDoesntSupportPrecision",",,,%s,,,") a0) + /// Bad format specifier (after l or L): Expected ld,li,lo,lu,lx or lX. In F# code you can use %%d, %%x, %%o or %%u instead, which are overloaded to work with all basic integer types. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:239) + static member forBadFormatSpecifier() = (GetStringFunc("forBadFormatSpecifier",",,,") ) + /// The 'l' or 'L' in this format specifier is unnecessary. In F# code you can use %%d, %%x, %%o or %%u instead, which are overloaded to work with all basic integer types. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:240) + static member forLIsUnnecessary() = (GetStringFunc("forLIsUnnecessary",",,,") ) + /// The 'h' or 'H' in this format specifier is unnecessary. You can use %%d, %%x, %%o or %%u instead, which are overloaded to work with all basic integer types.. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:241) + static member forHIsUnnecessary() = (GetStringFunc("forHIsUnnecessary",",,,") ) + /// '%s' does not support prefix '%s' flag + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:242) + static member forDoesNotSupportPrefixFlag(a0 : System.String, a1 : System.String) = (GetStringFunc("forDoesNotSupportPrefixFlag",",,,%s,,,%s,,,") a0 a1) + /// Bad format specifier: '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:243) + static member forBadFormatSpecifierGeneral(a0 : System.String) = (GetStringFunc("forBadFormatSpecifierGeneral",",,,%s,,,") a0) + /// System.Environment.Exit did not exit + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:247) + static member elSysEnvExitDidntExit() = (GetStringFunc("elSysEnvExitDidntExit",",,,") ) + /// The treatment of this operator is now handled directly by the F# compiler and its meaning cannot be redefined + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:248) + static member elDeprecatedOperator() = (GetStringFunc("elDeprecatedOperator",",,,") ) + /// A protected member is called or 'base' is being used. This is only allowed in the direct implementation of members since they could escape their object scope. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:252) + static member chkProtectedOrBaseCalled() = (405, GetStringFunc("chkProtectedOrBaseCalled",",,,") ) + /// The byref-typed variable '%s' is used in an invalid way. Byrefs cannot be captured by closures or passed to inner functions. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:253) + static member chkByrefUsedInInvalidWay(a0 : System.String) = (406, GetStringFunc("chkByrefUsedInInvalidWay",",,,%s,,,") a0) + /// The mutable variable '%s' is used in an invalid way. Mutable variables cannot be captured by closures. Consider eliminating this use of mutation or using a heap-allocated mutable reference cell via 'ref' and '!'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:254) + static member chkMutableUsedInInvalidWay(a0 : System.String) = (407, GetStringFunc("chkMutableUsedInInvalidWay",",,,%s,,,") a0) + /// The 'base' keyword is used in an invalid way. Base calls cannot be used in closures. Consider using a private member to make base calls. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:255) + static member chkBaseUsedInInvalidWay() = (408, GetStringFunc("chkBaseUsedInInvalidWay",",,,") ) + /// The variable '%s' is used in an invalid way + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:256) + static member chkVariableUsedInInvalidWay(a0 : System.String) = (GetStringFunc("chkVariableUsedInInvalidWay",",,,%s,,,") a0) + /// The type '%s' is less accessible than the value, member or type '%s' it is used in + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:257) + static member chkTypeLessAccessibleThanType(a0 : System.String, a1 : System.String) = (410, GetStringFunc("chkTypeLessAccessibleThanType",",,,%s,,,%s,,,") a0 a1) + /// 'System.Void' can only be used as 'typeof' in F# + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:258) + static member chkSystemVoidOnlyInTypeof() = (411, GetStringFunc("chkSystemVoidOnlyInTypeof",",,,") ) + /// A type instantiation involves a byref type. This is not permitted by the rules of Common IL. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:259) + static member chkErrorUseOfByref() = (412, GetStringFunc("chkErrorUseOfByref",",,,") ) + /// Calls to 'reraise' may only occur directly in a handler of a try-with + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:260) + static member chkErrorContainsCallToRethrow() = (413, GetStringFunc("chkErrorContainsCallToRethrow",",,,") ) + /// Expression-splicing operators may only be used within quotations + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:261) + static member chkSplicingOnlyInQuotations() = (414, GetStringFunc("chkSplicingOnlyInQuotations",",,,") ) + /// First-class uses of the expression-splicing operator are not permitted + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:262) + static member chkNoFirstClassSplicing() = (415, GetStringFunc("chkNoFirstClassSplicing",",,,") ) + /// First-class uses of the address-of operators are not permitted + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:263) + static member chkNoFirstClassAddressOf() = (416, GetStringFunc("chkNoFirstClassAddressOf",",,,") ) + /// First-class uses of the 'reraise' function is not permitted + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:264) + static member chkNoFirstClassRethrow() = (417, GetStringFunc("chkNoFirstClassRethrow",",,,") ) + /// The byref typed value '%s' cannot be used at this point + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:265) + static member chkNoByrefAtThisPoint(a0 : System.String) = (418, GetStringFunc("chkNoByrefAtThisPoint",",,,%s,,,") a0) + /// 'base' values may only be used to make direct calls to the base implementations of overridden members + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:266) + static member chkLimitationsOfBaseKeyword() = (419, GetStringFunc("chkLimitationsOfBaseKeyword",",,,") ) + /// Object constructors cannot directly use try/with and try/finally prior to the initialization of the object. This includes constructs such as 'for x in ...' that may elaborate to uses of these constructs. This is a limitation imposed by Common IL. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:267) + static member chkObjCtorsCantUseExceptionHandling() = (420, GetStringFunc("chkObjCtorsCantUseExceptionHandling",",,,") ) + /// The address of the variable '%s' cannot be used at this point + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:268) + static member chkNoAddressOfAtThisPoint(a0 : System.String) = (421, GetStringFunc("chkNoAddressOfAtThisPoint",",,,%s,,,") a0) + /// The address of the static field '%s' cannot be used at this point + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:269) + static member chkNoAddressStaticFieldAtThisPoint(a0 : System.String) = (422, GetStringFunc("chkNoAddressStaticFieldAtThisPoint",",,,%s,,,") a0) + /// The address of the field '%s' cannot be used at this point + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:270) + static member chkNoAddressFieldAtThisPoint(a0 : System.String) = (423, GetStringFunc("chkNoAddressFieldAtThisPoint",",,,%s,,,") a0) + /// The address of an array element cannot be used at this point + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:271) + static member chkNoAddressOfArrayElementAtThisPoint() = (424, GetStringFunc("chkNoAddressOfArrayElementAtThisPoint",",,,") ) + /// The type of a first-class function cannot contain byrefs + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:272) + static member chkFirstClassFuncNoByref() = (425, GetStringFunc("chkFirstClassFuncNoByref",",,,") ) + /// A method return type would contain byrefs which is not permitted + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:273) + static member chkReturnTypeNoByref() = (426, GetStringFunc("chkReturnTypeNoByref",",,,") ) + /// Invalid custom attribute value (not a constant or literal) + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:274) + static member chkInvalidCustAttrVal() = (428, GetStringFunc("chkInvalidCustAttrVal",",,,") ) + /// The attribute type '%s' has 'AllowMultiple=false'. Multiple instances of this attribute cannot be attached to a single language element. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:275) + static member chkAttrHasAllowMultiFalse(a0 : System.String) = (429, GetStringFunc("chkAttrHasAllowMultiFalse",",,,%s,,,") a0) + /// The member '%s' is used in an invalid way. A use of '%s' has been inferred prior to its definition at or near '%s'. This is an invalid forward reference. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:276) + static member chkMemberUsedInInvalidWay(a0 : System.String, a1 : System.String, a2 : System.String) = (430, GetStringFunc("chkMemberUsedInInvalidWay",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// A byref typed value would be stored here. Top-level let-bound byref values are not permitted. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:277) + static member chkNoByrefAsTopValue() = (431, GetStringFunc("chkNoByrefAsTopValue",",,,") ) + /// [] terms cannot contain uses of the prefix splice operator '%%' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:278) + static member chkReflectedDefCantSplice() = (432, GetStringFunc("chkReflectedDefCantSplice",",,,") ) + /// A function labeled with the 'EntryPointAttribute' attribute must be the last declaration in the last file in the compilation sequence, and can only be used when compiling to a .exe + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:279) + static member chkEntryPointUsage() = (433, GetStringFunc("chkEntryPointUsage",",,,") ) + /// compiled form of the union case + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:280) + static member chkUnionCaseCompiledForm() = (GetStringFunc("chkUnionCaseCompiledForm",",,,") ) + /// default augmentation of the union case + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:281) + static member chkUnionCaseDefaultAugmentation() = (GetStringFunc("chkUnionCaseDefaultAugmentation",",,,") ) + /// Name clash. The property '%s' has the same name as a method in this type. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:282) + static member chkPropertySameNameMethod(a0 : System.String) = (434, GetStringFunc("chkPropertySameNameMethod",",,,%s,,,") a0) + /// The property '%s' has a getter and a setter that do not match. If one is abstract then the other must be as well. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:283) + static member chkGetterSetterDoNotMatchAbstract(a0 : System.String) = (435, GetStringFunc("chkGetterSetterDoNotMatchAbstract",",,,%s,,,") a0) + /// The property '%s' has the same name as another property in this type, but one takes indexer arguments and the other does not. You may be missing an indexer argument to one of your properties. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:284) + static member chkPropertySameNameIndexer(a0 : System.String) = (436, GetStringFunc("chkPropertySameNameIndexer",",,,%s,,,") a0) + /// A type would store a byref typed value. This is not permitted by Common IL. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:285) + static member chkCantStoreByrefValue() = (437, GetStringFunc("chkCantStoreByrefValue",",,,") ) + /// Duplicate method. The method '%s' has the same name and signature as another method in this type. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:287) + static member chkDuplicateMethod(a0 : System.String) = (438, GetStringFunc("chkDuplicateMethod",",,,%s,,,") a0) + /// Duplicate method. The method '%s' has the same name and signature as another method in this type once tuples, functions, units of measure and/or provided types are erased. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:288) + static member chkDuplicateMethodWithSuffix(a0 : System.String) = (438, GetStringFunc("chkDuplicateMethodWithSuffix",",,,%s,,,") a0) + /// The method '%s' has curried arguments but has the same name as another method in this type. Methods with curried arguments cannot be overloaded. Consider using a method taking tupled arguments. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:289) + static member chkDuplicateMethodCurried(a0 : System.String) = (439, GetStringFunc("chkDuplicateMethodCurried",",,,%s,,,") a0) + /// Methods with curried arguments cannot declare 'out', 'ParamArray', 'optional' or 'byref' arguments + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:290) + static member chkCurriedMethodsCantHaveOutParams() = (440, GetStringFunc("chkCurriedMethodsCantHaveOutParams",",,,") ) + /// Duplicate property. The property '%s' has the same name and signature as another property in this type. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:291) + static member chkDuplicateProperty(a0 : System.String) = (441, GetStringFunc("chkDuplicateProperty",",,,%s,,,") a0) + /// Duplicate property. The property '%s' has the same name and signature as another property in this type once tuples, functions, units of measure and/or provided types are erased. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:292) + static member chkDuplicatePropertyWithSuffix(a0 : System.String) = (441, GetStringFunc("chkDuplicatePropertyWithSuffix",",,,%s,,,") a0) + /// Duplicate method. The abstract method '%s' has the same name and signature as an abstract method in an inherited type. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:293) + static member chkDuplicateMethodInheritedType(a0 : System.String) = (442, GetStringFunc("chkDuplicateMethodInheritedType",",,,%s,,,") a0) + /// Duplicate method. The abstract method '%s' has the same name and signature as an abstract method in an inherited type once tuples, functions, units of measure and/or provided types are erased. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:294) + static member chkDuplicateMethodInheritedTypeWithSuffix(a0 : System.String) = (442, GetStringFunc("chkDuplicateMethodInheritedTypeWithSuffix",",,,%s,,,") a0) + /// This type implements or inherits the same interface at different generic instantiations '%s' and '%s'. This is not permitted in this version of F#. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:295) + static member chkMultipleGenericInterfaceInstantiations(a0 : System.String, a1 : System.String) = (443, GetStringFunc("chkMultipleGenericInterfaceInstantiations",",,,%s,,,%s,,,") a0 a1) + /// The type of a field using the 'DefaultValue' attribute must admit default initialization, i.e. have 'null' as a proper value or be a struct type whose fields all admit default initialization. You can use 'DefaultValue(false)' to disable this check + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:296) + static member chkValueWithDefaultValueMustHaveDefaultValue() = (444, GetStringFunc("chkValueWithDefaultValueMustHaveDefaultValue",",,,") ) + /// The type abbreviation contains byrefs. This is not permitted by F#. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:297) + static member chkNoByrefInTypeAbbrev() = (445, GetStringFunc("chkNoByrefInTypeAbbrev",",,,") ) + /// The variable '%s' is bound in a quotation but is used as part of a spliced expression. This is not permitted since it may escape its scope. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:301) + static member crefBoundVarUsedInSplice(a0 : System.String) = (446, GetStringFunc("crefBoundVarUsedInSplice",",,,%s,,,") a0) + /// Quotations cannot contain uses of generic expressions + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:302) + static member crefQuotationsCantContainGenericExprs() = (447, GetStringFunc("crefQuotationsCantContainGenericExprs",",,,") ) + /// Quotations cannot contain function definitions that are inferred or declared to be generic. Consider adding some type constraints to make this a valid quoted expression. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:303) + static member crefQuotationsCantContainGenericFunctions() = (448, GetStringFunc("crefQuotationsCantContainGenericFunctions",",,,") ) + /// Quotations cannot contain object expressions + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:304) + static member crefQuotationsCantContainObjExprs() = (449, GetStringFunc("crefQuotationsCantContainObjExprs",",,,") ) + /// Quotations cannot contain expressions that take the address of a field + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:305) + static member crefQuotationsCantContainAddressOf() = (450, GetStringFunc("crefQuotationsCantContainAddressOf",",,,") ) + /// Quotations cannot contain expressions that fetch static fields + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:306) + static member crefQuotationsCantContainStaticFieldRef() = (451, GetStringFunc("crefQuotationsCantContainStaticFieldRef",",,,") ) + /// Quotations cannot contain inline assembly code or pattern matching on arrays + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:307) + static member crefQuotationsCantContainInlineIL() = (452, GetStringFunc("crefQuotationsCantContainInlineIL",",,,") ) + /// Quotations cannot contain descending for loops + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:308) + static member crefQuotationsCantContainDescendingForLoops() = (453, GetStringFunc("crefQuotationsCantContainDescendingForLoops",",,,") ) + /// Quotations cannot contain expressions that fetch union case indexes + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:309) + static member crefQuotationsCantFetchUnionIndexes() = (454, GetStringFunc("crefQuotationsCantFetchUnionIndexes",",,,") ) + /// Quotations cannot contain expressions that set union case fields + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:310) + static member crefQuotationsCantSetUnionFields() = (455, GetStringFunc("crefQuotationsCantSetUnionFields",",,,") ) + /// Quotations cannot contain expressions that set fields in exception values + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:311) + static member crefQuotationsCantSetExceptionFields() = (456, GetStringFunc("crefQuotationsCantSetExceptionFields",",,,") ) + /// Quotations cannot contain expressions that require byref pointers + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:312) + static member crefQuotationsCantRequireByref() = (457, GetStringFunc("crefQuotationsCantRequireByref",",,,") ) + /// Quotations cannot contain expressions that make member constraint calls, or uses of operators that implicitly resolve to a member constraint call + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:313) + static member crefQuotationsCantCallTraitMembers() = (458, GetStringFunc("crefQuotationsCantCallTraitMembers",",,,") ) + /// Quotations cannot contain this kind of constant + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:314) + static member crefQuotationsCantContainThisConstant() = (459, GetStringFunc("crefQuotationsCantContainThisConstant",",,,") ) + /// Quotations cannot contain this kind of pattern match + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:315) + static member crefQuotationsCantContainThisPatternMatch() = (460, GetStringFunc("crefQuotationsCantContainThisPatternMatch",",,,") ) + /// Quotations cannot contain array pattern matching + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:316) + static member crefQuotationsCantContainArrayPatternMatching() = (461, GetStringFunc("crefQuotationsCantContainArrayPatternMatching",",,,") ) + /// Quotations cannot contain this kind of type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:317) + static member crefQuotationsCantContainThisType() = (462, GetStringFunc("crefQuotationsCantContainThisType",",,,") ) + /// The declared type parameter '%s' cannot be used here since the type parameter cannot be resolved at compile time + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:321) + static member csTypeCannotBeResolvedAtCompileTime(a0 : System.String) = (GetStringFunc("csTypeCannotBeResolvedAtCompileTime",",,,%s,,,") a0) + /// This code is less generic than indicated by its annotations. A unit-of-measure specified using '_' has been determined to be '1', i.e. dimensionless. Consider making the code generic, or removing the use of '_'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:322) + static member csCodeLessGeneric() = (464, GetStringFunc("csCodeLessGeneric",",,,") ) + /// Type inference problem too complicated (maximum iteration depth reached). Consider adding further type annotations. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:323) + static member csTypeInferenceMaxDepth() = (465, GetStringFunc("csTypeInferenceMaxDepth",",,,") ) + /// Expected arguments to an instance member + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:324) + static member csExpectedArguments() = (GetStringFunc("csExpectedArguments",",,,") ) + /// This indexer expects %d arguments but is here given %d + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:325) + static member csIndexArgumentMismatch(a0 : System.Int32, a1 : System.Int32) = (GetStringFunc("csIndexArgumentMismatch",",,,%d,,,%d,,,") a0 a1) + /// Expecting a type supporting the operator '%s' but given a function type. You may be missing an argument to a function. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:326) + static member csExpectTypeWithOperatorButGivenFunction(a0 : System.String) = (GetStringFunc("csExpectTypeWithOperatorButGivenFunction",",,,%s,,,") a0) + /// Expecting a type supporting the operator '%s' but given a tuple type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:327) + static member csExpectTypeWithOperatorButGivenTuple(a0 : System.String) = (GetStringFunc("csExpectTypeWithOperatorButGivenTuple",",,,%s,,,") a0) + /// None of the types '%s' support the operator '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:328) + static member csTypesDoNotSupportOperator(a0 : System.String, a1 : System.String) = (GetStringFunc("csTypesDoNotSupportOperator",",,,%s,,,%s,,,") a0 a1) + /// The type '%s' does not support the operator '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:329) + static member csTypeDoesNotSupportOperator(a0 : System.String, a1 : System.String) = (GetStringFunc("csTypeDoesNotSupportOperator",",,,%s,,,%s,,,") a0 a1) + /// None of the types '%s' support the operator '%s'. Consider opening the module 'Microsoft.FSharp.Linq.NullableOperators'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:330) + static member csTypesDoNotSupportOperatorNullable(a0 : System.String, a1 : System.String) = (GetStringFunc("csTypesDoNotSupportOperatorNullable",",,,%s,,,%s,,,") a0 a1) + /// The type '%s' does not support the operator '%s'. Consider opening the module 'Microsoft.FSharp.Linq.NullableOperators'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:331) + static member csTypeDoesNotSupportOperatorNullable(a0 : System.String, a1 : System.String) = (GetStringFunc("csTypeDoesNotSupportOperatorNullable",",,,%s,,,%s,,,") a0 a1) + /// The type '%s' does not support a conversion to the type '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:332) + static member csTypeDoesNotSupportConversion(a0 : System.String, a1 : System.String) = (GetStringFunc("csTypeDoesNotSupportConversion",",,,%s,,,%s,,,") a0 a1) + /// The type '%s' has a method '%s' (full name '%s'), but the method is static + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:333) + static member csMethodFoundButIsStatic(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("csMethodFoundButIsStatic",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// The type '%s' has a method '%s' (full name '%s'), but the method is not static + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:334) + static member csMethodFoundButIsNotStatic(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("csMethodFoundButIsNotStatic",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// The constraints 'struct' and 'not struct' are inconsistent + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:335) + static member csStructConstraintInconsistent() = (472, GetStringFunc("csStructConstraintInconsistent",",,,") ) + /// The type '%s' does not have 'null' as a proper value + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:336) + static member csTypeDoesNotHaveNull(a0 : System.String) = (GetStringFunc("csTypeDoesNotHaveNull",",,,%s,,,") a0) + /// The type '%s' does not have 'null' as a proper value. To create a null value for a Nullable type use 'System.Nullable()'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:337) + static member csNullableTypeDoesNotHaveNull(a0 : System.String) = (GetStringFunc("csNullableTypeDoesNotHaveNull",",,,%s,,,") a0) + /// The type '%s' does not support the 'comparison' constraint because it has the 'NoComparison' attribute + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:338) + static member csTypeDoesNotSupportComparison1(a0 : System.String) = (GetStringFunc("csTypeDoesNotSupportComparison1",",,,%s,,,") a0) + /// The type '%s' does not support the 'comparison' constraint. For example, it does not support the 'System.IComparable' interface + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:339) + static member csTypeDoesNotSupportComparison2(a0 : System.String) = (GetStringFunc("csTypeDoesNotSupportComparison2",",,,%s,,,") a0) + /// The type '%s' does not support the 'comparison' constraint because it is a record, union or struct with one or more structural element types which do not support the 'comparison' constraint. Either avoid the use of comparison with this type, or add the 'StructuralComparison' attribute to the type to determine which field type does not support comparison + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:340) + static member csTypeDoesNotSupportComparison3(a0 : System.String) = (GetStringFunc("csTypeDoesNotSupportComparison3",",,,%s,,,") a0) + /// The type '%s' does not support the 'equality' constraint because it has the 'NoEquality' attribute + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:341) + static member csTypeDoesNotSupportEquality1(a0 : System.String) = (GetStringFunc("csTypeDoesNotSupportEquality1",",,,%s,,,") a0) + /// The type '%s' does not support the 'equality' constraint because it is a function type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:342) + static member csTypeDoesNotSupportEquality2(a0 : System.String) = (GetStringFunc("csTypeDoesNotSupportEquality2",",,,%s,,,") a0) + /// The type '%s' does not support the 'equality' constraint because it is a record, union or struct with one or more structural element types which do not support the 'equality' constraint. Either avoid the use of equality with this type, or add the 'StructuralEquality' attribute to the type to determine which field type does not support equality + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:343) + static member csTypeDoesNotSupportEquality3(a0 : System.String) = (GetStringFunc("csTypeDoesNotSupportEquality3",",,,%s,,,") a0) + /// The type '%s' is not a CLI enum type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:344) + static member csTypeIsNotEnumType(a0 : System.String) = (GetStringFunc("csTypeIsNotEnumType",",,,%s,,,") a0) + /// The type '%s' has a non-standard delegate type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:345) + static member csTypeHasNonStandardDelegateType(a0 : System.String) = (GetStringFunc("csTypeHasNonStandardDelegateType",",,,%s,,,") a0) + /// The type '%s' is not a CLI delegate type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:346) + static member csTypeIsNotDelegateType(a0 : System.String) = (GetStringFunc("csTypeIsNotDelegateType",",,,%s,,,") a0) + /// This type parameter cannot be instantiated to 'Nullable'. This is a restriction imposed in order to ensure the meaning of 'null' in some CLI languages is not confusing when used in conjunction with 'Nullable' values. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:347) + static member csTypeParameterCannotBeNullable() = (GetStringFunc("csTypeParameterCannotBeNullable",",,,") ) + /// A generic construct requires that the type '%s' is a CLI or F# struct type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:348) + static member csGenericConstructRequiresStructType(a0 : System.String) = (GetStringFunc("csGenericConstructRequiresStructType",",,,%s,,,") a0) + /// A generic construct requires that the type '%s' is an unmanaged type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:349) + static member csGenericConstructRequiresUnmanagedType(a0 : System.String) = (GetStringFunc("csGenericConstructRequiresUnmanagedType",",,,%s,,,") a0) + /// The type '%s' is not compatible with any of the types %s, arising from the use of a printf-style format string + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:350) + static member csTypeNotCompatibleBecauseOfPrintf(a0 : System.String, a1 : System.String) = (GetStringFunc("csTypeNotCompatibleBecauseOfPrintf",",,,%s,,,%s,,,") a0 a1) + /// A generic construct requires that the type '%s' have reference semantics, but it does not, i.e. it is a struct + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:351) + static member csGenericConstructRequiresReferenceSemantics(a0 : System.String) = (GetStringFunc("csGenericConstructRequiresReferenceSemantics",",,,%s,,,") a0) + /// A generic construct requires that the type '%s' be non-abstract + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:352) + static member csGenericConstructRequiresNonAbstract(a0 : System.String) = (GetStringFunc("csGenericConstructRequiresNonAbstract",",,,%s,,,") a0) + /// A generic construct requires that the type '%s' have a public default constructor + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:353) + static member csGenericConstructRequiresPublicDefaultConstructor(a0 : System.String) = (GetStringFunc("csGenericConstructRequiresPublicDefaultConstructor",",,,%s,,,") a0) + /// Type instantiation length mismatch + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:354) + static member csTypeInstantiationLengthMismatch() = (483, GetStringFunc("csTypeInstantiationLengthMismatch",",,,") ) + /// Optional arguments not permitted here + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:355) + static member csOptionalArgumentNotPermittedHere() = (484, GetStringFunc("csOptionalArgumentNotPermittedHere",",,,") ) + /// %s is not a static member + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:356) + static member csMemberIsNotStatic(a0 : System.String) = (485, GetStringFunc("csMemberIsNotStatic",",,,%s,,,") a0) + /// %s is not an instance member + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:357) + static member csMemberIsNotInstance(a0 : System.String) = (486, GetStringFunc("csMemberIsNotInstance",",,,%s,,,") a0) + /// Argument length mismatch + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:358) + static member csArgumentLengthMismatch() = (487, GetStringFunc("csArgumentLengthMismatch",",,,") ) + /// The argument types don't match + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:359) + static member csArgumentTypesDoNotMatch() = (488, GetStringFunc("csArgumentTypesDoNotMatch",",,,") ) + /// This method expects a CLI 'params' parameter in this position. 'params' is a way of passing a variable number of arguments to a method in languages such as C#. Consider passing an array for this argument + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:360) + static member csMethodExpectsParams() = (489, GetStringFunc("csMethodExpectsParams",",,,") ) + /// The member or object constructor '%s' is not %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:361) + static member csMemberIsNotAccessible(a0 : System.String, a1 : System.String) = (490, GetStringFunc("csMemberIsNotAccessible",",,,%s,,,%s,,,") a0 a1) + /// The member or object constructor '%s' is not %s. Private members may only be accessed from within the declaring type. Protected members may only be accessed from an extending type and cannot be accessed from inner lambda expressions. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:362) + static member csMemberIsNotAccessible2(a0 : System.String, a1 : System.String) = (491, GetStringFunc("csMemberIsNotAccessible2",",,,%s,,,%s,,,") a0 a1) + /// %s is not a static method + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:363) + static member csMethodIsNotAStaticMethod(a0 : System.String) = (492, GetStringFunc("csMethodIsNotAStaticMethod",",,,%s,,,") a0) + /// %s is not an instance method + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:364) + static member csMethodIsNotAnInstanceMethod(a0 : System.String) = (493, GetStringFunc("csMethodIsNotAnInstanceMethod",",,,%s,,,") a0) + /// The member or object constructor '%s' has no argument or settable return property '%s'. %s. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:365) + static member csMemberHasNoArgumentOrReturnProperty(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("csMemberHasNoArgumentOrReturnProperty",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// The required signature is %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:366) + static member csRequiredSignatureIs(a0 : System.String) = (495, GetStringFunc("csRequiredSignatureIs",",,,%s,,,") a0) + /// The member or object constructor '%s' requires %d argument(s). The required signature is '%s'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:367) + static member csMemberSignatureMismatch(a0 : System.String, a1 : System.Int32, a2 : System.String) = (496, GetStringFunc("csMemberSignatureMismatch",",,,%s,,,%d,,,%s,,,") a0 a1 a2) + /// The member or object constructor '%s' requires %d additional argument(s). The required signature is '%s'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:368) + static member csMemberSignatureMismatch2(a0 : System.String, a1 : System.Int32, a2 : System.String) = (497, GetStringFunc("csMemberSignatureMismatch2",",,,%s,,,%d,,,%s,,,") a0 a1 a2) + /// The member or object constructor '%s' requires %d argument(s). The required signature is '%s'. Some names for missing arguments are %s. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:369) + static member csMemberSignatureMismatch3(a0 : System.String, a1 : System.Int32, a2 : System.String, a3 : System.String) = (498, GetStringFunc("csMemberSignatureMismatch3",",,,%s,,,%d,,,%s,,,%s,,,") a0 a1 a2 a3) + /// The member or object constructor '%s' requires %d additional argument(s). The required signature is '%s'. Some names for missing arguments are %s. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:370) + static member csMemberSignatureMismatch4(a0 : System.String, a1 : System.Int32, a2 : System.String, a3 : System.String) = (499, GetStringFunc("csMemberSignatureMismatch4",",,,%s,,,%d,,,%s,,,%s,,,") a0 a1 a2 a3) + /// The member or object constructor '%s' requires %d argument(s) but is here given %d unnamed and %d named argument(s). The required signature is '%s'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:371) + static member csMemberSignatureMismatchArityNamed(a0 : System.String, a1 : System.Int32, a2 : System.Int32, a3 : System.Int32, a4 : System.String) = (500, GetStringFunc("csMemberSignatureMismatchArityNamed",",,,%s,,,%d,,,%d,,,%d,,,%s,,,") a0 a1 a2 a3 a4) + /// The member or object constructor '%s' takes %d argument(s) but is here given %d. The required signature is '%s'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:372) + static member csMemberSignatureMismatchArity(a0 : System.String, a1 : System.Int32, a2 : System.Int32, a3 : System.String) = (501, GetStringFunc("csMemberSignatureMismatchArity",",,,%s,,,%d,,,%d,,,%s,,,") a0 a1 a2 a3) + /// The member or object constructor '%s' takes %d type argument(s) but is here given %d. The required signature is '%s'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:373) + static member csMemberSignatureMismatchArityType(a0 : System.String, a1 : System.Int32, a2 : System.Int32, a3 : System.String) = (502, GetStringFunc("csMemberSignatureMismatchArityType",",,,%s,,,%d,,,%d,,,%s,,,") a0 a1 a2 a3) + /// The member or object constructor '%s' taking %d arguments are not accessible from this code location. All accessible versions of method '%s' take %d arguments. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:374) + static member csMemberNotAccessible(a0 : System.String, a1 : System.Int32, a2 : System.String, a3 : System.Int32) = (503, GetStringFunc("csMemberNotAccessible",",,,%s,,,%d,,,%s,,,%d,,,") a0 a1 a2 a3) + /// Incorrect generic instantiation. No %s member named '%s' takes %d generic arguments. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:375) + static member csIncorrectGenericInstantiation(a0 : System.String, a1 : System.String, a2 : System.Int32) = (504, GetStringFunc("csIncorrectGenericInstantiation",",,,%s,,,%s,,,%d,,,") a0 a1 a2) + /// The member or object constructor '%s' does not take %d argument(s). An overload was found taking %d arguments. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:376) + static member csMemberOverloadArityMismatch(a0 : System.String, a1 : System.Int32, a2 : System.Int32) = (505, GetStringFunc("csMemberOverloadArityMismatch",",,,%s,,,%d,,,%d,,,") a0 a1 a2) + /// No %s member or object constructor named '%s' takes %d arguments + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:377) + static member csNoMemberTakesTheseArguments(a0 : System.String, a1 : System.String, a2 : System.Int32) = (506, GetStringFunc("csNoMemberTakesTheseArguments",",,,%s,,,%s,,,%d,,,") a0 a1 a2) + /// No %s member or object constructor named '%s' takes %d arguments. Note the call to this member also provides %d named arguments. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:378) + static member csNoMemberTakesTheseArguments2(a0 : System.String, a1 : System.String, a2 : System.Int32, a3 : System.Int32) = (507, GetStringFunc("csNoMemberTakesTheseArguments2",",,,%s,,,%s,,,%d,,,%d,,,") a0 a1 a2 a3) + /// No %s member or object constructor named '%s' takes %d arguments. The named argument '%s' doesn't correspond to any argument or settable return property for any overload. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:379) + static member csNoMemberTakesTheseArguments3(a0 : System.String, a1 : System.String, a2 : System.Int32, a3 : System.String) = (508, GetStringFunc("csNoMemberTakesTheseArguments3",",,,%s,,,%s,,,%d,,,%s,,,") a0 a1 a2 a3) + /// Method or object constructor '%s' not found + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:380) + static member csMethodNotFound(a0 : System.String) = (509, GetStringFunc("csMethodNotFound",",,,%s,,,") a0) + /// No overloads match for method '%s'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:381) + static member csNoOverloadsFound(a0 : System.String) = (GetStringFunc("csNoOverloadsFound",",,,%s,,,") a0) + /// A unique overload for method '%s' could not be determined based on type information prior to this program point. A type annotation may be needed. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:382) + static member csMethodIsOverloaded(a0 : System.String) = (GetStringFunc("csMethodIsOverloaded",",,,%s,,,") a0) + /// Candidates: %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:383) + static member csCandidates(a0 : System.String) = (GetStringFunc("csCandidates",",,,%s,,,") a0) + /// The available overloads are shown below (or in the Error List window). + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:384) + static member csSeeAvailableOverloads() = (GetStringFunc("csSeeAvailableOverloads",",,,") ) + /// Accessibility modifiers are not permitted on 'do' bindings + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:388) + static member parsDoCannotHaveVisibilityDeclarations() = (512, GetStringFunc("parsDoCannotHaveVisibilityDeclarations",",,,") ) + /// End of file in #if section begun at or after here + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:389) + static member parsEofInHashIf() = (513, GetStringFunc("parsEofInHashIf",",,,") ) + /// End of file in string begun at or before here + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:390) + static member parsEofInString() = (514, GetStringFunc("parsEofInString",",,,") ) + /// End of file in verbatim string begun at or before here + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:391) + static member parsEofInVerbatimString() = (515, GetStringFunc("parsEofInVerbatimString",",,,") ) + /// End of file in comment begun at or before here + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:392) + static member parsEofInComment() = (516, GetStringFunc("parsEofInComment",",,,") ) + /// End of file in string embedded in comment begun at or before here + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:393) + static member parsEofInStringInComment() = (517, GetStringFunc("parsEofInStringInComment",",,,") ) + /// End of file in verbatim string embedded in comment begun at or before here + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:394) + static member parsEofInVerbatimStringInComment() = (518, GetStringFunc("parsEofInVerbatimStringInComment",",,,") ) + /// End of file in IF-OCAML section begun at or before here + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:395) + static member parsEofInIfOcaml() = (519, GetStringFunc("parsEofInIfOcaml",",,,") ) + /// End of file in directive begun at or before here + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:396) + static member parsEofInDirective() = (520, GetStringFunc("parsEofInDirective",",,,") ) + /// No #endif found for #if or #else + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:397) + static member parsNoHashEndIfFound() = (521, GetStringFunc("parsNoHashEndIfFound",",,,") ) + /// Attributes have been ignored in this construct + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:398) + static member parsAttributesIgnored() = (522, GetStringFunc("parsAttributesIgnored",",,,") ) + /// 'use' bindings are not permitted in primary constructors + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:399) + static member parsUseBindingsIllegalInImplicitClassConstructors() = (523, GetStringFunc("parsUseBindingsIllegalInImplicitClassConstructors",",,,") ) + /// 'use' bindings are not permitted in modules and are treated as 'let' bindings + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:400) + static member parsUseBindingsIllegalInModules() = (524, GetStringFunc("parsUseBindingsIllegalInModules",",,,") ) + /// An integer for loop must use a simple identifier + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:401) + static member parsIntegerForLoopRequiresSimpleIdentifier() = (525, GetStringFunc("parsIntegerForLoopRequiresSimpleIdentifier",",,,") ) + /// At most one 'with' augmentation is permitted + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:402) + static member parsOnlyOneWithAugmentationAllowed() = (526, GetStringFunc("parsOnlyOneWithAugmentationAllowed",",,,") ) + /// A semicolon is not expected at this point + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:403) + static member parsUnexpectedSemicolon() = (527, GetStringFunc("parsUnexpectedSemicolon",",,,") ) + /// Unexpected end of input + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:404) + static member parsUnexpectedEndOfFile() = (528, GetStringFunc("parsUnexpectedEndOfFile",",,,") ) + /// Accessibility modifiers are not permitted here + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:405) + static member parsUnexpectedVisibilityDeclaration() = (529, GetStringFunc("parsUnexpectedVisibilityDeclaration",",,,") ) + /// Only '#' compiler directives may occur prior to the first 'namespace' declaration + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:406) + static member parsOnlyHashDirectivesAllowed() = (530, GetStringFunc("parsOnlyHashDirectivesAllowed",",,,") ) + /// Accessibility modifiers should come immediately prior to the identifier naming a construct + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:407) + static member parsVisibilityDeclarationsShouldComePriorToIdentifier() = (531, GetStringFunc("parsVisibilityDeclarationsShouldComePriorToIdentifier",",,,") ) + /// Files should begin with either a namespace or module declaration, e.g. 'namespace SomeNamespace.SubNamespace' or 'module SomeNamespace.SomeModule', but not both. To define a module within a namespace use 'module SomeModule = ...' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:408) + static member parsNamespaceOrModuleNotBoth() = (532, GetStringFunc("parsNamespaceOrModuleNotBoth",",,,") ) + /// A module abbreviation must be a simple name, not a path + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:409) + static member parsModuleAbbreviationMustBeSimpleName() = (534, GetStringFunc("parsModuleAbbreviationMustBeSimpleName",",,,") ) + /// Ignoring attributes on module abbreviation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:410) + static member parsIgnoreAttributesOnModuleAbbreviation() = (535, GetStringFunc("parsIgnoreAttributesOnModuleAbbreviation",",,,") ) + /// Ignoring accessibility attribute on module abbreviation. Module abbreviations are always private. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:411) + static member parsIgnoreAttributesOnModuleAbbreviationAlwaysPrivate() = (536, GetStringFunc("parsIgnoreAttributesOnModuleAbbreviationAlwaysPrivate",",,,") ) + /// Ignoring visibility attribute on module abbreviation. Module abbreviations are always private. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:412) + static member parsIgnoreVisibilityOnModuleAbbreviationAlwaysPrivate() = (537, GetStringFunc("parsIgnoreVisibilityOnModuleAbbreviationAlwaysPrivate",",,,") ) + /// Unclosed block + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:413) + static member parsUnClosedBlockInHashLight() = (538, GetStringFunc("parsUnClosedBlockInHashLight",",,,") ) + /// Unmatched 'begin' or 'struct' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:414) + static member parsUnmatchedBeginOrStruct() = (539, GetStringFunc("parsUnmatchedBeginOrStruct",",,,") ) + /// A module name must be a simple name, not a path + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:415) + static member parsModuleDefnMustBeSimpleName() = (541, GetStringFunc("parsModuleDefnMustBeSimpleName",",,,") ) + /// Unexpected empty type moduleDefn list + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:416) + static member parsUnexpectedEmptyModuleDefn() = (542, GetStringFunc("parsUnexpectedEmptyModuleDefn",",,,") ) + /// Attributes should be placed before 'val' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:417) + static member parsAttributesMustComeBeforeVal() = (GetStringFunc("parsAttributesMustComeBeforeVal",",,,") ) + /// Attributes are not permitted on interface implementations + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:418) + static member parsAttributesAreNotPermittedOnInterfaceImplementations() = (543, GetStringFunc("parsAttributesAreNotPermittedOnInterfaceImplementations",",,,") ) + /// Syntax error + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:419) + static member parsSyntaxError() = (544, GetStringFunc("parsSyntaxError",",,,") ) + /// Augmentations are not permitted on delegate type moduleDefns + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:420) + static member parsAugmentationsIllegalOnDelegateType() = (545, GetStringFunc("parsAugmentationsIllegalOnDelegateType",",,,") ) + /// Unmatched 'class', 'interface' or 'struct' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:421) + static member parsUnmatchedClassInterfaceOrStruct() = (546, GetStringFunc("parsUnmatchedClassInterfaceOrStruct",",,,") ) + /// A type definition requires one or more members or other declarations. If you intend to define an empty class, struct or interface, then use 'type ... = class end', 'interface end' or 'struct end'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:422) + static member parsEmptyTypeDefinition() = (547, GetStringFunc("parsEmptyTypeDefinition",",,,") ) + /// Unmatched 'with' or badly formatted 'with' block + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:423) + static member parsUnmatchedWith() = (550, GetStringFunc("parsUnmatchedWith",",,,") ) + /// 'get', 'set' or 'get,set' required + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:424) + static member parsGetOrSetRequired() = (551, GetStringFunc("parsGetOrSetRequired",",,,") ) + /// Only class types may take value arguments + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:425) + static member parsOnlyClassCanTakeValueArguments() = (552, GetStringFunc("parsOnlyClassCanTakeValueArguments",",,,") ) + /// Unmatched 'begin' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:426) + static member parsUnmatchedBegin() = (553, GetStringFunc("parsUnmatchedBegin",",,,") ) + /// Invalid declaration syntax + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:427) + static member parsInvalidDeclarationSyntax() = (554, GetStringFunc("parsInvalidDeclarationSyntax",",,,") ) + /// 'get' and/or 'set' required + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:428) + static member parsGetAndOrSetRequired() = (555, GetStringFunc("parsGetAndOrSetRequired",",,,") ) + /// Type annotations on property getters and setters must be given after the 'get()' or 'set(v)', e.g. 'with get() : string = ...' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:429) + static member parsTypeAnnotationsOnGetSet() = (556, GetStringFunc("parsTypeAnnotationsOnGetSet",",,,") ) + /// A getter property is expected to be a function, e.g. 'get() = ...' or 'get(index) = ...' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:430) + static member parsGetterMustHaveAtLeastOneArgument() = (557, GetStringFunc("parsGetterMustHaveAtLeastOneArgument",",,,") ) + /// Multiple accessibilities given for property getter or setter + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:431) + static member parsMultipleAccessibilitiesForGetSet() = (558, GetStringFunc("parsMultipleAccessibilitiesForGetSet",",,,") ) + /// Property setters must be defined using 'set value = ', 'set idx value = ' or 'set (idx1,...,idxN) value = ... ' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:432) + static member parsSetSyntax() = (559, GetStringFunc("parsSetSyntax",",,,") ) + /// Interfaces always have the same visibility as the enclosing type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:433) + static member parsInterfacesHaveSameVisibilityAsEnclosingType() = (560, GetStringFunc("parsInterfacesHaveSameVisibilityAsEnclosingType",",,,") ) + /// Accessibility modifiers are not allowed on this member. Abstract slots always have the same visibility as the enclosing type. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:434) + static member parsAccessibilityModsIllegalForAbstract() = (561, GetStringFunc("parsAccessibilityModsIllegalForAbstract",",,,") ) + /// Attributes are not permitted on 'inherit' declarations + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:435) + static member parsAttributesIllegalOnInherit() = (562, GetStringFunc("parsAttributesIllegalOnInherit",",,,") ) + /// Accessibility modifiers are not permitted on an 'inherits' declaration + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:436) + static member parsVisibilityIllegalOnInherit() = (563, GetStringFunc("parsVisibilityIllegalOnInherit",",,,") ) + /// 'inherit' declarations cannot have 'as' bindings. To access members of the base class when overriding a method, the syntax 'base.SomeMember' may be used; 'base' is a keyword. Remove this 'as' binding. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:437) + static member parsInheritDeclarationsCannotHaveAsBindings() = (564, GetStringFunc("parsInheritDeclarationsCannotHaveAsBindings",",,,") ) + /// Attributes are not allowed here + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:438) + static member parsAttributesIllegalHere() = (565, GetStringFunc("parsAttributesIllegalHere",",,,") ) + /// Accessibility modifiers are not permitted in this position for type abbreviations + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:439) + static member parsTypeAbbreviationsCannotHaveVisibilityDeclarations() = (566, GetStringFunc("parsTypeAbbreviationsCannotHaveVisibilityDeclarations",",,,") ) + /// Accessibility modifiers are not permitted in this position for enum types + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:440) + static member parsEnumTypesCannotHaveVisibilityDeclarations() = (567, GetStringFunc("parsEnumTypesCannotHaveVisibilityDeclarations",",,,") ) + /// All enum fields must be given values + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:441) + static member parsAllEnumFieldsRequireValues() = (568, GetStringFunc("parsAllEnumFieldsRequireValues",",,,") ) + /// Accessibility modifiers are not permitted on inline assembly code types + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:442) + static member parsInlineAssemblyCannotHaveVisibilityDeclarations() = (569, GetStringFunc("parsInlineAssemblyCannotHaveVisibilityDeclarations",",,,") ) + /// Unexpected identifier: '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:443) + static member parsUnexpectedIdentifier(a0 : System.String) = (571, GetStringFunc("parsUnexpectedIdentifier",",,,%s,,,") a0) + /// Accessibility modifiers are not permitted on union cases. Use 'type U = internal ...' or 'type U = private ...' to give an accessibility to the whole representation. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:444) + static member parsUnionCasesCannotHaveVisibilityDeclarations() = (572, GetStringFunc("parsUnionCasesCannotHaveVisibilityDeclarations",",,,") ) + /// Accessibility modifiers are not permitted on enumeration fields + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:445) + static member parsEnumFieldsCannotHaveVisibilityDeclarations() = (573, GetStringFunc("parsEnumFieldsCannotHaveVisibilityDeclarations",",,,") ) + /// Consider using a separate record type instead + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:446) + static member parsConsiderUsingSeparateRecordType() = (GetStringFunc("parsConsiderUsingSeparateRecordType",",,,") ) + /// Accessibility modifiers are not permitted on record fields. Use 'type R = internal ...' or 'type R = private ...' to give an accessibility to the whole representation. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:447) + static member parsRecordFieldsCannotHaveVisibilityDeclarations() = (575, GetStringFunc("parsRecordFieldsCannotHaveVisibilityDeclarations",",,,") ) + /// The declaration form 'let ... and ...' for non-recursive bindings is not used in F# code. Consider using a sequence of 'let' bindings + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:448) + static member parsLetAndForNonRecBindings() = (576, GetStringFunc("parsLetAndForNonRecBindings",",,,") ) + /// Unmatched '(' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:449) + static member parsUnmatchedParen() = (583, GetStringFunc("parsUnmatchedParen",",,,") ) + /// Successive patterns should be separated by spaces or tupled + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:450) + static member parsSuccessivePatternsShouldBeSpacedOrTupled() = (584, GetStringFunc("parsSuccessivePatternsShouldBeSpacedOrTupled",",,,") ) + /// No matching 'in' found for this 'let' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:451) + static member parsNoMatchingInForLet() = (586, GetStringFunc("parsNoMatchingInForLet",",,,") ) + /// Error in the return expression for this 'let'. Possible incorrect indentation. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:452) + static member parsErrorInReturnForLetIncorrectIndentation() = (587, GetStringFunc("parsErrorInReturnForLetIncorrectIndentation",",,,") ) + /// Block following this '%s' is unfinished. Expect an expression. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:453) + static member parsExpectedStatementAfterLet(a0 : System.String) = (588, GetStringFunc("parsExpectedStatementAfterLet",",,,%s,,,") a0) + /// Incomplete conditional. Expected 'if then ' or 'if then else '. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:454) + static member parsIncompleteIf() = (589, GetStringFunc("parsIncompleteIf",",,,") ) + /// 'assert' may not be used as a first class value. Use 'assert ' instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:455) + static member parsAssertIsNotFirstClassValue() = (590, GetStringFunc("parsAssertIsNotFirstClassValue",",,,") ) + /// Identifier expected + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:456) + static member parsIdentifierExpected() = (594, GetStringFunc("parsIdentifierExpected",",,,") ) + /// 'in' or '=' expected + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:457) + static member parsInOrEqualExpected() = (595, GetStringFunc("parsInOrEqualExpected",",,,") ) + /// The use of '->' in sequence and computation expressions is limited to the form 'for pat in expr -> expr'. Use the syntax 'for ... in ... do ... yield...' to generate elements in more complex sequence expressions. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:458) + static member parsArrowUseIsLimited() = (596, GetStringFunc("parsArrowUseIsLimited",",,,") ) + /// Successive arguments should be separated by spaces or tupled, and arguments involving function or method applications should be parenthesized + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:459) + static member parsSuccessiveArgsShouldBeSpacedOrTupled() = (597, GetStringFunc("parsSuccessiveArgsShouldBeSpacedOrTupled",",,,") ) + /// Unmatched '[' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:460) + static member parsUnmatchedBracket() = (598, GetStringFunc("parsUnmatchedBracket",",,,") ) + /// Missing qualification after '.' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:461) + static member parsMissingQualificationAfterDot() = (599, GetStringFunc("parsMissingQualificationAfterDot",",,,") ) + /// In F# code you may use 'expr.[expr]'. A type annotation may be required to indicate the first expression is an array + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:462) + static member parsParenFormIsForML() = (GetStringFunc("parsParenFormIsForML",",,,") ) + /// Mismatched quotation, beginning with '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:463) + static member parsMismatchedQuote(a0 : System.String) = (601, GetStringFunc("parsMismatchedQuote",",,,%s,,,") a0) + /// Unmatched '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:464) + static member parsUnmatched(a0 : System.String) = (602, GetStringFunc("parsUnmatched",",,,%s,,,") a0) + /// Unmatched '[|' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:465) + static member parsUnmatchedBracketBar() = (603, GetStringFunc("parsUnmatchedBracketBar",",,,") ) + /// Unmatched '{' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:466) + static member parsUnmatchedBrace() = (604, GetStringFunc("parsUnmatchedBrace",",,,") ) + /// Field bindings must have the form 'id = expr;' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:467) + static member parsFieldBinding() = (609, GetStringFunc("parsFieldBinding",",,,") ) + /// This member is not permitted in an object implementation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:468) + static member parsMemberIllegalInObjectImplementation() = (610, GetStringFunc("parsMemberIllegalInObjectImplementation",",,,") ) + /// Missing function body + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:469) + static member parsMissingFunctionBody() = (611, GetStringFunc("parsMissingFunctionBody",",,,") ) + /// Syntax error in labelled type argument + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:470) + static member parsSyntaxErrorInLabeledType() = (613, GetStringFunc("parsSyntaxErrorInLabeledType",",,,") ) + /// Unexpected infix operator in type expression + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:471) + static member parsUnexpectedInfixOperator() = (615, GetStringFunc("parsUnexpectedInfixOperator",",,,") ) + /// The syntax '(typ,...,typ) ident' is not used in F# code. Consider using 'ident' instead + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:472) + static member parsMultiArgumentGenericTypeFormDeprecated() = (GetStringFunc("parsMultiArgumentGenericTypeFormDeprecated",",,,") ) + /// Invalid literal in type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:473) + static member parsInvalidLiteralInType() = (618, GetStringFunc("parsInvalidLiteralInType",",,,") ) + /// Unexpected infix operator in unit-of-measure expression. Legal operators are '*', '/' and '^'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:474) + static member parsUnexpectedOperatorForUnitOfMeasure() = (619, GetStringFunc("parsUnexpectedOperatorForUnitOfMeasure",",,,") ) + /// Unexpected integer literal in unit-of-measure expression + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:475) + static member parsUnexpectedIntegerLiteralForUnitOfMeasure() = (620, GetStringFunc("parsUnexpectedIntegerLiteralForUnitOfMeasure",",,,") ) + /// Syntax error: unexpected type parameter specification + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:476) + static member parsUnexpectedTypeParameter() = (621, GetStringFunc("parsUnexpectedTypeParameter",",,,") ) + /// Mismatched quotation operator name, beginning with '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:477) + static member parsMismatchedQuotationName(a0 : System.String) = (622, GetStringFunc("parsMismatchedQuotationName",",,,%s,,,") a0) + /// Active pattern case identifiers must begin with an uppercase letter + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:478) + static member parsActivePatternCaseMustBeginWithUpperCase() = (623, GetStringFunc("parsActivePatternCaseMustBeginWithUpperCase",",,,") ) + /// No '=' symbol should follow a 'namespace' declaration + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:479) + static member parsNoEqualShouldFollowNamespace() = (GetStringFunc("parsNoEqualShouldFollowNamespace",",,,") ) + /// The syntax 'module ... = struct .. end' is not used in F# code. Consider using 'module ... = begin .. end' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:480) + static member parsSyntaxModuleStructEndDeprecated() = (GetStringFunc("parsSyntaxModuleStructEndDeprecated",",,,") ) + /// The syntax 'module ... : sig .. end' is not used in F# code. Consider using 'module ... = begin .. end' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:481) + static member parsSyntaxModuleSigEndDeprecated() = (GetStringFunc("parsSyntaxModuleSigEndDeprecated",",,,") ) + /// A static field was used where an instance field is expected + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:485) + static member tcStaticFieldUsedWhenInstanceFieldExpected() = (627, GetStringFunc("tcStaticFieldUsedWhenInstanceFieldExpected",",,,") ) + /// Method '%s' is not accessible from this code location + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:486) + static member tcMethodNotAccessible(a0 : System.String) = (629, GetStringFunc("tcMethodNotAccessible",",,,%s,,,") a0) + /// Implicit product of measures following / + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:488) + static member tcImplicitMeasureFollowingSlash() = (632, GetStringFunc("tcImplicitMeasureFollowingSlash",",,,") ) + /// Unexpected SynMeasure.Anon + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:489) + static member tcUnexpectedMeasureAnon() = (633, GetStringFunc("tcUnexpectedMeasureAnon",",,,") ) + /// Non-zero constants cannot have generic units. For generic zero, write 0.0<_>. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:490) + static member tcNonZeroConstantCannotHaveGenericUnit() = (634, GetStringFunc("tcNonZeroConstantCannotHaveGenericUnit",",,,") ) + /// In sequence expressions, results are generated using 'yield' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:491) + static member tcSeqResultsUseYield() = (635, GetStringFunc("tcSeqResultsUseYield",",,,") ) + /// Unexpected big rational constant + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:492) + static member tcUnexpectedBigRationalConstant() = (GetStringFunc("tcUnexpectedBigRationalConstant",",,,") ) + /// Units-of-measure supported only on float, float32, decimal and signed integer types + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:493) + static member tcInvalidTypeForUnitsOfMeasure() = (636, GetStringFunc("tcInvalidTypeForUnitsOfMeasure",",,,") ) + /// Unexpected Const_uint16array + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:494) + static member tcUnexpectedConstUint16Array() = (GetStringFunc("tcUnexpectedConstUint16Array",",,,") ) + /// Unexpected Const_bytearray + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:495) + static member tcUnexpectedConstByteArray() = (GetStringFunc("tcUnexpectedConstByteArray",",,,") ) + /// A parameter with attributes must also be given a name, e.g. '[] Name : Type' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:496) + static member tcParameterRequiresName() = (640, GetStringFunc("tcParameterRequiresName",",,,") ) + /// Return values cannot have names + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:497) + static member tcReturnValuesCannotHaveNames() = (641, GetStringFunc("tcReturnValuesCannotHaveNames",",,,") ) + /// MemberKind.PropertyGetSet only expected in parse trees + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:498) + static member tcMemberKindPropertyGetSetNotExpected() = (GetStringFunc("tcMemberKindPropertyGetSetNotExpected",",,,") ) + /// Namespaces cannot contain values. Consider using a module to hold your value declarations. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:499) + static member tcNamespaceCannotContainValues() = (201, GetStringFunc("tcNamespaceCannotContainValues",",,,") ) + /// Namespaces cannot contain extension members except in the same file and namespace where the type is defined. Consider using a module to hold declarations of extension members. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:500) + static member tcNamespaceCannotContainExtensionMembers() = (644, GetStringFunc("tcNamespaceCannotContainExtensionMembers",",,,") ) + /// Multiple visibility attributes have been specified for this identifier + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:501) + static member tcMultipleVisibilityAttributes() = (645, GetStringFunc("tcMultipleVisibilityAttributes",",,,") ) + /// Multiple visibility attributes have been specified for this identifier. 'let' bindings in classes are always private, as are any 'let' bindings inside expressions. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:502) + static member tcMultipleVisibilityAttributesWithLet() = (646, GetStringFunc("tcMultipleVisibilityAttributesWithLet",",,,") ) + /// Unrecognized accessibility specification + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:503) + static member tcUnrecognizedAccessibilitySpec() = (GetStringFunc("tcUnrecognizedAccessibilitySpec",",,,") ) + /// The name '(%s)' should not be used as a member name. To define comparison semantics for a type, implement the 'System.IComparable' interface. If defining a static member for use from other CLI languages then use the name '%s' instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:504) + static member tcInvalidMethodNameForRelationalOperator(a0 : System.String, a1 : System.String) = (GetStringFunc("tcInvalidMethodNameForRelationalOperator",",,,%s,,,%s,,,") a0 a1) + /// The name '(%s)' should not be used as a member name. To define equality semantics for a type, override the 'Object.Equals' member. If defining a static member for use from other CLI languages then use the name '%s' instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:505) + static member tcInvalidMethodNameForEquality(a0 : System.String, a1 : System.String) = (GetStringFunc("tcInvalidMethodNameForEquality",",,,%s,,,%s,,,") a0 a1) + /// The name '(%s)' should not be used as a member name. If defining a static member for use from other CLI languages then use the name '%s' instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:506) + static member tcInvalidMemberName(a0 : System.String, a1 : System.String) = (GetStringFunc("tcInvalidMemberName",",,,%s,,,%s,,,") a0 a1) + /// The name '(%s)' should not be used as a member name because it is given a standard definition in the F# library over fixed types + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:507) + static member tcInvalidMemberNameFixedTypes(a0 : System.String) = (GetStringFunc("tcInvalidMemberNameFixedTypes",",,,%s,,,") a0) + /// The '%s' operator should not normally be redefined. To define overloaded comparison semantics for a particular type, implement the 'System.IComparable' interface in the definition of that type. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:508) + static member tcInvalidOperatorDefinitionRelational(a0 : System.String) = (GetStringFunc("tcInvalidOperatorDefinitionRelational",",,,%s,,,") a0) + /// The '%s' operator should not normally be redefined. To define equality semantics for a type, override the 'Object.Equals' member in the definition of that type. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:509) + static member tcInvalidOperatorDefinitionEquality(a0 : System.String) = (GetStringFunc("tcInvalidOperatorDefinitionEquality",",,,%s,,,") a0) + /// The '%s' operator should not normally be redefined. Consider using a different operator name + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:510) + static member tcInvalidOperatorDefinition(a0 : System.String) = (GetStringFunc("tcInvalidOperatorDefinition",",,,%s,,,") a0) + /// The '%s' operator cannot be redefined. Consider using a different operator name + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:511) + static member tcInvalidIndexOperatorDefinition(a0 : System.String) = (GetStringFunc("tcInvalidIndexOperatorDefinition",",,,%s,,,") a0) + /// Expected module or namespace parent %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:512) + static member tcExpectModuleOrNamespaceParent(a0 : System.String) = (GetStringFunc("tcExpectModuleOrNamespaceParent",",,,%s,,,") a0) + /// The struct, record or union type '%s' implements the interface 'System.IComparable' explicitly. You must apply the 'CustomComparison' attribute to the type. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:513) + static member tcImplementsIComparableExplicitly(a0 : System.String) = (647, GetStringFunc("tcImplementsIComparableExplicitly",",,,%s,,,") a0) + /// The struct, record or union type '%s' implements the interface 'System.IComparable<_>' explicitly. You must apply the 'CustomComparison' attribute to the type, and should also provide a consistent implementation of the non-generic interface System.IComparable. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:514) + static member tcImplementsGenericIComparableExplicitly(a0 : System.String) = (648, GetStringFunc("tcImplementsGenericIComparableExplicitly",",,,%s,,,") a0) + /// The struct, record or union type '%s' implements the interface 'System.IStructuralComparable' explicitly. Apply the 'CustomComparison' attribute to the type. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:515) + static member tcImplementsIStructuralComparableExplicitly(a0 : System.String) = (649, GetStringFunc("tcImplementsIStructuralComparableExplicitly",",,,%s,,,") a0) + /// This record contains fields from inconsistent types + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:516) + static member tcRecordFieldInconsistentTypes() = (656, GetStringFunc("tcRecordFieldInconsistentTypes",",,,") ) + /// DLLImport stubs cannot be inlined + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:517) + static member tcDllImportStubsCannotBeInlined() = (657, GetStringFunc("tcDllImportStubsCannotBeInlined",",,,") ) + /// Structs may only bind a 'this' parameter at member declarations + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:518) + static member tcStructsCanOnlyBindThisAtMemberDeclaration() = (658, GetStringFunc("tcStructsCanOnlyBindThisAtMemberDeclaration",",,,") ) + /// Unexpected expression at recursive inference point + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:519) + static member tcUnexpectedExprAtRecInfPoint() = (659, GetStringFunc("tcUnexpectedExprAtRecInfPoint",",,,") ) + /// This code is less generic than required by its annotations because the explicit type variable '%s' could not be generalized. It was constrained to be '%s'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:520) + static member tcLessGenericBecauseOfAnnotation(a0 : System.String, a1 : System.String) = (660, GetStringFunc("tcLessGenericBecauseOfAnnotation",",,,%s,,,%s,,,") a0 a1) + /// One or more of the explicit class or function type variables for this binding could not be generalized, because they were constrained to other types + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:521) + static member tcConstrainedTypeVariableCannotBeGeneralized() = (661, GetStringFunc("tcConstrainedTypeVariableCannotBeGeneralized",",,,") ) + /// A generic type parameter has been used in a way that constrains it to always be '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:522) + static member tcGenericParameterHasBeenConstrained(a0 : System.String) = (662, GetStringFunc("tcGenericParameterHasBeenConstrained",",,,%s,,,") a0) + /// This type parameter has been used in a way that constrains it to always be '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:523) + static member tcTypeParameterHasBeenConstrained(a0 : System.String) = (663, GetStringFunc("tcTypeParameterHasBeenConstrained",",,,%s,,,") a0) + /// The type parameters inferred for this value are not stable under the erasure of type abbreviations. This is due to the use of type abbreviations which drop or reorder type parameters, e.g. \n\ttype taggedInt<'a> = int or\n\ttype swap<'a,'b> = 'b * 'a.\nConsider declaring the type parameters for this value explicitly, e.g.\n\tlet f<'a,'b> ((x,y) : swap<'b,'a>) : swap<'a,'b> = (y,x). + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:524) + static member tcTypeParametersInferredAreNotStable() = (664, GetStringFunc("tcTypeParametersInferredAreNotStable",",,,") ) + /// Explicit type parameters may only be used on module or member bindings + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:525) + static member tcExplicitTypeParameterInvalid() = (665, GetStringFunc("tcExplicitTypeParameterInvalid",",,,") ) + /// You must explicitly declare either all or no type parameters when overriding a generic abstract method + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:526) + static member tcOverridingMethodRequiresAllOrNoTypeParameters() = (666, GetStringFunc("tcOverridingMethodRequiresAllOrNoTypeParameters",",,,") ) + /// The field labels and expected type of this record expression or pattern do not uniquely determine a corresponding record type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:527) + static member tcFieldsDoNotDetermineUniqueRecordType() = (667, GetStringFunc("tcFieldsDoNotDetermineUniqueRecordType",",,,") ) + /// The field '%s' appears twice in this record expression or pattern + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:528) + static member tcFieldAppearsTwiceInRecord(a0 : System.String) = (668, GetStringFunc("tcFieldAppearsTwiceInRecord",",,,%s,,,") a0) + /// Unknown union case + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:529) + static member tcUnknownUnion() = (669, GetStringFunc("tcUnknownUnion",",,,") ) + /// This code is not sufficiently generic. The type variable %s could not be generalized because it would escape its scope. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:530) + static member tcNotSufficientlyGenericBecauseOfScope(a0 : System.String) = (670, GetStringFunc("tcNotSufficientlyGenericBecauseOfScope",",,,%s,,,") a0) + /// A property cannot have explicit type parameters. Consider using a method instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:531) + static member tcPropertyRequiresExplicitTypeParameters() = (671, GetStringFunc("tcPropertyRequiresExplicitTypeParameters",",,,") ) + /// A constructor cannot have explicit type parameters. Consider using a static construction method instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:532) + static member tcConstructorCannotHaveTypeParameters() = (672, GetStringFunc("tcConstructorCannotHaveTypeParameters",",,,") ) + /// This instance member needs a parameter to represent the object being invoked. Make the member static or use the notation 'member x.Member(args) = ...'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:533) + static member tcInstanceMemberRequiresTarget() = (673, GetStringFunc("tcInstanceMemberRequiresTarget",",,,") ) + /// Unexpected source-level property specification in syntax tree + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:534) + static member tcUnexpectedPropertyInSyntaxTree() = (674, GetStringFunc("tcUnexpectedPropertyInSyntaxTree",",,,") ) + /// A static initializer requires an argument + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:535) + static member tcStaticInitializerRequiresArgument() = (675, GetStringFunc("tcStaticInitializerRequiresArgument",",,,") ) + /// An object constructor requires an argument + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:536) + static member tcObjectConstructorRequiresArgument() = (676, GetStringFunc("tcObjectConstructorRequiresArgument",",,,") ) + /// This static member should not have a 'this' parameter. Consider using the notation 'member Member(args) = ...'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:537) + static member tcStaticMemberShouldNotHaveThis() = (677, GetStringFunc("tcStaticMemberShouldNotHaveThis",",,,") ) + /// An explicit static initializer should use the syntax 'static new(args) = expr' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:538) + static member tcExplicitStaticInitializerSyntax() = (678, GetStringFunc("tcExplicitStaticInitializerSyntax",",,,") ) + /// An explicit object constructor should use the syntax 'new(args) = expr' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:539) + static member tcExplicitObjectConstructorSyntax() = (679, GetStringFunc("tcExplicitObjectConstructorSyntax",",,,") ) + /// Unexpected source-level property specification + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:540) + static member tcUnexpectedPropertySpec() = (680, GetStringFunc("tcUnexpectedPropertySpec",",,,") ) + /// This form of object expression is not used in F#. Use 'member this.MemberName ... = ...' to define member implementations in object expressions. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:541) + static member tcObjectExpressionFormDeprecated() = (GetStringFunc("tcObjectExpressionFormDeprecated",",,,") ) + /// Invalid declaration + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:542) + static member tcInvalidDeclaration() = (682, GetStringFunc("tcInvalidDeclaration",",,,") ) + /// Attributes are not allowed within patterns + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:543) + static member tcAttributesInvalidInPatterns() = (683, GetStringFunc("tcAttributesInvalidInPatterns",",,,") ) + /// The generic function '%s' must be given explicit type argument(s) + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:544) + static member tcFunctionRequiresExplicitTypeArguments(a0 : System.String) = (685, GetStringFunc("tcFunctionRequiresExplicitTypeArguments",",,,%s,,,") a0) + /// The method or function '%s' should not be given explicit type argument(s) because it does not declare its type parameters explicitly + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:545) + static member tcDoesNotAllowExplicitTypeArguments(a0 : System.String) = (686, GetStringFunc("tcDoesNotAllowExplicitTypeArguments",",,,%s,,,") a0) + /// This value, type or method expects %d type parameter(s) but was given %d + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:546) + static member tcTypeParameterArityMismatch(a0 : System.Int32, a1 : System.Int32) = (687, GetStringFunc("tcTypeParameterArityMismatch",",,,%d,,,%d,,,") a0 a1) + /// The default, zero-initializing constructor of a struct type may only be used if all the fields of the struct type admit default initialization + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:547) + static member tcDefaultStructConstructorCall() = (688, GetStringFunc("tcDefaultStructConstructorCall",",,,") ) + /// Couldn't find Dispose on IDisposable, or it was overloaded + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:548) + static member tcCouldNotFindIDisposable() = (GetStringFunc("tcCouldNotFindIDisposable",",,,") ) + /// This value is not a literal and cannot be used in a pattern + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:549) + static member tcNonLiteralCannotBeUsedInPattern() = (689, GetStringFunc("tcNonLiteralCannotBeUsedInPattern",",,,") ) + /// This field is readonly + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:550) + static member tcFieldIsReadonly() = (690, GetStringFunc("tcFieldIsReadonly",",,,") ) + /// Named arguments must appear after all other arguments + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:551) + static member tcNameArgumentsMustAppearLast() = (691, GetStringFunc("tcNameArgumentsMustAppearLast",",,,") ) + /// This function value is being used to construct a delegate type whose signature includes a byref argument. You must use an explicit lambda expression taking %d arguments. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:552) + static member tcFunctionRequiresExplicitLambda(a0 : System.Int32) = (692, GetStringFunc("tcFunctionRequiresExplicitLambda",",,,%d,,,") a0) + /// The type '%s' is not a type whose values can be enumerated with this syntax, i.e. is not compatible with either seq<_>, IEnumerable<_> or IEnumerable and does not have a GetEnumerator method + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:553) + static member tcTypeCannotBeEnumerated(a0 : System.String) = (693, GetStringFunc("tcTypeCannotBeEnumerated",",,,%s,,,") a0) + /// This expression has a method called GetEnumerator, but its return type is a value type. Methods returning struct enumerators cannot be used in this expression form. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:554) + static member tcBadReturnTypeForGetEnumerator() = (694, GetStringFunc("tcBadReturnTypeForGetEnumerator",",,,") ) + /// This recursive binding uses an invalid mixture of recursive forms + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:555) + static member tcInvalidMixtureOfRecursiveForms() = (695, GetStringFunc("tcInvalidMixtureOfRecursiveForms",",,,") ) + /// This is not a valid object construction expression. Explicit object constructors must either call an alternate constructor or initialize all fields of the object and specify a call to a super class constructor. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:556) + static member tcInvalidObjectConstructionExpression() = (696, GetStringFunc("tcInvalidObjectConstructionExpression",",,,") ) + /// Invalid constraint + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:557) + static member tcInvalidConstraint() = (697, GetStringFunc("tcInvalidConstraint",",,,") ) + /// Invalid constraint: the type used for the constraint is sealed, which means the constraint could only be satisfied by at most one solution + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:558) + static member tcInvalidConstraintTypeSealed() = (698, GetStringFunc("tcInvalidConstraintTypeSealed",",,,") ) + /// An 'enum' constraint must be of the form 'enum' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:559) + static member tcInvalidEnumConstraint() = (699, GetStringFunc("tcInvalidEnumConstraint",",,,") ) + /// 'new' constraints must take one argument of type 'unit' and return the constructed type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:560) + static member tcInvalidNewConstraint() = (700, GetStringFunc("tcInvalidNewConstraint",",,,") ) + /// This property has an invalid type. Properties taking multiple indexer arguments should have types of the form 'ty1 * ty2 -> ty3'. Properties returning functions should have types of the form '(ty1 -> ty2)'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:561) + static member tcInvalidPropertyType() = (701, GetStringFunc("tcInvalidPropertyType",",,,") ) + /// Expected unit-of-measure parameter, not type parameter. Explicit unit-of-measure parameters must be marked with the [] attribute. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:562) + static member tcExpectedUnitOfMeasureMarkWithAttribute() = (702, GetStringFunc("tcExpectedUnitOfMeasureMarkWithAttribute",",,,") ) + /// Expected type parameter, not unit-of-measure parameter + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:563) + static member tcExpectedTypeParameter() = (703, GetStringFunc("tcExpectedTypeParameter",",,,") ) + /// Expected type, not unit-of-measure + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:564) + static member tcExpectedTypeNotUnitOfMeasure() = (704, GetStringFunc("tcExpectedTypeNotUnitOfMeasure",",,,") ) + /// Expected unit-of-measure, not type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:565) + static member tcExpectedUnitOfMeasureNotType() = (705, GetStringFunc("tcExpectedUnitOfMeasureNotType",",,,") ) + /// Units-of-measure cannot be used as prefix arguments to a type. Rewrite as postfix arguments in angle brackets. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:566) + static member tcInvalidUnitsOfMeasurePrefix() = (706, GetStringFunc("tcInvalidUnitsOfMeasurePrefix",",,,") ) + /// Unit-of-measure cannot be used in type constructor application + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:567) + static member tcUnitsOfMeasureInvalidInTypeConstructor() = (707, GetStringFunc("tcUnitsOfMeasureInvalidInTypeConstructor",",,,") ) + /// This control construct may only be used if the computation expression builder defines a '%s' method + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:568) + static member tcRequireBuilderMethod(a0 : System.String) = (708, GetStringFunc("tcRequireBuilderMethod",",,,%s,,,") a0) + /// This type has no nested types + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:569) + static member tcTypeHasNoNestedTypes() = (709, GetStringFunc("tcTypeHasNoNestedTypes",",,,") ) + /// Unexpected %s in type expression + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:570) + static member tcUnexpectedSymbolInTypeExpression(a0 : System.String) = (711, GetStringFunc("tcUnexpectedSymbolInTypeExpression",",,,%s,,,") a0) + /// Type parameter cannot be used as type constructor + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:571) + static member tcTypeParameterInvalidAsTypeConstructor() = (712, GetStringFunc("tcTypeParameterInvalidAsTypeConstructor",",,,") ) + /// Illegal syntax in type expression + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:572) + static member tcIllegalSyntaxInTypeExpression() = (713, GetStringFunc("tcIllegalSyntaxInTypeExpression",",,,") ) + /// Anonymous unit-of-measure cannot be nested inside another unit-of-measure expression + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:573) + static member tcAnonymousUnitsOfMeasureCannotBeNested() = (714, GetStringFunc("tcAnonymousUnitsOfMeasureCannotBeNested",",,,") ) + /// Anonymous type variables are not permitted in this declaration + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:574) + static member tcAnonymousTypeInvalidInDeclaration() = (715, GetStringFunc("tcAnonymousTypeInvalidInDeclaration",",,,") ) + /// Unexpected / in type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:575) + static member tcUnexpectedSlashInType() = (716, GetStringFunc("tcUnexpectedSlashInType",",,,") ) + /// Unexpected type arguments + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:576) + static member tcUnexpectedTypeArguments() = (717, GetStringFunc("tcUnexpectedTypeArguments",",,,") ) + /// Optional arguments are only permitted on type members + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:577) + static member tcOptionalArgsOnlyOnMembers() = (718, GetStringFunc("tcOptionalArgsOnlyOnMembers",",,,") ) + /// Name '%s' not bound in pattern context + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:578) + static member tcNameNotBoundInPattern(a0 : System.String) = (719, GetStringFunc("tcNameNotBoundInPattern",",,,%s,,,") a0) + /// Non-primitive numeric literal constants cannot be used in pattern matches because they can be mapped to multiple different types through the use of a NumericLiteral module. Consider using replacing with a variable, and use 'when = ' at the end of the match clause. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:579) + static member tcInvalidNonPrimitiveLiteralInPatternMatch() = (720, GetStringFunc("tcInvalidNonPrimitiveLiteralInPatternMatch",",,,") ) + /// Type arguments cannot be specified here + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:580) + static member tcInvalidTypeArgumentUsage() = (721, GetStringFunc("tcInvalidTypeArgumentUsage",",,,") ) + /// Only active patterns returning exactly one result may accept arguments + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:581) + static member tcRequireActivePatternWithOneResult() = (722, GetStringFunc("tcRequireActivePatternWithOneResult",",,,") ) + /// Invalid argument to parameterized pattern label + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:582) + static member tcInvalidArgForParameterizedPattern() = (723, GetStringFunc("tcInvalidArgForParameterizedPattern",",,,") ) + /// Internal error. Invalid index into active pattern array + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:583) + static member tcInvalidIndexIntoActivePatternArray() = (724, GetStringFunc("tcInvalidIndexIntoActivePatternArray",",,,") ) + /// This union case does not take arguments + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:584) + static member tcUnionCaseDoesNotTakeArguments() = (725, GetStringFunc("tcUnionCaseDoesNotTakeArguments",",,,") ) + /// This union case takes one argument + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:585) + static member tcUnionCaseRequiresOneArgument() = (726, GetStringFunc("tcUnionCaseRequiresOneArgument",",,,") ) + /// This union case expects %d arguments in tupled form + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:586) + static member tcUnionCaseExpectsTupledArguments(a0 : System.Int32) = (727, GetStringFunc("tcUnionCaseExpectsTupledArguments",",,,%d,,,") a0) + /// Field '%s' is not static + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:587) + static member tcFieldIsNotStatic(a0 : System.String) = (728, GetStringFunc("tcFieldIsNotStatic",",,,%s,,,") a0) + /// This field is not a literal and cannot be used in a pattern + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:588) + static member tcFieldNotLiteralCannotBeUsedInPattern() = (729, GetStringFunc("tcFieldNotLiteralCannotBeUsedInPattern",",,,") ) + /// This is not a variable, constant, active recognizer or literal + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:589) + static member tcRequireVarConstRecogOrLiteral() = (730, GetStringFunc("tcRequireVarConstRecogOrLiteral",",,,") ) + /// This is not a valid pattern + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:590) + static member tcInvalidPattern() = (731, GetStringFunc("tcInvalidPattern",",,,") ) + /// Character range matches have been removed in F#. Consider using a 'when' pattern guard instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:591) + static member tcUseWhenPatternGuard() = (GetStringFunc("tcUseWhenPatternGuard",",,,") ) + /// Illegal pattern + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:592) + static member tcIllegalPattern() = (733, GetStringFunc("tcIllegalPattern",",,,") ) + /// Syntax error - unexpected '?' symbol + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:593) + static member tcSyntaxErrorUnexpectedQMark() = (734, GetStringFunc("tcSyntaxErrorUnexpectedQMark",",,,") ) + /// Expected %d expressions, got %d + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:594) + static member tcExpressionCountMisMatch(a0 : System.Int32, a1 : System.Int32) = (735, GetStringFunc("tcExpressionCountMisMatch",",,,%d,,,%d,,,") a0 a1) + /// TcExprUndelayed: delayed + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:595) + static member tcExprUndelayed() = (736, GetStringFunc("tcExprUndelayed",",,,") ) + /// This expression form may only be used in sequence and computation expressions + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:596) + static member tcExpressionRequiresSequence() = (737, GetStringFunc("tcExpressionRequiresSequence",",,,") ) + /// Invalid object expression. Objects without overrides or interfaces should use the expression form 'new Type(args)' without braces. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:597) + static member tcInvalidObjectExpressionSyntaxForm() = (738, GetStringFunc("tcInvalidObjectExpressionSyntaxForm",",,,") ) + /// Invalid object, sequence or record expression + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:598) + static member tcInvalidObjectSequenceOrRecordExpression() = (739, GetStringFunc("tcInvalidObjectSequenceOrRecordExpression",",,,") ) + /// Invalid record, sequence or computation expression. Sequence expressions should be of the form 'seq { ... }' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:599) + static member tcInvalidSequenceExpressionSyntaxForm() = (740, GetStringFunc("tcInvalidSequenceExpressionSyntaxForm",",,,") ) + /// This list or array expression includes an element of the form 'if ... then ... else'. Parenthesize this expression to indicate it is an individual element of the list or array, to disambiguate this from a list generated using a sequence expression + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:600) + static member tcExpressionWithIfRequiresParenthesis() = (GetStringFunc("tcExpressionWithIfRequiresParenthesis",",,,") ) + /// Unable to parse format string '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:601) + static member tcUnableToParseFormatString(a0 : System.String) = (741, GetStringFunc("tcUnableToParseFormatString",",,,%s,,,") a0) + /// This list expression exceeds the maximum size for list literals. Use an array for larger literals and call Array.ToList. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:602) + static member tcListLiteralMaxSize() = (742, GetStringFunc("tcListLiteralMaxSize",",,,") ) + /// The expression form 'expr then expr' may only be used as part of an explicit object constructor + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:603) + static member tcExpressionFormRequiresObjectConstructor() = (743, GetStringFunc("tcExpressionFormRequiresObjectConstructor",",,,") ) + /// Named arguments cannot be given to member trait calls + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:604) + static member tcNamedArgumentsCannotBeUsedInMemberTraits() = (744, GetStringFunc("tcNamedArgumentsCannotBeUsedInMemberTraits",",,,") ) + /// This is not a valid name for an enumeration case + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:605) + static member tcNotValidEnumCaseName() = (745, GetStringFunc("tcNotValidEnumCaseName",",,,") ) + /// This field is not mutable + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:606) + static member tcFieldIsNotMutable() = (746, GetStringFunc("tcFieldIsNotMutable",",,,") ) + /// This construct may only be used within list, array and sequence expressions, e.g. expressions of the form 'seq { ... }', '[ ... ]' or '[| ... |]'. These use the syntax 'for ... in ... do ... yield...' to generate elements + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:607) + static member tcConstructRequiresListArrayOrSequence() = (747, GetStringFunc("tcConstructRequiresListArrayOrSequence",",,,") ) + /// This construct may only be used within computation expressions. To return a value from an ordinary function simply write the expression without 'return'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:608) + static member tcConstructRequiresComputationExpressions() = (748, GetStringFunc("tcConstructRequiresComputationExpressions",",,,") ) + /// This construct may only be used within sequence or computation expressions + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:609) + static member tcConstructRequiresSequenceOrComputations() = (749, GetStringFunc("tcConstructRequiresSequenceOrComputations",",,,") ) + /// This construct may only be used within computation expressions + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:610) + static member tcConstructRequiresComputationExpression() = (750, GetStringFunc("tcConstructRequiresComputationExpression",",,,") ) + /// Invalid indexer expression + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:611) + static member tcInvalidIndexerExpression() = (751, GetStringFunc("tcInvalidIndexerExpression",",,,") ) + /// The operator 'expr.[idx]' has been used on an object of indeterminate type based on information prior to this program point. Consider adding further type constraints + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:612) + static member tcObjectOfIndeterminateTypeUsedRequireTypeConstraint() = (752, GetStringFunc("tcObjectOfIndeterminateTypeUsedRequireTypeConstraint",",,,") ) + /// Cannot inherit from a variable type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:613) + static member tcCannotInheritFromVariableType() = (753, GetStringFunc("tcCannotInheritFromVariableType",",,,") ) + /// Calls to object constructors on type parameters cannot be given arguments + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:614) + static member tcObjectConstructorsOnTypeParametersCannotTakeArguments() = (754, GetStringFunc("tcObjectConstructorsOnTypeParametersCannotTakeArguments",",,,") ) + /// The 'CompiledName' attribute cannot be used with this language element + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:615) + static member tcCompiledNameAttributeMisused() = (755, GetStringFunc("tcCompiledNameAttributeMisused",",,,") ) + /// '%s' may only be used with named types + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:616) + static member tcNamedTypeRequired(a0 : System.String) = (756, GetStringFunc("tcNamedTypeRequired",",,,%s,,,") a0) + /// 'inherit' cannot be used on interface types. Consider implementing the interface by using 'interface ... with ... end' instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:617) + static member tcInheritCannotBeUsedOnInterfaceType() = (757, GetStringFunc("tcInheritCannotBeUsedOnInterfaceType",",,,") ) + /// 'new' cannot be used on interface types. Consider using an object expression '{ new ... with ... }' instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:618) + static member tcNewCannotBeUsedOnInterfaceType() = (758, GetStringFunc("tcNewCannotBeUsedOnInterfaceType",",,,") ) + /// Instances of this type cannot be created since it has been marked abstract or not all methods have been given implementations. Consider using an object expression '{ new ... with ... }' instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:619) + static member tcAbstractTypeCannotBeInstantiated() = (759, GetStringFunc("tcAbstractTypeCannotBeInstantiated",",,,") ) + /// It is recommended that objects that support the IDisposable interface are created using 'new Type(args)' rather than 'Type(args)' to indicate that resources may be owned by the generated value + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:620) + static member tcIDisposableTypeShouldUseNew() = (760, GetStringFunc("tcIDisposableTypeShouldUseNew",",,,") ) + /// '%s' may only be used to construct object types + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:621) + static member tcSyntaxCanOnlyBeUsedToCreateObjectTypes(a0 : System.String) = (761, GetStringFunc("tcSyntaxCanOnlyBeUsedToCreateObjectTypes",",,,%s,,,") a0) + /// Constructors for the type '%s' must directly or indirectly call its implicit object constructor. Use a call to the implicit object constructor instead of a record expression. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:622) + static member tcConstructorRequiresCall(a0 : System.String) = (762, GetStringFunc("tcConstructorRequiresCall",",,,%s,,,") a0) + /// The field '%s' has been given a value, but is not present in the type '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:623) + static member tcUndefinedField(a0 : System.String, a1 : System.String) = (763, GetStringFunc("tcUndefinedField",",,,%s,,,%s,,,") a0 a1) + /// No assignment given for field '%s' of type '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:624) + static member tcFieldRequiresAssignment(a0 : System.String, a1 : System.String) = (764, GetStringFunc("tcFieldRequiresAssignment",",,,%s,,,%s,,,") a0 a1) + /// Extraneous fields have been given values + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:625) + static member tcExtraneousFieldsGivenValues() = (765, GetStringFunc("tcExtraneousFieldsGivenValues",",,,") ) + /// Only overrides of abstract and virtual members may be specified in object expressions + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:626) + static member tcObjectExpressionsCanOnlyOverrideAbstractOrVirtual() = (766, GetStringFunc("tcObjectExpressionsCanOnlyOverrideAbstractOrVirtual",",,,") ) + /// The member '%s' does not correspond to any abstract or virtual method available to override or implement + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:627) + static member tcNoAbstractOrVirtualMemberFound(a0 : System.String) = (767, GetStringFunc("tcNoAbstractOrVirtualMemberFound",",,,%s,,,") a0) + /// The member '%s' does not accept the correct number of arguments, %d arguments are expected + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:628) + static member tcArgumentArityMismatch(a0 : System.String, a1 : System.Int32) = (768, GetStringFunc("tcArgumentArityMismatch",",,,%s,,,%d,,,") a0 a1) + /// The member '%s' does not accept the correct number of arguments. One overload accepts %d arguments. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:629) + static member tcArgumentArityMismatchOneOverload(a0 : System.String, a1 : System.Int32) = (769, GetStringFunc("tcArgumentArityMismatchOneOverload",",,,%s,,,%d,,,") a0 a1) + /// A simple method name is required here + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:630) + static member tcSimpleMethodNameRequired() = (770, GetStringFunc("tcSimpleMethodNameRequired",",,,") ) + /// The types System.ValueType, System.Enum, System.Delegate, System.MulticastDelegate and System.Array cannot be used as super types in an object expression or class + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:631) + static member tcPredefinedTypeCannotBeUsedAsSuperType() = (771, GetStringFunc("tcPredefinedTypeCannotBeUsedAsSuperType",",,,") ) + /// 'new' must be used with a named type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:632) + static member tcNewMustBeUsedWithNamedType() = (772, GetStringFunc("tcNewMustBeUsedWithNamedType",",,,") ) + /// Cannot create an extension of a sealed type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:633) + static member tcCannotCreateExtensionOfSealedType() = (773, GetStringFunc("tcCannotCreateExtensionOfSealedType",",,,") ) + /// No arguments may be given when constructing a record value + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:634) + static member tcNoArgumentsForRecordValue() = (774, GetStringFunc("tcNoArgumentsForRecordValue",",,,") ) + /// Interface implementations cannot be given on construction expressions + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:635) + static member tcNoInterfaceImplementationForConstructionExpression() = (775, GetStringFunc("tcNoInterfaceImplementationForConstructionExpression",",,,") ) + /// Object construction expressions may only be used to implement constructors in class types + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:636) + static member tcObjectConstructionCanOnlyBeUsedInClassTypes() = (776, GetStringFunc("tcObjectConstructionCanOnlyBeUsedInClassTypes",",,,") ) + /// Only simple bindings of the form 'id = expr' can be used in construction expressions + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:637) + static member tcOnlySimpleBindingsCanBeUsedInConstructionExpressions() = (777, GetStringFunc("tcOnlySimpleBindingsCanBeUsedInConstructionExpressions",",,,") ) + /// Objects must be initialized by an object construction expression that calls an inherited object constructor and assigns a value to each field + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:638) + static member tcObjectsMustBeInitializedWithObjectExpression() = (778, GetStringFunc("tcObjectsMustBeInitializedWithObjectExpression",",,,") ) + /// Expected an interface type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:639) + static member tcExpectedInterfaceType() = (779, GetStringFunc("tcExpectedInterfaceType",",,,") ) + /// Constructor expressions for interfaces do not take arguments + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:640) + static member tcConstructorForInterfacesDoNotTakeArguments() = (780, GetStringFunc("tcConstructorForInterfacesDoNotTakeArguments",",,,") ) + /// This object constructor requires arguments + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:641) + static member tcConstructorRequiresArguments() = (781, GetStringFunc("tcConstructorRequiresArguments",",,,") ) + /// 'new' may only be used with object constructors + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:642) + static member tcNewRequiresObjectConstructor() = (782, GetStringFunc("tcNewRequiresObjectConstructor",",,,") ) + /// At least one override did not correctly implement its corresponding abstract member + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:643) + static member tcAtLeastOneOverrideIsInvalid() = (783, GetStringFunc("tcAtLeastOneOverrideIsInvalid",",,,") ) + /// This numeric literal requires that a module '%s' defining functions FromZero, FromOne, FromInt32, FromInt64 and FromString be in scope + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:644) + static member tcNumericLiteralRequiresModule(a0 : System.String) = (784, GetStringFunc("tcNumericLiteralRequiresModule",",,,%s,,,") a0) + /// Invalid record construction + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:645) + static member tcInvalidRecordConstruction() = (785, GetStringFunc("tcInvalidRecordConstruction",",,,") ) + /// The expression form { expr with ... } may only be used with record types. To build object types use { new Type(...) with ... } + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:646) + static member tcExpressionFormRequiresRecordTypes() = (786, GetStringFunc("tcExpressionFormRequiresRecordTypes",",,,") ) + /// The inherited type is not an object model type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:647) + static member tcInheritedTypeIsNotObjectModelType() = (787, GetStringFunc("tcInheritedTypeIsNotObjectModelType",",,,") ) + /// Object construction expressions (i.e. record expressions with inheritance specifications) may only be used to implement constructors in object model types. Use 'new ObjectType(args)' to construct instances of object model types outside of constructors + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:648) + static member tcObjectConstructionExpressionCanOnlyImplementConstructorsInObjectModelTypes() = (788, GetStringFunc("tcObjectConstructionExpressionCanOnlyImplementConstructorsInObjectModelTypes",",,,") ) + /// '{ }' is not a valid expression. Records must include at least one field. Empty sequences are specified by using Seq.empty or an empty list '[]'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:649) + static member tcEmptyRecordInvalid() = (789, GetStringFunc("tcEmptyRecordInvalid",",,,") ) + /// This type is not a record type. Values of class and struct types must be created using calls to object constructors. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:650) + static member tcTypeIsNotARecordTypeNeedConstructor() = (790, GetStringFunc("tcTypeIsNotARecordTypeNeedConstructor",",,,") ) + /// This type is not a record type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:651) + static member tcTypeIsNotARecordType() = (791, GetStringFunc("tcTypeIsNotARecordType",",,,") ) + /// This construct is ambiguous as part of a computation expression. Nested expressions may be written using 'let _ = (...)' and nested computations using 'let! res = builder { ... }'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:652) + static member tcConstructIsAmbiguousInComputationExpression() = (792, GetStringFunc("tcConstructIsAmbiguousInComputationExpression",",,,") ) + /// This construct is ambiguous as part of a sequence expression. Nested expressions may be written using 'let _ = (...)' and nested sequences using 'yield! seq {... }'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:653) + static member tcConstructIsAmbiguousInSequenceExpression() = (793, GetStringFunc("tcConstructIsAmbiguousInSequenceExpression",",,,") ) + /// 'do!' cannot be used within sequence expressions + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:654) + static member tcDoBangIllegalInSequenceExpression() = (794, GetStringFunc("tcDoBangIllegalInSequenceExpression",",,,") ) + /// The use of 'let! x = coll' in sequence expressions is not permitted. Use 'for x in coll' instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:655) + static member tcUseForInSequenceExpression() = (795, GetStringFunc("tcUseForInSequenceExpression",",,,") ) + /// 'try'/'with' cannot be used within sequence expressions + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:656) + static member tcTryIllegalInSequenceExpression() = (796, GetStringFunc("tcTryIllegalInSequenceExpression",",,,") ) + /// In sequence expressions, multiple results are generated using 'yield!' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:657) + static member tcUseYieldBangForMultipleResults() = (797, GetStringFunc("tcUseYieldBangForMultipleResults",",,,") ) + /// Invalid assignment + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:658) + static member tcInvalidAssignment() = (799, GetStringFunc("tcInvalidAssignment",",,,") ) + /// Invalid use of a type name + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:659) + static member tcInvalidUseOfTypeName() = (800, GetStringFunc("tcInvalidUseOfTypeName",",,,") ) + /// This type has no accessible object constructors + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:660) + static member tcTypeHasNoAccessibleConstructor() = (801, GetStringFunc("tcTypeHasNoAccessibleConstructor",",,,") ) + /// Invalid use of a type name and/or object constructor. If necessary use 'new' and apply the constructor to its arguments, e.g. 'new Type(args)'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:661) + static member tcInvalidUseOfTypeNameOrConstructor() = (802, GetStringFunc("tcInvalidUseOfTypeNameOrConstructor",",,,") ) + /// Invalid use of a type name and/or object constructor. If necessary use 'new' and apply the constructor to its arguments, e.g. 'new Type(args)'. The required signature is:\n\t%s. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:662) + static member tcInvalidUseOfTypeNameOrConstructorWithOverloads(a0 : System.String) = (803, GetStringFunc("tcInvalidUseOfTypeNameOrConstructorWithOverloads",",,,%s,,,") a0) + /// Invalid use of an interface type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:663) + static member tcInvalidUseOfInterfaceType() = (804, GetStringFunc("tcInvalidUseOfInterfaceType",",,,") ) + /// Invalid use of a delegate constructor. Use the syntax 'new Type(args)' or just 'Type(args)'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:664) + static member tcInvalidUseOfDelegate() = (805, GetStringFunc("tcInvalidUseOfDelegate",",,,") ) + /// Property '%s' is not static + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:665) + static member tcPropertyIsNotStatic(a0 : System.String) = (806, GetStringFunc("tcPropertyIsNotStatic",",,,%s,,,") a0) + /// Property '%s' is not readable + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:666) + static member tcPropertyIsNotReadable(a0 : System.String) = (807, GetStringFunc("tcPropertyIsNotReadable",",,,%s,,,") a0) + /// This lookup cannot be used here + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:667) + static member tcLookupMayNotBeUsedHere() = (808, GetStringFunc("tcLookupMayNotBeUsedHere",",,,") ) + /// Property '%s' is static + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:668) + static member tcPropertyIsStatic(a0 : System.String) = (809, GetStringFunc("tcPropertyIsStatic",",,,%s,,,") a0) + /// Property '%s' cannot be set + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:669) + static member tcPropertyCannotBeSet1(a0 : System.String) = (810, GetStringFunc("tcPropertyCannotBeSet1",",,,%s,,,") a0) + /// Constructors must be applied to arguments and cannot be used as first-class values. If necessary use an anonymous function '(fun arg1 ... argN -> new Type(arg1,...,argN))'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:670) + static member tcConstructorsCannotBeFirstClassValues() = (811, GetStringFunc("tcConstructorsCannotBeFirstClassValues",",,,") ) + /// The syntax 'expr.id' may only be used with record labels, properties and fields + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:671) + static member tcSyntaxFormUsedOnlyWithRecordLabelsPropertiesAndFields() = (812, GetStringFunc("tcSyntaxFormUsedOnlyWithRecordLabelsPropertiesAndFields",",,,") ) + /// Event '%s' is static + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:672) + static member tcEventIsStatic(a0 : System.String) = (813, GetStringFunc("tcEventIsStatic",",,,%s,,,") a0) + /// Event '%s' is not static + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:673) + static member tcEventIsNotStatic(a0 : System.String) = (814, GetStringFunc("tcEventIsNotStatic",",,,%s,,,") a0) + /// The named argument '%s' did not match any argument or mutable property + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:674) + static member tcNamedArgumentDidNotMatch(a0 : System.String) = (815, GetStringFunc("tcNamedArgumentDidNotMatch",",,,%s,,,") a0) + /// One or more of the overloads of this method has curried arguments. Consider redesigning these members to take arguments in tupled form. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:675) + static member tcOverloadsCannotHaveCurriedArguments() = (816, GetStringFunc("tcOverloadsCannotHaveCurriedArguments",",,,") ) + /// The unnamed arguments do not form a prefix of the arguments of the method called + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:676) + static member tcUnnamedArgumentsDoNotFormPrefix() = (GetStringFunc("tcUnnamedArgumentsDoNotFormPrefix",",,,") ) + /// Static optimization conditionals are only for use within the F# library + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:677) + static member tcStaticOptimizationConditionalsOnlyForFSharpLibrary() = (817, GetStringFunc("tcStaticOptimizationConditionalsOnlyForFSharpLibrary",",,,") ) + /// The corresponding formal argument is not optional + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:678) + static member tcFormalArgumentIsNotOptional() = (818, GetStringFunc("tcFormalArgumentIsNotOptional",",,,") ) + /// Invalid optional assignment to a property or field + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:679) + static member tcInvalidOptionalAssignmentToPropertyOrField() = (819, GetStringFunc("tcInvalidOptionalAssignmentToPropertyOrField",",,,") ) + /// A delegate constructor must be passed a single function value + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:680) + static member tcDelegateConstructorMustBePassed() = (820, GetStringFunc("tcDelegateConstructorMustBePassed",",,,") ) + /// A binding cannot be marked both 'use' and 'rec' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:681) + static member tcBindingCannotBeUseAndRec() = (821, GetStringFunc("tcBindingCannotBeUseAndRec",",,,") ) + /// The 'VolatileField' attribute may only be used on 'let' bindings in classes + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:682) + static member tcVolatileOnlyOnClassLetBindings() = (823, GetStringFunc("tcVolatileOnlyOnClassLetBindings",",,,") ) + /// Attributes are not permitted on 'let' bindings in expressions + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:683) + static member tcAttributesAreNotPermittedOnLetBindings() = (824, GetStringFunc("tcAttributesAreNotPermittedOnLetBindings",",,,") ) + /// The 'DefaultValue' attribute may only be used on 'val' declarations + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:684) + static member tcDefaultValueAttributeRequiresVal() = (825, GetStringFunc("tcDefaultValueAttributeRequiresVal",",,,") ) + /// The 'ConditionalAttribute' attribute may only be used on members + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:685) + static member tcConditionalAttributeRequiresMembers() = (826, GetStringFunc("tcConditionalAttributeRequiresMembers",",,,") ) + /// This is not a valid name for an active pattern + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:686) + static member tcInvalidActivePatternName() = (827, GetStringFunc("tcInvalidActivePatternName",",,,") ) + /// The 'EntryPointAttribute' attribute may only be used on function definitions in modules + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:687) + static member tcEntryPointAttributeRequiresFunctionInModule() = (828, GetStringFunc("tcEntryPointAttributeRequiresFunctionInModule",",,,") ) + /// Mutable values cannot be marked 'inline' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:688) + static member tcMutableValuesCannotBeInline() = (829, GetStringFunc("tcMutableValuesCannotBeInline",",,,") ) + /// Mutable values cannot have generic parameters + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:689) + static member tcMutableValuesMayNotHaveGenericParameters() = (830, GetStringFunc("tcMutableValuesMayNotHaveGenericParameters",",,,") ) + /// Mutable function values should be written 'let mutable f = (fun args -> ...)' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:690) + static member tcMutableValuesSyntax() = (831, GetStringFunc("tcMutableValuesSyntax",",,,") ) + /// Only functions may be marked 'inline' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:691) + static member tcOnlyFunctionsCanBeInline() = (832, GetStringFunc("tcOnlyFunctionsCanBeInline",",,,") ) + /// A literal value cannot be given the [] or [] attributes + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:692) + static member tcIllegalAttributesForLiteral() = (833, GetStringFunc("tcIllegalAttributesForLiteral",",,,") ) + /// A literal value cannot be marked 'mutable' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:693) + static member tcLiteralCannotBeMutable() = (834, GetStringFunc("tcLiteralCannotBeMutable",",,,") ) + /// A literal value cannot be marked 'inline' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:694) + static member tcLiteralCannotBeInline() = (835, GetStringFunc("tcLiteralCannotBeInline",",,,") ) + /// Literal values cannot have generic parameters + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:695) + static member tcLiteralCannotHaveGenericParameters() = (836, GetStringFunc("tcLiteralCannotHaveGenericParameters",",,,") ) + /// This is not a valid constant expression + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:696) + static member tcInvalidConstantExpression() = (837, GetStringFunc("tcInvalidConstantExpression",",,,") ) + /// This type is not accessible from this code location + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:697) + static member tcTypeIsInaccessible() = (838, GetStringFunc("tcTypeIsInaccessible",",,,") ) + /// Unexpected condition in imported assembly: failed to decode AttributeUsage attribute + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:698) + static member tcUnexpectedConditionInImportedAssembly() = (839, GetStringFunc("tcUnexpectedConditionInImportedAssembly",",,,") ) + /// Unrecognized attribute target. Valid attribute targets are 'assembly', 'module', 'type', 'method', 'property', 'return', 'param', 'field', 'event', 'constructor'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:699) + static member tcUnrecognizedAttributeTarget() = (840, GetStringFunc("tcUnrecognizedAttributeTarget",",,,") ) + /// This attribute is not valid for use on this language element. Assembly attributes should be attached to a 'do ()' declaration, if necessary within an F# module. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:700) + static member tcAttributeIsNotValidForLanguageElementUseDo() = (841, GetStringFunc("tcAttributeIsNotValidForLanguageElementUseDo",",,,") ) + /// This attribute is not valid for use on this language element + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:701) + static member tcAttributeIsNotValidForLanguageElement() = (842, GetStringFunc("tcAttributeIsNotValidForLanguageElement",",,,") ) + /// Optional arguments cannot be used in custom attributes + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:702) + static member tcOptionalArgumentsCannotBeUsedInCustomAttribute() = (843, GetStringFunc("tcOptionalArgumentsCannotBeUsedInCustomAttribute",",,,") ) + /// This property cannot be set + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:703) + static member tcPropertyCannotBeSet0() = (844, GetStringFunc("tcPropertyCannotBeSet0",",,,") ) + /// This property or field was not found on this custom attribute type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:704) + static member tcPropertyOrFieldNotFoundInAttribute() = (845, GetStringFunc("tcPropertyOrFieldNotFoundInAttribute",",,,") ) + /// A custom attribute must be a reference type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:705) + static member tcCustomAttributeMustBeReferenceType() = (846, GetStringFunc("tcCustomAttributeMustBeReferenceType",",,,") ) + /// The number of args for a custom attribute does not match the expected number of args for the attribute constructor + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:706) + static member tcCustomAttributeArgumentMismatch() = (847, GetStringFunc("tcCustomAttributeArgumentMismatch",",,,") ) + /// A custom attribute must invoke an object constructor + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:707) + static member tcCustomAttributeMustInvokeConstructor() = (848, GetStringFunc("tcCustomAttributeMustInvokeConstructor",",,,") ) + /// Attribute expressions must be calls to object constructors + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:708) + static member tcAttributeExpressionsMustBeConstructorCalls() = (849, GetStringFunc("tcAttributeExpressionsMustBeConstructorCalls",",,,") ) + /// This attribute cannot be used in this version of F# + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:709) + static member tcUnsupportedAttribute() = (850, GetStringFunc("tcUnsupportedAttribute",",,,") ) + /// Invalid inline specification + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:710) + static member tcInvalidInlineSpecification() = (851, GetStringFunc("tcInvalidInlineSpecification",",,,") ) + /// 'use' bindings must be of the form 'use = ' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:711) + static member tcInvalidUseBinding() = (852, GetStringFunc("tcInvalidUseBinding",",,,") ) + /// Abstract members are not permitted in an augmentation - they must be defined as part of the type itself + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:712) + static member tcAbstractMembersIllegalInAugmentation() = (853, GetStringFunc("tcAbstractMembersIllegalInAugmentation",",,,") ) + /// Method overrides and interface implementations are not permitted here + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:713) + static member tcMethodOverridesIllegalHere() = (854, GetStringFunc("tcMethodOverridesIllegalHere",",,,") ) + /// No abstract or interface member was found that corresponds to this override + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:714) + static member tcNoMemberFoundForOverride() = (855, GetStringFunc("tcNoMemberFoundForOverride",",,,") ) + /// This override takes a different number of arguments to the corresponding abstract member + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:715) + static member tcOverrideArityMismatch() = (856, GetStringFunc("tcOverrideArityMismatch",",,,") ) + /// This method already has a default implementation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:716) + static member tcDefaultImplementationAlreadyExists() = (857, GetStringFunc("tcDefaultImplementationAlreadyExists",",,,") ) + /// The method implemented by this default is ambiguous + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:717) + static member tcDefaultAmbiguous() = (858, GetStringFunc("tcDefaultAmbiguous",",,,") ) + /// No abstract property was found that corresponds to this override + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:718) + static member tcNoPropertyFoundForOverride() = (859, GetStringFunc("tcNoPropertyFoundForOverride",",,,") ) + /// This property overrides or implements an abstract property but the abstract property doesn't have a corresponding %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:719) + static member tcAbstractPropertyMissingGetOrSet(a0 : System.String) = (860, GetStringFunc("tcAbstractPropertyMissingGetOrSet",",,,%s,,,") a0) + /// Invalid signature for set member + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:720) + static member tcInvalidSignatureForSet() = (861, GetStringFunc("tcInvalidSignatureForSet",",,,") ) + /// This property already has a default implementation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:721) + static member tcPropertyAlreadyHasDefaultImplementation() = (862, GetStringFunc("tcPropertyAlreadyHasDefaultImplementation",",,,") ) + /// The property implemented by this default is ambiguous + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:722) + static member tcPropertyImplementedIsAmbiguous() = (863, GetStringFunc("tcPropertyImplementedIsAmbiguous",",,,") ) + /// This new member hides the abstract member '%s'. Rename the member or use 'override' instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:723) + static member tcNewMemberHidesAbstractMember(a0 : System.String) = (864, GetStringFunc("tcNewMemberHidesAbstractMember",",,,%s,,,") a0) + /// This new member hides the abstract member '%s' once tuples, functions, units of measure and/or provided types are erased. Rename the member or use 'override' instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:724) + static member tcNewMemberHidesAbstractMemberWithSuffix(a0 : System.String) = (864, GetStringFunc("tcNewMemberHidesAbstractMemberWithSuffix",",,,%s,,,") a0) + /// Interfaces cannot contain definitions of static initializers + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:725) + static member tcStaticInitializersIllegalInInterface() = (865, GetStringFunc("tcStaticInitializersIllegalInInterface",",,,") ) + /// Interfaces cannot contain definitions of object constructors + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:726) + static member tcObjectConstructorsIllegalInInterface() = (866, GetStringFunc("tcObjectConstructorsIllegalInInterface",",,,") ) + /// Interfaces cannot contain definitions of member overrides + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:727) + static member tcMemberOverridesIllegalInInterface() = (867, GetStringFunc("tcMemberOverridesIllegalInInterface",",,,") ) + /// Interfaces cannot contain definitions of concrete members. You may need to define a constructor on your type to indicate that the type is a class. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:728) + static member tcConcreteMembersIllegalInInterface() = (868, GetStringFunc("tcConcreteMembersIllegalInInterface",",,,") ) + /// Constructors cannot be specified in exception augmentations + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:729) + static member tcConstructorsDisallowedInExceptionAugmentation() = (869, GetStringFunc("tcConstructorsDisallowedInExceptionAugmentation",",,,") ) + /// Structs cannot have an object constructor with no arguments. This is a restriction imposed on all CLI languages as structs automatically support a default constructor. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:730) + static member tcStructsCannotHaveConstructorWithNoArguments() = (870, GetStringFunc("tcStructsCannotHaveConstructorWithNoArguments",",,,") ) + /// Constructors cannot be defined for this type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:731) + static member tcConstructorsIllegalForThisType() = (871, GetStringFunc("tcConstructorsIllegalForThisType",",,,") ) + /// Recursive bindings that include member specifications can only occur as a direct augmentation of a type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:732) + static member tcRecursiveBindingsWithMembersMustBeDirectAugmentation() = (872, GetStringFunc("tcRecursiveBindingsWithMembersMustBeDirectAugmentation",",,,") ) + /// Only simple variable patterns can be bound in 'let rec' constructs + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:733) + static member tcOnlySimplePatternsInLetRec() = (873, GetStringFunc("tcOnlySimplePatternsInLetRec",",,,") ) + /// Only record fields and simple 'let' bindings may be marked mutable + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:734) + static member tcOnlyRecordFieldsAndSimpleLetCanBeMutable() = (874, GetStringFunc("tcOnlyRecordFieldsAndSimpleLetCanBeMutable",",,,") ) + /// This member is not sufficiently generic + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:735) + static member tcMemberIsNotSufficientlyGeneric() = (875, GetStringFunc("tcMemberIsNotSufficientlyGeneric",",,,") ) + /// A declaration may only be the [] attribute if a constant value is also given, e.g. 'val x : int = 1' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:736) + static member tcLiteralAttributeRequiresConstantValue() = (876, GetStringFunc("tcLiteralAttributeRequiresConstantValue",",,,") ) + /// A declaration may only be given a value in a signature if the declaration has the [] attribute + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:737) + static member tcValueInSignatureRequiresLiteralAttribute() = (877, GetStringFunc("tcValueInSignatureRequiresLiteralAttribute",",,,") ) + /// Thread-static and context-static variables must be static and given the [] attribute to indicate that the value is initialized to the default value on each new thread + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:738) + static member tcThreadStaticAndContextStaticMustBeStatic() = (878, GetStringFunc("tcThreadStaticAndContextStaticMustBeStatic",",,,") ) + /// Volatile fields must be marked 'mutable' and cannot be thread-static + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:739) + static member tcVolatileFieldsMustBeMutable() = (879, GetStringFunc("tcVolatileFieldsMustBeMutable",",,,") ) + /// Uninitialized 'val' fields must be mutable and marked with the '[]' attribute. Consider using a 'let' binding instead of a 'val' field. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:740) + static member tcUninitializedValFieldsMustBeMutable() = (880, GetStringFunc("tcUninitializedValFieldsMustBeMutable",",,,") ) + /// Static 'val' fields in types must be mutable, private and marked with the '[]' attribute. They are initialized to the 'null' or 'zero' value for their type. Consider also using a 'static let mutable' binding in a class type. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:741) + static member tcStaticValFieldsMustBeMutableAndPrivate() = (881, GetStringFunc("tcStaticValFieldsMustBeMutableAndPrivate",",,,") ) + /// This field requires a name + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:742) + static member tcFieldRequiresName() = (882, GetStringFunc("tcFieldRequiresName",",,,") ) + /// Invalid namespace, module, type or union case name + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:743) + static member tcInvalidNamespaceModuleTypeUnionName() = (883, GetStringFunc("tcInvalidNamespaceModuleTypeUnionName",",,,") ) + /// Explicit type declarations for constructors must be of the form 'ty1 * ... * tyN -> resTy'. Parentheses may be required around 'resTy' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:744) + static member tcIllegalFormForExplicitTypeDeclaration() = (884, GetStringFunc("tcIllegalFormForExplicitTypeDeclaration",",,,") ) + /// Return types of union cases must be identical to the type being defined, up to abbreviations + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:745) + static member tcReturnTypesForUnionMustBeSameAsType() = (885, GetStringFunc("tcReturnTypesForUnionMustBeSameAsType",",,,") ) + /// This is not a valid value for an enumeration literal + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:746) + static member tcInvalidEnumerationLiteral() = (886, GetStringFunc("tcInvalidEnumerationLiteral",",,,") ) + /// The type '%s' is not an interface type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:747) + static member tcTypeIsNotInterfaceType1(a0 : System.String) = (887, GetStringFunc("tcTypeIsNotInterfaceType1",",,,%s,,,") a0) + /// Duplicate specification of an interface + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:748) + static member tcDuplicateSpecOfInterface() = (888, GetStringFunc("tcDuplicateSpecOfInterface",",,,") ) + /// A field/val declaration is not permitted here + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:749) + static member tcFieldValIllegalHere() = (889, GetStringFunc("tcFieldValIllegalHere",",,,") ) + /// A inheritance declaration is not permitted here + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:750) + static member tcInheritIllegalHere() = (890, GetStringFunc("tcInheritIllegalHere",",,,") ) + /// This declaration opens the module '%s', which is marked as 'RequireQualifiedAccess'. Adjust your code to use qualified references to the elements of the module instead, e.g. 'List.map' instead of 'map'. This change will ensure that your code is robust as new constructs are added to libraries. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:751) + static member tcModuleRequiresQualifiedAccess(a0 : System.String) = (892, GetStringFunc("tcModuleRequiresQualifiedAccess",",,,%s,,,") a0) + /// This declaration opens the namespace or module '%s' through a partially qualified path. Adjust this code to use the full path of the namespace. This change will make your code more robust as new constructs are added to the F# and CLI libraries. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:752) + static member tcOpenUsedWithPartiallyQualifiedPath(a0 : System.String) = (893, GetStringFunc("tcOpenUsedWithPartiallyQualifiedPath",",,,%s,,,") a0) + /// Local class bindings cannot be marked inline. Consider lifting the definition out of the class or else do not mark it as inline. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:753) + static member tcLocalClassBindingsCannotBeInline() = (894, GetStringFunc("tcLocalClassBindingsCannotBeInline",",,,") ) + /// Type abbreviations cannot have members + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:754) + static member tcTypeAbbreviationsMayNotHaveMembers() = (895, GetStringFunc("tcTypeAbbreviationsMayNotHaveMembers",",,,") ) + /// Enumerations cannot have members + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:755) + static member tcEnumerationsMayNotHaveMembers() = (896, GetStringFunc("tcEnumerationsMayNotHaveMembers",",,,") ) + /// Measure declarations may have only static members + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:756) + static member tcMeasureDeclarationsRequireStaticMembers() = (897, GetStringFunc("tcMeasureDeclarationsRequireStaticMembers",",,,") ) + /// Structs cannot contain 'do' bindings because the default constructor for structs would not execute these bindings + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:757) + static member tcStructsMayNotContainDoBindings() = (GetStringFunc("tcStructsMayNotContainDoBindings",",,,") ) + /// Structs cannot contain value definitions because the default constructor for structs will not execute these bindings. Consider adding additional arguments to the primary constructor for the type. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:758) + static member tcStructsMayNotContainLetBindings() = (901, GetStringFunc("tcStructsMayNotContainLetBindings",",,,") ) + /// Static value definitions may only be used in types with a primary constructor. Consider adding arguments to the type definition, e.g. 'type X(args) = ...'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:759) + static member tcStaticLetBindingsRequireClassesWithImplicitConstructors() = (902, GetStringFunc("tcStaticLetBindingsRequireClassesWithImplicitConstructors",",,,") ) + /// Measure declarations may have only static members: constructors are not available + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:760) + static member tcMeasureDeclarationsRequireStaticMembersNotConstructors() = (904, GetStringFunc("tcMeasureDeclarationsRequireStaticMembersNotConstructors",",,,") ) + /// A member and a local class binding both have the name '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:761) + static member tcMemberAndLocalClassBindingHaveSameName(a0 : System.String) = (905, GetStringFunc("tcMemberAndLocalClassBindingHaveSameName",",,,%s,,,") a0) + /// Type abbreviations cannot have interface declarations + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:762) + static member tcTypeAbbreviationsCannotHaveInterfaceDeclaration() = (906, GetStringFunc("tcTypeAbbreviationsCannotHaveInterfaceDeclaration",",,,") ) + /// Enumerations cannot have interface declarations + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:763) + static member tcEnumerationsCannotHaveInterfaceDeclaration() = (907, GetStringFunc("tcEnumerationsCannotHaveInterfaceDeclaration",",,,") ) + /// This type is not an interface type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:764) + static member tcTypeIsNotInterfaceType0() = (908, GetStringFunc("tcTypeIsNotInterfaceType0",",,,") ) + /// All implemented interfaces should be declared on the initial declaration of the type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:765) + static member tcAllImplementedInterfacesShouldBeDeclared() = (909, GetStringFunc("tcAllImplementedInterfacesShouldBeDeclared",",,,") ) + /// A default implementation of this interface has already been added because the explicit implementation of the interface was not specified at the definition of the type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:766) + static member tcDefaultImplementationForInterfaceHasAlreadyBeenAdded() = (910, GetStringFunc("tcDefaultImplementationForInterfaceHasAlreadyBeenAdded",",,,") ) + /// This member is not permitted in an interface implementation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:767) + static member tcMemberNotPermittedInInterfaceImplementation() = (911, GetStringFunc("tcMemberNotPermittedInInterfaceImplementation",",,,") ) + /// This declaration element is not permitted in an augmentation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:768) + static member tcDeclarationElementNotPermittedInAugmentation() = (912, GetStringFunc("tcDeclarationElementNotPermittedInAugmentation",",,,") ) + /// Types cannot contain nested type definitions + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:769) + static member tcTypesCannotContainNestedTypes() = (913, GetStringFunc("tcTypesCannotContainNestedTypes",",,,") ) + /// type, exception or module + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:770) + static member tcTypeExceptionOrModule() = (GetStringFunc("tcTypeExceptionOrModule",",,,") ) + /// type or module + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:771) + static member tcTypeOrModule() = (GetStringFunc("tcTypeOrModule",",,,") ) + /// The struct, record or union type '%s' implements the interface 'System.IStructuralEquatable' explicitly. Apply the 'CustomEquality' attribute to the type. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:772) + static member tcImplementsIStructuralEquatableExplicitly(a0 : System.String) = (914, GetStringFunc("tcImplementsIStructuralEquatableExplicitly",",,,%s,,,") a0) + /// The struct, record or union type '%s' implements the interface 'System.IEquatable<_>' explicitly. Apply the 'CustomEquality' attribute to the type and provide a consistent implementation of the non-generic override 'System.Object.Equals(obj)'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:773) + static member tcImplementsIEquatableExplicitly(a0 : System.String) = (915, GetStringFunc("tcImplementsIEquatableExplicitly",",,,%s,,,") a0) + /// Explicit type specifications cannot be used for exception constructors + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:774) + static member tcExplicitTypeSpecificationCannotBeUsedForExceptionConstructors() = (916, GetStringFunc("tcExplicitTypeSpecificationCannotBeUsedForExceptionConstructors",",,,") ) + /// Exception abbreviations should not have argument lists + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:775) + static member tcExceptionAbbreviationsShouldNotHaveArgumentList() = (917, GetStringFunc("tcExceptionAbbreviationsShouldNotHaveArgumentList",",,,") ) + /// Abbreviations for Common IL exceptions cannot take arguments + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:776) + static member tcAbbreviationsFordotNetExceptionsCannotTakeArguments() = (918, GetStringFunc("tcAbbreviationsFordotNetExceptionsCannotTakeArguments",",,,") ) + /// Exception abbreviations must refer to existing exceptions or F# types deriving from System.Exception + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:777) + static member tcExceptionAbbreviationsMustReferToValidExceptions() = (919, GetStringFunc("tcExceptionAbbreviationsMustReferToValidExceptions",",,,") ) + /// Abbreviations for Common IL exception types must have a matching object constructor + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:778) + static member tcAbbreviationsFordotNetExceptionsMustHaveMatchingObjectConstructor() = (920, GetStringFunc("tcAbbreviationsFordotNetExceptionsMustHaveMatchingObjectConstructor",",,,") ) + /// Not an exception + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:779) + static member tcNotAnException() = (921, GetStringFunc("tcNotAnException",",,,") ) + /// Invalid module name + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:781) + static member tcInvalidModuleName() = (924, GetStringFunc("tcInvalidModuleName",",,,") ) + /// Invalid type extension + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:782) + static member tcInvalidTypeExtension() = (925, GetStringFunc("tcInvalidTypeExtension",",,,") ) + /// The attributes of this type specify multiple kinds for the type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:783) + static member tcAttributesOfTypeSpecifyMultipleKindsForType() = (926, GetStringFunc("tcAttributesOfTypeSpecifyMultipleKindsForType",",,,") ) + /// The kind of the type specified by its attributes does not match the kind implied by its definition + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:784) + static member tcKindOfTypeSpecifiedDoesNotMatchDefinition() = (927, GetStringFunc("tcKindOfTypeSpecifiedDoesNotMatchDefinition",",,,") ) + /// Measure definitions cannot have type parameters + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:785) + static member tcMeasureDefinitionsCannotHaveTypeParameters() = (928, GetStringFunc("tcMeasureDefinitionsCannotHaveTypeParameters",",,,") ) + /// This type requires a definition + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:786) + static member tcTypeRequiresDefinition() = (929, GetStringFunc("tcTypeRequiresDefinition",",,,") ) + /// This type abbreviation has one or more declared type parameters that do not appear in the type being abbreviated. Type abbreviations must use all declared type parameters in the type being abbreviated. Consider removing one or more type parameters, or use a concrete type definition that wraps an underlying type, such as 'type C<'a> = C of ...'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:787) + static member tcTypeAbbreviationHasTypeParametersMissingOnType() = (GetStringFunc("tcTypeAbbreviationHasTypeParametersMissingOnType",",,,") ) + /// Structs, interfaces, enums and delegates cannot inherit from other types + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:788) + static member tcStructsInterfacesEnumsDelegatesMayNotInheritFromOtherTypes() = (931, GetStringFunc("tcStructsInterfacesEnumsDelegatesMayNotInheritFromOtherTypes",",,,") ) + /// Types cannot inherit from multiple concrete types + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:789) + static member tcTypesCannotInheritFromMultipleConcreteTypes() = (932, GetStringFunc("tcTypesCannotInheritFromMultipleConcreteTypes",",,,") ) + /// Records, union, abbreviations and struct types cannot have the 'AllowNullLiteral' attribute + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:790) + static member tcRecordsUnionsAbbreviationsStructsMayNotHaveAllowNullLiteralAttribute() = (934, GetStringFunc("tcRecordsUnionsAbbreviationsStructsMayNotHaveAllowNullLiteralAttribute",",,,") ) + /// Types with the 'AllowNullLiteral' attribute may only inherit from or implement types which also allow the use of the null literal + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:791) + static member tcAllowNullTypesMayOnlyInheritFromAllowNullTypes() = (935, GetStringFunc("tcAllowNullTypesMayOnlyInheritFromAllowNullTypes",",,,") ) + /// Generic types cannot be given the 'StructLayout' attribute + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:792) + static member tcGenericTypesCannotHaveStructLayout() = (936, GetStringFunc("tcGenericTypesCannotHaveStructLayout",",,,") ) + /// Only structs and classes without primary constructors may be given the 'StructLayout' attribute + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:793) + static member tcOnlyStructsCanHaveStructLayout() = (937, GetStringFunc("tcOnlyStructsCanHaveStructLayout",",,,") ) + /// The representation of this type is hidden by the signature. It must be given an attribute such as [], [] or [] to indicate the characteristics of the type. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:794) + static member tcRepresentationOfTypeHiddenBySignature() = (938, GetStringFunc("tcRepresentationOfTypeHiddenBySignature",",,,") ) + /// Only classes may be given the 'AbstractClass' attribute + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:795) + static member tcOnlyClassesCanHaveAbstract() = (939, GetStringFunc("tcOnlyClassesCanHaveAbstract",",,,") ) + /// Only types representing units-of-measure may be given the 'Measure' attribute + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:796) + static member tcOnlyTypesRepresentingUnitsOfMeasureCanHaveMeasure() = (940, GetStringFunc("tcOnlyTypesRepresentingUnitsOfMeasureCanHaveMeasure",",,,") ) + /// Accessibility modifiers are not permitted on overrides or interface implementations + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:797) + static member tcOverridesCannotHaveVisibilityDeclarations() = (941, GetStringFunc("tcOverridesCannotHaveVisibilityDeclarations",",,,") ) + /// Discriminated union types are always sealed + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:798) + static member tcTypesAreAlwaysSealedDU() = (942, GetStringFunc("tcTypesAreAlwaysSealedDU",",,,") ) + /// Record types are always sealed + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:799) + static member tcTypesAreAlwaysSealedRecord() = (942, GetStringFunc("tcTypesAreAlwaysSealedRecord",",,,") ) + /// Assembly code types are always sealed + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:800) + static member tcTypesAreAlwaysSealedAssemblyCode() = (942, GetStringFunc("tcTypesAreAlwaysSealedAssemblyCode",",,,") ) + /// Struct types are always sealed + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:801) + static member tcTypesAreAlwaysSealedStruct() = (942, GetStringFunc("tcTypesAreAlwaysSealedStruct",",,,") ) + /// Delegate types are always sealed + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:802) + static member tcTypesAreAlwaysSealedDelegate() = (942, GetStringFunc("tcTypesAreAlwaysSealedDelegate",",,,") ) + /// Enum types are always sealed + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:803) + static member tcTypesAreAlwaysSealedEnum() = (942, GetStringFunc("tcTypesAreAlwaysSealedEnum",",,,") ) + /// Interface types and delegate types cannot contain fields + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:804) + static member tcInterfaceTypesAndDelegatesCannotContainFields() = (943, GetStringFunc("tcInterfaceTypesAndDelegatesCannotContainFields",",,,") ) + /// Abbreviated types cannot be given the 'Sealed' attribute + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:805) + static member tcAbbreviatedTypesCannotBeSealed() = (944, GetStringFunc("tcAbbreviatedTypesCannotBeSealed",",,,") ) + /// Cannot inherit a sealed type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:806) + static member tcCannotInheritFromSealedType() = (945, GetStringFunc("tcCannotInheritFromSealedType",",,,") ) + /// Cannot inherit from interface type. Use interface ... with instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:807) + static member tcCannotInheritFromInterfaceType() = (946, GetStringFunc("tcCannotInheritFromInterfaceType",",,,") ) + /// Struct types cannot contain abstract members + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:808) + static member tcStructTypesCannotContainAbstractMembers() = (947, GetStringFunc("tcStructTypesCannotContainAbstractMembers",",,,") ) + /// Interface types cannot be sealed + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:809) + static member tcInterfaceTypesCannotBeSealed() = (948, GetStringFunc("tcInterfaceTypesCannotBeSealed",",,,") ) + /// Delegate specifications must be of the form 'typ -> typ' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:810) + static member tcInvalidDelegateSpecification() = (949, GetStringFunc("tcInvalidDelegateSpecification",",,,") ) + /// Delegate specifications must not be curried types. Use 'typ * ... * typ -> typ' for multi-argument delegates, and 'typ -> (typ -> typ)' for delegates returning function values. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:811) + static member tcDelegatesCannotBeCurried() = (950, GetStringFunc("tcDelegatesCannotBeCurried",",,,") ) + /// Literal enumerations must have type int, uint, int16, uint16, int64, uint64, byte, sbyte or char + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:812) + static member tcInvalidTypeForLiteralEnumeration() = (951, GetStringFunc("tcInvalidTypeForLiteralEnumeration",",,,") ) + /// This type definition involves an immediate cyclic reference through an abbreviation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:814) + static member tcTypeDefinitionIsCyclic() = (953, GetStringFunc("tcTypeDefinitionIsCyclic",",,,") ) + /// This type definition involves an immediate cyclic reference through a struct field or inheritance relation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:815) + static member tcTypeDefinitionIsCyclicThroughInheritance() = (954, GetStringFunc("tcTypeDefinitionIsCyclicThroughInheritance",",,,") ) + /// The syntax 'type X with ...' is reserved for augmentations. Types whose representations are hidden but which have members are now declared in signatures using 'type X = ...'. You may also need to add the '[] attribute to the type definition in the signature + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:816) + static member tcReservedSyntaxForAugmentation() = (GetStringFunc("tcReservedSyntaxForAugmentation",",,,") ) + /// Members that extend interface, delegate or enum types must be placed in a module separate to the definition of the type. This module must either have the AutoOpen attribute or be opened explicitly by client code to bring the extension members into scope. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:817) + static member tcMembersThatExtendInterfaceMustBePlacedInSeparateModule() = (956, GetStringFunc("tcMembersThatExtendInterfaceMustBePlacedInSeparateModule",",,,") ) + /// The declared type parameters for this type extension do not match the declared type parameters on the original type '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:818) + static member tcDeclaredTypeParametersForExtensionDoNotMatchOriginal(a0 : System.String) = (957, GetStringFunc("tcDeclaredTypeParametersForExtensionDoNotMatchOriginal",",,,%s,,,") a0) + /// Type definitions may only have one 'inherit' specification and it must be the first declaration + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:819) + static member tcTypeDefinitionsWithImplicitConstructionMustHaveOneInherit() = (959, GetStringFunc("tcTypeDefinitionsWithImplicitConstructionMustHaveOneInherit",",,,") ) + /// 'let' and 'do' bindings must come before member and interface definitions in type definitions + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:820) + static member tcTypeDefinitionsWithImplicitConstructionMustHaveLocalBindingsBeforeMembers() = (960, GetStringFunc("tcTypeDefinitionsWithImplicitConstructionMustHaveLocalBindingsBeforeMembers",",,,") ) + /// This 'inherit' declaration specifies the inherited type but no arguments. Consider supplying arguments, e.g. 'inherit BaseType(args)'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:821) + static member tcInheritDeclarationMissingArguments() = (961, GetStringFunc("tcInheritDeclarationMissingArguments",",,,") ) + /// This 'inherit' declaration has arguments, but is not in a type with a primary constructor. Consider adding arguments to your type definition, e.g. 'type X(args) = ...'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:822) + static member tcInheritConstructionCallNotPartOfImplicitSequence() = (962, GetStringFunc("tcInheritConstructionCallNotPartOfImplicitSequence",",,,") ) + /// This definition may only be used in a type with a primary constructor. Consider adding arguments to your type definition, e.g. 'type X(args) = ...'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:823) + static member tcLetAndDoRequiresImplicitConstructionSequence() = (963, GetStringFunc("tcLetAndDoRequiresImplicitConstructionSequence",",,,") ) + /// Type abbreviations cannot have augmentations + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:824) + static member tcTypeAbbreviationsCannotHaveAugmentations() = (964, GetStringFunc("tcTypeAbbreviationsCannotHaveAugmentations",",,,") ) + /// The path '%s' is a namespace. A module abbreviation may not abbreviate a namespace. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:825) + static member tcModuleAbbreviationForNamespace(a0 : System.String) = (965, GetStringFunc("tcModuleAbbreviationForNamespace",",,,%s,,,") a0) + /// The type '%s' is used in an invalid way. A value prior to '%s' has an inferred type involving '%s', which is an invalid forward reference. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:826) + static member tcTypeUsedInInvalidWay(a0 : System.String, a1 : System.String, a2 : System.String) = (966, GetStringFunc("tcTypeUsedInInvalidWay",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// The member '%s' is used in an invalid way. A use of '%s' has been inferred prior to the definition of '%s', which is an invalid forward reference. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:827) + static member tcMemberUsedInInvalidWay(a0 : System.String, a1 : System.String, a2 : System.String) = (967, GetStringFunc("tcMemberUsedInInvalidWay",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// The attribute 'AutoOpen(\"%s\")' in the assembly '%s' did not refer to a valid module or namespace in that assembly and has been ignored + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:830) + static member tcAttributeAutoOpenWasIgnored(a0 : System.String, a1 : System.String) = (970, GetStringFunc("tcAttributeAutoOpenWasIgnored",",,,%s,,,%s,,,") a0 a1) + /// Undefined value '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:834) + static member ilUndefinedValue(a0 : System.String) = (971, GetStringFunc("ilUndefinedValue",",,,%s,,,") a0) + /// Label %s not found + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:835) + static member ilLabelNotFound(a0 : System.String) = (972, GetStringFunc("ilLabelNotFound",",,,%s,,,") a0) + /// Incorrect number of type arguments to local call + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:836) + static member ilIncorrectNumberOfTypeArguments() = (973, GetStringFunc("ilIncorrectNumberOfTypeArguments",",,,") ) + /// Dynamic invocation of %s is not supported + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:837) + static member ilDynamicInvocationNotSupported(a0 : System.String) = (GetStringFunc("ilDynamicInvocationNotSupported",",,,%s,,,") a0) + /// Taking the address of a literal field is invalid + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:838) + static member ilAddressOfLiteralFieldIsInvalid() = (975, GetStringFunc("ilAddressOfLiteralFieldIsInvalid",",,,") ) + /// This operation involves taking the address of a value '%s' represented using a local variable or other special representation. This is invalid. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:839) + static member ilAddressOfValueHereIsInvalid(a0 : System.String) = (976, GetStringFunc("ilAddressOfValueHereIsInvalid",",,,%s,,,") a0) + /// Values marked with 'LiteralAttribute' cannot be mutable + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:840) + static member ilValuesWithLiteralAttributeCannotBeMutable() = (978, GetStringFunc("ilValuesWithLiteralAttributeCannotBeMutable",",,,") ) + /// Values marked with 'LiteralAttribute' must currently be simple integer, character, Boolean, string or floating point constants + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:841) + static member ilValuesWithLiteralAttributeMustBeSimple() = (979, GetStringFunc("ilValuesWithLiteralAttributeMustBeSimple",",,,") ) + /// Custom marshallers cannot be specified in F# code. Consider using a C# helper function. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:842) + static member ilCustomMarshallersCannotBeUsedInFSharp() = (980, GetStringFunc("ilCustomMarshallersCannotBeUsedInFSharp",",,,") ) + /// The MarshalAs attribute could not be decoded + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:843) + static member ilMarshalAsAttributeCannotBeDecoded() = (981, GetStringFunc("ilMarshalAsAttributeCannotBeDecoded",",,,") ) + /// The signature for this external function contains type parameters. Constrain the argument and return types to indicate the types of the corresponding C function. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:844) + static member ilSignatureForExternalFunctionContainsTypeParameters() = (982, GetStringFunc("ilSignatureForExternalFunctionContainsTypeParameters",",,,") ) + /// The DllImport attribute could not be decoded + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:845) + static member ilDllImportAttributeCouldNotBeDecoded() = (983, GetStringFunc("ilDllImportAttributeCouldNotBeDecoded",",,,") ) + /// Literal fields cannot be set + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:846) + static member ilLiteralFieldsCannotBeSet() = (984, GetStringFunc("ilLiteralFieldsCannotBeSet",",,,") ) + /// GenSetStorage: %s was represented as a static method but was not an appropriate lambda expression + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:847) + static member ilStaticMethodIsNotLambda(a0 : System.String) = (985, GetStringFunc("ilStaticMethodIsNotLambda",",,,%s,,,") a0) + /// Mutable variables cannot escape their method + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:848) + static member ilMutableVariablesCannotEscapeMethod() = (986, GetStringFunc("ilMutableVariablesCannotEscapeMethod",",,,") ) + /// Compiler error: unexpected unrealized value + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:849) + static member ilUnexpectedUnrealizedValue() = (987, GetStringFunc("ilUnexpectedUnrealizedValue",",,,") ) + /// Main module of program is empty: nothing will happen when it is run + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:850) + static member ilMainModuleEmpty() = (988, GetStringFunc("ilMainModuleEmpty",",,,") ) + /// This type cannot be used for a literal field + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:851) + static member ilTypeCannotBeUsedForLiteralField() = (989, GetStringFunc("ilTypeCannotBeUsedForLiteralField",",,,") ) + /// Unexpected GetSet annotation on a property + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:852) + static member ilUnexpectedGetSetAnnotation() = (990, GetStringFunc("ilUnexpectedGetSetAnnotation",",,,") ) + /// The FieldOffset attribute could not be decoded + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:853) + static member ilFieldOffsetAttributeCouldNotBeDecoded() = (991, GetStringFunc("ilFieldOffsetAttributeCouldNotBeDecoded",",,,") ) + /// The StructLayout attribute could not be decoded + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:854) + static member ilStructLayoutAttributeCouldNotBeDecoded() = (992, GetStringFunc("ilStructLayoutAttributeCouldNotBeDecoded",",,,") ) + /// The DefaultAugmentation attribute could not be decoded + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:855) + static member ilDefaultAugmentationAttributeCouldNotBeDecoded() = (993, GetStringFunc("ilDefaultAugmentationAttributeCouldNotBeDecoded",",,,") ) + /// Reflected definitions cannot contain uses of the prefix splice operator '%%' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:856) + static member ilReflectedDefinitionsCannotUseSliceOperator() = (994, GetStringFunc("ilReflectedDefinitionsCannotUseSliceOperator",",,,") ) + /// Problem with codepage '%d': %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:860) + static member optsProblemWithCodepage(a0 : System.Int32, a1 : System.String) = (1000, GetStringFunc("optsProblemWithCodepage",",,,%d,,,%s,,,") a0 a1) + /// Freely distributed under the Apache 2.0 Open Source License + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:861) + static member optsCopyright() = (GetStringFunc("optsCopyright",",,,") ) + /// Name of the output file (Short form: -o) + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:862) + static member optsNameOfOutputFile() = (GetStringFunc("optsNameOfOutputFile",",,,") ) + /// Build a console executable + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:863) + static member optsBuildConsole() = (GetStringFunc("optsBuildConsole",",,,") ) + /// Build a Windows executable + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:864) + static member optsBuildWindows() = (GetStringFunc("optsBuildWindows",",,,") ) + /// Build a library (Short form: -a) + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:865) + static member optsBuildLibrary() = (GetStringFunc("optsBuildLibrary",",,,") ) + /// Build a module that can be added to another assembly + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:866) + static member optsBuildModule() = (GetStringFunc("optsBuildModule",",,,") ) + /// Delay-sign the assembly using only the public portion of the strong name key + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:867) + static member optsDelaySign() = (GetStringFunc("optsDelaySign",",,,") ) + /// Write the xmldoc of the assembly to the given file + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:868) + static member optsWriteXml() = (GetStringFunc("optsWriteXml",",,,") ) + /// Specify a strong name key file + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:869) + static member optsStrongKeyFile() = (GetStringFunc("optsStrongKeyFile",",,,") ) + /// Specify a strong name key container + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:870) + static member optsStrongKeyContainer() = (GetStringFunc("optsStrongKeyContainer",",,,") ) + /// Limit which platforms this code can run on: x86, Itanium, x64, anycpu32bitpreferred, or anycpu. The default is anycpu. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:871) + static member optsPlatform() = (GetStringFunc("optsPlatform",",,,") ) + /// Only include optimization information essential for implementing inlined constructs. Inhibits cross-module inlining but improves binary compatibility. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:872) + static member optsNoOpt() = (GetStringFunc("optsNoOpt",",,,") ) + /// Don't add a resource to the generated assembly containing F#-specific metadata + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:873) + static member optsNoInterface() = (GetStringFunc("optsNoInterface",",,,") ) + /// Print the inferred interface of the assembly to a file + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:874) + static member optsSig() = (GetStringFunc("optsSig",",,,") ) + /// Reference an assembly (Short form: -r) + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:875) + static member optsReference() = (GetStringFunc("optsReference",",,,") ) + /// Specify a Win32 resource file (.res) + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:876) + static member optsWin32res() = (GetStringFunc("optsWin32res",",,,") ) + /// Specify a Win32 manifest file + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:877) + static member optsWin32manifest() = (GetStringFunc("optsWin32manifest",",,,") ) + /// Do not include the default Win32 manifest + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:878) + static member optsNowin32manifest() = (GetStringFunc("optsNowin32manifest",",,,") ) + /// Embed the specified managed resource + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:879) + static member optsResource() = (GetStringFunc("optsResource",",,,") ) + /// Link the specified resource to this assembly where the resinfo format is [,[,public|private]] + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:880) + static member optsLinkresource() = (GetStringFunc("optsLinkresource",",,,") ) + /// Emit debug information (Short form: -g) + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:881) + static member optsDebugPM() = (GetStringFunc("optsDebugPM",",,,") ) + /// Specify debugging type: full, pdbonly. ('full' is the default and enables attaching a debugger to a running program). + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:882) + static member optsDebug() = (GetStringFunc("optsDebug",",,,") ) + /// Enable optimizations (Short form: -O) + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:883) + static member optsOptimize() = (GetStringFunc("optsOptimize",",,,") ) + /// Enable or disable tailcalls + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:884) + static member optsTailcalls() = (GetStringFunc("optsTailcalls",",,,") ) + /// Enable or disable cross-module optimizations + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:885) + static member optsCrossoptimize() = (GetStringFunc("optsCrossoptimize",",,,") ) + /// Report all warnings as errors + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:886) + static member optsWarnaserrorPM() = (GetStringFunc("optsWarnaserrorPM",",,,") ) + /// Report specific warnings as errors + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:887) + static member optsWarnaserror() = (GetStringFunc("optsWarnaserror",",,,") ) + /// Set a warning level (0-5) + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:888) + static member optsWarn() = (GetStringFunc("optsWarn",",,,") ) + /// Disable specific warning messages + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:889) + static member optsNowarn() = (GetStringFunc("optsNowarn",",,,") ) + /// Enable specific warnings that may be off by default + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:890) + static member optsWarnOn() = (GetStringFunc("optsWarnOn",",,,") ) + /// Generate overflow checks + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:891) + static member optsChecked() = (GetStringFunc("optsChecked",",,,") ) + /// Define conditional compilation symbols (Short form: -d) + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:892) + static member optsDefine() = (GetStringFunc("optsDefine",",,,") ) + /// Ignore ML compatibility warnings + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:893) + static member optsMlcompatibility() = (GetStringFunc("optsMlcompatibility",",,,") ) + /// Suppress compiler copyright message + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:894) + static member optsNologo() = (GetStringFunc("optsNologo",",,,") ) + /// Display this usage message (Short form: -?) + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:895) + static member optsHelp() = (GetStringFunc("optsHelp",",,,") ) + /// Specify the codepage used to read source files + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:896) + static member optsCodepage() = (GetStringFunc("optsCodepage",",,,") ) + /// Output messages in UTF-8 encoding + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:897) + static member optsUtf8output() = (GetStringFunc("optsUtf8output",",,,") ) + /// Output messages with fully qualified paths + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:898) + static member optsFullpaths() = (GetStringFunc("optsFullpaths",",,,") ) + /// Specify a directory for the include path which is used to resolve source files and assemblies (Short form: -I) + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:899) + static member optsLib() = (GetStringFunc("optsLib",",,,") ) + /// Base address for the library to be built + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:900) + static member optsBaseaddress() = (GetStringFunc("optsBaseaddress",",,,") ) + /// Do not reference the default CLI assemblies by default + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:901) + static member optsNoframework() = (GetStringFunc("optsNoframework",",,,") ) + /// Statically link the F# library and all referenced DLLs that depend on it into the assembly being generated + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:902) + static member optsStandalone() = (GetStringFunc("optsStandalone",",,,") ) + /// Statically link the given assembly and all referenced DLLs that depend on this assembly. Use an assembly name e.g. mylib, not a DLL name. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:903) + static member optsStaticlink() = (GetStringFunc("optsStaticlink",",,,") ) + /// Use a resident background compilation service to improve compiler startup times. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:904) + static member optsResident() = (GetStringFunc("optsResident",",,,") ) + /// Name the output debug file + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:905) + static member optsPdb() = (GetStringFunc("optsPdb",",,,") ) + /// Resolve assembly references using directory-based rules rather than MSBuild resolution + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:906) + static member optsSimpleresolution() = (GetStringFunc("optsSimpleresolution",",,,") ) + /// Unrecognized target '%s', expected 'exe', 'winexe', 'library' or 'module' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:907) + static member optsUnrecognizedTarget(a0 : System.String) = (1048, GetStringFunc("optsUnrecognizedTarget",",,,%s,,,") a0) + /// Unrecognized debug type '%s', expected 'pdbonly' or 'full' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:908) + static member optsUnrecognizedDebugType(a0 : System.String) = (1049, GetStringFunc("optsUnrecognizedDebugType",",,,%s,,,") a0) + /// Invalid warning level '%d' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:909) + static member optsInvalidWarningLevel(a0 : System.Int32) = (1050, GetStringFunc("optsInvalidWarningLevel",",,,%d,,,") a0) + /// Short form of '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:910) + static member optsShortFormOf(a0 : System.String) = (GetStringFunc("optsShortFormOf",",,,%s,,,") a0) + /// The command-line option '--cliroot' has been deprecated. Use an explicit reference to a specific copy of mscorlib.dll instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:911) + static member optsClirootDeprecatedMsg() = (GetStringFunc("optsClirootDeprecatedMsg",",,,") ) + /// Use to override where the compiler looks for mscorlib.dll and framework components + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:912) + static member optsClirootDescription() = (GetStringFunc("optsClirootDescription",",,,") ) + /// - OUTPUT FILES - + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:913) + static member optsHelpBannerOutputFiles() = (GetStringFunc("optsHelpBannerOutputFiles",",,,") ) + /// - INPUT FILES - + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:914) + static member optsHelpBannerInputFiles() = (GetStringFunc("optsHelpBannerInputFiles",",,,") ) + /// - RESOURCES - + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:915) + static member optsHelpBannerResources() = (GetStringFunc("optsHelpBannerResources",",,,") ) + /// - CODE GENERATION - + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:916) + static member optsHelpBannerCodeGen() = (GetStringFunc("optsHelpBannerCodeGen",",,,") ) + /// - ADVANCED - + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:917) + static member optsHelpBannerAdvanced() = (GetStringFunc("optsHelpBannerAdvanced",",,,") ) + /// - MISCELLANEOUS - + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:918) + static member optsHelpBannerMisc() = (GetStringFunc("optsHelpBannerMisc",",,,") ) + /// - LANGUAGE - + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:919) + static member optsHelpBannerLanguage() = (GetStringFunc("optsHelpBannerLanguage",",,,") ) + /// - ERRORS AND WARNINGS - + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:920) + static member optsHelpBannerErrsAndWarns() = (GetStringFunc("optsHelpBannerErrsAndWarns",",,,") ) + /// Unknown --test argument: '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:921) + static member optsUnknownArgumentToTheTestSwitch(a0 : System.String) = (1063, GetStringFunc("optsUnknownArgumentToTheTestSwitch",",,,%s,,,") a0) + /// Unrecognized platform '%s', valid values are 'x86', 'x64', 'Itanium', 'anycpu32bitpreferred', and 'anycpu' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:922) + static member optsUnknownPlatform(a0 : System.String) = (1064, GetStringFunc("optsUnknownPlatform",",,,%s,,,") a0) + /// The command-line option '%s' is for internal use only + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:923) + static member optsInternalNoDescription(a0 : System.String) = (GetStringFunc("optsInternalNoDescription",",,,%s,,,") a0) + /// The command-line option '%s' has been deprecated + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:924) + static member optsDCLONoDescription(a0 : System.String) = (GetStringFunc("optsDCLONoDescription",",,,%s,,,") a0) + /// The command-line option '%s' has been deprecated. Use '%s' instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:925) + static member optsDCLODeprecatedSuggestAlternative(a0 : System.String, a1 : System.String) = (GetStringFunc("optsDCLODeprecatedSuggestAlternative",",,,%s,,,%s,,,") a0 a1) + /// The command-line option '%s' has been deprecated. HTML document generation is now part of the F# Power Pack, via the tool FsHtmlDoc.exe. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:926) + static member optsDCLOHtmlDoc(a0 : System.String) = (GetStringFunc("optsDCLOHtmlDoc",",,,%s,,,") a0) + /// Output warning and error messages in color + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:927) + static member optsConsoleColors() = (GetStringFunc("optsConsoleColors",",,,") ) + /// Enable high-entropy ASLR + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:928) + static member optsUseHighEntropyVA() = (GetStringFunc("optsUseHighEntropyVA",",,,") ) + /// Specify subsystem version of this assembly + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:929) + static member optsSubSystemVersion() = (GetStringFunc("optsSubSystemVersion",",,,") ) + /// Invalid version '%s' for '--subsystemversion'. The version must be 4.00 or greater. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:930) + static member optsInvalidSubSystemVersion(a0 : System.String) = (1051, GetStringFunc("optsInvalidSubSystemVersion",",,,%s,,,") a0) + /// Full name + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:934) + static member typeInfoFullName() = (GetStringFunc("typeInfoFullName",",,,") ) + /// type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:935) + static member typeInfoType() = (GetStringFunc("typeInfoType",",,,") ) + /// inherits + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:936) + static member typeInfoInherits() = (GetStringFunc("typeInfoInherits",",,,") ) + /// implements + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:937) + static member typeInfoImplements() = (GetStringFunc("typeInfoImplements",",,,") ) + /// and %d other overloads + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:938) + static member typeInfoOtherOverloads(a0 : System.Int32) = (GetStringFunc("typeInfoOtherOverloads",",,,%d,,,") a0) + /// union case + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:939) + static member typeInfoUnionCase() = (GetStringFunc("typeInfoUnionCase",",,,") ) + /// active pattern result + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:940) + static member typeInfoActivePatternResult() = (GetStringFunc("typeInfoActivePatternResult",",,,") ) + /// active recognizer + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:941) + static member typeInfoActiveRecognizer() = (GetStringFunc("typeInfoActiveRecognizer",",,,") ) + /// field + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:942) + static member typeInfoField() = (GetStringFunc("typeInfoField",",,,") ) + /// event + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:943) + static member typeInfoEvent() = (GetStringFunc("typeInfoEvent",",,,") ) + /// property + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:944) + static member typeInfoProperty() = (GetStringFunc("typeInfoProperty",",,,") ) + /// custom operation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:945) + static member typeInfoCustomOperation() = (GetStringFunc("typeInfoCustomOperation",",,,") ) + /// argument + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:946) + static member typeInfoArgument() = (GetStringFunc("typeInfoArgument",",,,") ) + /// patvar + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:947) + static member typeInfoPatternVariable() = (GetStringFunc("typeInfoPatternVariable",",,,") ) + /// namespace + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:948) + static member typeInfoNamespace() = (GetStringFunc("typeInfoNamespace",",,,") ) + /// module + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:949) + static member typeInfoModule() = (GetStringFunc("typeInfoModule",",,,") ) + /// namespace/module + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:950) + static member typeInfoNamespaceOrModule() = (GetStringFunc("typeInfoNamespaceOrModule",",,,") ) + /// from %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:951) + static member typeInfoFromFirst(a0 : System.String) = (GetStringFunc("typeInfoFromFirst",",,,%s,,,") a0) + /// also from %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:952) + static member typeInfoFromNext(a0 : System.String) = (GetStringFunc("typeInfoFromNext",",,,%s,,,") a0) + /// generated property + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:953) + static member typeInfoGeneratedProperty() = (GetStringFunc("typeInfoGeneratedProperty",",,,") ) + /// generated type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:954) + static member typeInfoGeneratedType() = (GetStringFunc("typeInfoGeneratedType",",,,") ) + /// Found by AssemblyFolders registry key + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:955) + static member assemblyResolutionFoundByAssemblyFoldersKey() = (GetStringFunc("assemblyResolutionFoundByAssemblyFoldersKey",",,,") ) + /// Found by AssemblyFoldersEx registry key + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:956) + static member assemblyResolutionFoundByAssemblyFoldersExKey() = (GetStringFunc("assemblyResolutionFoundByAssemblyFoldersExKey",",,,") ) + /// .NET Framework + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:957) + static member assemblyResolutionNetFramework() = (GetStringFunc("assemblyResolutionNetFramework",",,,") ) + /// Global Assembly Cache + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:958) + static member assemblyResolutionGAC() = (GetStringFunc("assemblyResolutionGAC",",,,") ) + /// Recursive class hierarchy in type '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:962) + static member recursiveClassHierarchy(a0 : System.String) = (1089, GetStringFunc("recursiveClassHierarchy",",,,%s,,,") a0) + /// Invalid recursive reference to an abstract slot + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:963) + static member InvalidRecursiveReferenceToAbstractSlot() = (1090, GetStringFunc("InvalidRecursiveReferenceToAbstractSlot",",,,") ) + /// The event '%s' has a non-standard type. If this event is declared in another CLI language, you may need to access this event using the explicit %s and %s methods for the event. If this event is declared in F#, make the type of the event an instantiation of either 'IDelegateEvent<_>' or 'IEvent<_,_>'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:964) + static member eventHasNonStandardType(a0 : System.String, a1 : System.String, a2 : System.String) = (1091, GetStringFunc("eventHasNonStandardType",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// The type '%s' is not accessible from this code location + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:965) + static member typeIsNotAccessible(a0 : System.String) = (1092, GetStringFunc("typeIsNotAccessible",",,,%s,,,") a0) + /// The union cases or fields of the type '%s' are not accessible from this code location + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:966) + static member unionCasesAreNotAccessible(a0 : System.String) = (1093, GetStringFunc("unionCasesAreNotAccessible",",,,%s,,,") a0) + /// The value '%s' is not accessible from this code location + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:967) + static member valueIsNotAccessible(a0 : System.String) = (1094, GetStringFunc("valueIsNotAccessible",",,,%s,,,") a0) + /// The union case '%s' is not accessible from this code location + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:968) + static member unionCaseIsNotAccessible(a0 : System.String) = (1095, GetStringFunc("unionCaseIsNotAccessible",",,,%s,,,") a0) + /// The record, struct or class field '%s' is not accessible from this code location + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:969) + static member fieldIsNotAccessible(a0 : System.String) = (1096, GetStringFunc("fieldIsNotAccessible",",,,%s,,,") a0) + /// The struct or class field '%s' is not accessible from this code location + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:970) + static member structOrClassFieldIsNotAccessible(a0 : System.String) = (1097, GetStringFunc("structOrClassFieldIsNotAccessible",",,,%s,,,") a0) + /// This construct is experimental + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:971) + static member experimentalConstruct() = (GetStringFunc("experimentalConstruct",",,,") ) + /// No Invoke methods found for delegate type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:972) + static member noInvokeMethodsFound() = (1099, GetStringFunc("noInvokeMethodsFound",",,,") ) + /// More than one Invoke method found for delegate type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:973) + static member moreThanOneInvokeMethodFound() = (GetStringFunc("moreThanOneInvokeMethodFound",",,,") ) + /// Delegates are not allowed to have curried signatures + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:974) + static member delegatesNotAllowedToHaveCurriedSignatures() = (1101, GetStringFunc("delegatesNotAllowedToHaveCurriedSignatures",",,,") ) + /// Unexpected Expr.TyChoose + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:978) + static member tlrUnexpectedTExpr() = (1102, GetStringFunc("tlrUnexpectedTExpr",",,,") ) + /// Note: Lambda-lifting optimizations have not been applied because of the use of this local constrained generic function as a first class value. Adding type constraints may resolve this condition. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:979) + static member tlrLambdaLiftingOptimizationsNotApplied() = (1103, GetStringFunc("tlrLambdaLiftingOptimizationsNotApplied",",,,") ) + /// Identifiers containing '@' are reserved for use in F# code generation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:983) + static member lexhlpIdentifiersContainingAtSymbolReserved() = (1104, GetStringFunc("lexhlpIdentifiersContainingAtSymbolReserved",",,,") ) + /// The identifier '%s' is reserved for future use by F# + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:984) + static member lexhlpIdentifierReserved(a0 : System.String) = (GetStringFunc("lexhlpIdentifierReserved",",,,%s,,,") a0) + /// Missing variable '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:988) + static member patcMissingVariable(a0 : System.String) = (1106, GetStringFunc("patcMissingVariable",",,,%s,,,") a0) + /// Partial active patterns may only generate one result + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:989) + static member patcPartialActivePatternsGenerateOneResult() = (1107, GetStringFunc("patcPartialActivePatternsGenerateOneResult",",,,") ) + /// The type '%s' is required here and is unavailable. You must add a reference to assembly '%s'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:993) + static member impTypeRequiredUnavailable(a0 : System.String, a1 : System.String) = (1108, GetStringFunc("impTypeRequiredUnavailable",",,,%s,,,%s,,,") a0 a1) + /// A reference to the type '%s' in assembly '%s' was found, but the type could not be found in that assembly + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:994) + static member impReferencedTypeCouldNotBeFoundInAssembly(a0 : System.String, a1 : System.String) = (1109, GetStringFunc("impReferencedTypeCouldNotBeFoundInAssembly",",,,%s,,,%s,,,") a0 a1) + /// Internal error or badly formed metadata: not enough type parameters were in scope while importing + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:995) + static member impNotEnoughTypeParamsInScopeWhileImporting() = (1110, GetStringFunc("impNotEnoughTypeParamsInScopeWhileImporting",",,,") ) + /// A reference to the DLL %s is required by assembly %s. The imported type %s is located in the first assembly and could not be resolved. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:996) + static member impReferenceToDllRequiredByAssembly(a0 : System.String, a1 : System.String, a2 : System.String) = (1111, GetStringFunc("impReferenceToDllRequiredByAssembly",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// An imported assembly uses the type '%s' but that type is not public + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:997) + static member impImportedAssemblyUsesNotPublicType(a0 : System.String) = (1112, GetStringFunc("impImportedAssemblyUsesNotPublicType",",,,%s,,,") a0) + /// The value '%s' was marked inline but its implementation makes use of an internal or private function which is not sufficiently accessible + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1001) + static member optValueMarkedInlineButIncomplete(a0 : System.String) = (1113, GetStringFunc("optValueMarkedInlineButIncomplete",",,,%s,,,") a0) + /// The value '%s' was marked inline but was not bound in the optimization environment + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1002) + static member optValueMarkedInlineButWasNotBoundInTheOptEnv(a0 : System.String) = (1114, GetStringFunc("optValueMarkedInlineButWasNotBoundInTheOptEnv",",,,%s,,,") a0) + /// Local value %s not found during optimization + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1003) + static member optLocalValueNotFoundDuringOptimization(a0 : System.String) = (1115, GetStringFunc("optLocalValueNotFoundDuringOptimization",",,,%s,,,") a0) + /// A value marked as 'inline' has an unexpected value + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1004) + static member optValueMarkedInlineHasUnexpectedValue() = (1116, GetStringFunc("optValueMarkedInlineHasUnexpectedValue",",,,") ) + /// A value marked as 'inline' could not be inlined + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1005) + static member optValueMarkedInlineCouldNotBeInlined() = (1117, GetStringFunc("optValueMarkedInlineCouldNotBeInlined",",,,") ) + /// Failed to inline the value '%s' marked 'inline', perhaps because a recursive value was marked 'inline' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1006) + static member optFailedToInlineValue(a0 : System.String) = (1118, GetStringFunc("optFailedToInlineValue",",,,%s,,,") a0) + /// Recursive ValValue %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1007) + static member optRecursiveValValue(a0 : System.String) = (1119, GetStringFunc("optRecursiveValValue",",,,%s,,,") a0) + /// The indentation of this 'in' token is incorrect with respect to the corresponding 'let' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1011) + static member lexfltIncorrentIndentationOfIn() = (GetStringFunc("lexfltIncorrentIndentationOfIn",",,,") ) + /// Possible incorrect indentation: this token is offside of context started at position %s. Try indenting this token further or using standard formatting conventions. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1012) + static member lexfltTokenIsOffsideOfContextStartedEarlier(a0 : System.String) = (GetStringFunc("lexfltTokenIsOffsideOfContextStartedEarlier",",,,%s,,,") a0) + /// The '|' tokens separating rules of this pattern match are misaligned by one column. Consider realigning your code or using further indentation. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1013) + static member lexfltSeparatorTokensOfPatternMatchMisaligned() = (GetStringFunc("lexfltSeparatorTokensOfPatternMatchMisaligned",",,,") ) + /// Invalid module/expression/type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1017) + static member nrInvalidModuleExprType() = (1123, GetStringFunc("nrInvalidModuleExprType",",,,") ) + /// Multiple types exist called '%s', taking different numbers of generic parameters. Provide a type instantiation to disambiguate the type resolution, e.g. '%s'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1018) + static member nrTypeInstantiationNeededToDisambiguateTypesWithSameName(a0 : System.String, a1 : System.String) = (1124, GetStringFunc("nrTypeInstantiationNeededToDisambiguateTypesWithSameName",",,,%s,,,%s,,,") a0 a1) + /// The instantiation of the generic type '%s' is missing and can't be inferred from the arguments or return type of this member. Consider providing a type instantiation when accessing this type, e.g. '%s'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1019) + static member nrTypeInstantiationIsMissingAndCouldNotBeInferred(a0 : System.String, a1 : System.String) = (1125, GetStringFunc("nrTypeInstantiationIsMissingAndCouldNotBeInferred",",,,%s,,,%s,,,") a0 a1) + /// 'global' may only be used as the first name in a qualified path + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1020) + static member nrGlobalUsedOnlyAsFirstName() = (1126, GetStringFunc("nrGlobalUsedOnlyAsFirstName",",,,") ) + /// This is not a constructor or literal, or a constructor is being used incorrectly + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1021) + static member nrIsNotConstructorOrLiteral() = (1127, GetStringFunc("nrIsNotConstructorOrLiteral",",,,") ) + /// Unexpected empty long identifier + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1022) + static member nrUnexpectedEmptyLongId() = (1128, GetStringFunc("nrUnexpectedEmptyLongId",",,,") ) + /// The type '%s' does not contain a field '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1023) + static member nrTypeDoesNotContainSuchField(a0 : System.String, a1 : System.String) = (1129, GetStringFunc("nrTypeDoesNotContainSuchField",",,,%s,,,%s,,,") a0 a1) + /// Invalid field label + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1024) + static member nrInvalidFieldLabel() = (1130, GetStringFunc("nrInvalidFieldLabel",",,,") ) + /// Invalid expression '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1025) + static member nrInvalidExpression(a0 : System.String) = (1132, GetStringFunc("nrInvalidExpression",",,,%s,,,") a0) + /// No constructors are available for the type '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1026) + static member nrNoConstructorsAvailableForType(a0 : System.String) = (1133, GetStringFunc("nrNoConstructorsAvailableForType",",,,%s,,,") a0) + /// Unexpected error creating debug information file '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1030) + static member ilwriteErrorCreatingPdb(a0 : System.String) = (1135, GetStringFunc("ilwriteErrorCreatingPdb",",,,%s,,,") a0) + /// This number is outside the allowable range for this integer type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1034) + static member lexOutsideIntegerRange() = (1138, GetStringFunc("lexOutsideIntegerRange",",,,") ) + /// '%s' is not permitted as a character in operator names and is reserved for future use + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1035) + static member lexCharNotAllowedInOperatorNames(a0 : System.String) = (GetStringFunc("lexCharNotAllowedInOperatorNames",",,,%s,,,") a0) + /// Unexpected character '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1036) + static member lexUnexpectedChar(a0 : System.String) = (GetStringFunc("lexUnexpectedChar",",,,%s,,,") a0) + /// This byte array literal contains characters that do not encode as a single byte + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1037) + static member lexByteArrayCannotEncode() = (1140, GetStringFunc("lexByteArrayCannotEncode",",,,") ) + /// Identifiers followed by '%s' are reserved for future use + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1038) + static member lexIdentEndInMarkReserved(a0 : System.String) = (1141, GetStringFunc("lexIdentEndInMarkReserved",",,,%s,,,") a0) + /// This number is outside the allowable range for 8-bit signed integers + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1039) + static member lexOutsideEightBitSigned() = (1142, GetStringFunc("lexOutsideEightBitSigned",",,,") ) + /// This number is outside the allowable range for hexadecimal 8-bit signed integers + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1040) + static member lexOutsideEightBitSignedHex() = (1143, GetStringFunc("lexOutsideEightBitSignedHex",",,,") ) + /// This number is outside the allowable range for 8-bit unsigned integers + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1041) + static member lexOutsideEightBitUnsigned() = (1144, GetStringFunc("lexOutsideEightBitUnsigned",",,,") ) + /// This number is outside the allowable range for 16-bit signed integers + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1042) + static member lexOutsideSixteenBitSigned() = (1145, GetStringFunc("lexOutsideSixteenBitSigned",",,,") ) + /// This number is outside the allowable range for 16-bit unsigned integers + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1043) + static member lexOutsideSixteenBitUnsigned() = (1146, GetStringFunc("lexOutsideSixteenBitUnsigned",",,,") ) + /// This number is outside the allowable range for 32-bit signed integers + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1044) + static member lexOutsideThirtyTwoBitSigned() = (1147, GetStringFunc("lexOutsideThirtyTwoBitSigned",",,,") ) + /// This number is outside the allowable range for 32-bit unsigned integers + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1045) + static member lexOutsideThirtyTwoBitUnsigned() = (1148, GetStringFunc("lexOutsideThirtyTwoBitUnsigned",",,,") ) + /// This number is outside the allowable range for 64-bit signed integers + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1046) + static member lexOutsideSixtyFourBitSigned() = (1149, GetStringFunc("lexOutsideSixtyFourBitSigned",",,,") ) + /// This number is outside the allowable range for 64-bit unsigned integers + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1047) + static member lexOutsideSixtyFourBitUnsigned() = (1150, GetStringFunc("lexOutsideSixtyFourBitUnsigned",",,,") ) + /// This number is outside the allowable range for signed native integers + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1048) + static member lexOutsideNativeSigned() = (1151, GetStringFunc("lexOutsideNativeSigned",",,,") ) + /// This number is outside the allowable range for unsigned native integers + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1049) + static member lexOutsideNativeUnsigned() = (1152, GetStringFunc("lexOutsideNativeUnsigned",",,,") ) + /// Invalid floating point number + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1050) + static member lexInvalidFloat() = (1153, GetStringFunc("lexInvalidFloat",",,,") ) + /// This number is outside the allowable range for decimal literals + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1051) + static member lexOusideDecimal() = (1154, GetStringFunc("lexOusideDecimal",",,,") ) + /// This number is outside the allowable range for 32-bit floats + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1052) + static member lexOusideThirtyTwoBitFloat() = (1155, GetStringFunc("lexOusideThirtyTwoBitFloat",",,,") ) + /// This is not a valid numeric literal. Sample formats include 4, 0x4, 0b0100, 4L, 4UL, 4u, 4s, 4us, 4y, 4uy, 4.0, 4.0f, 4I. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1053) + static member lexInvalidNumericLiteral() = (1156, GetStringFunc("lexInvalidNumericLiteral",",,,") ) + /// This is not a valid byte literal + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1054) + static member lexInvalidByteLiteral() = (1157, GetStringFunc("lexInvalidByteLiteral",",,,") ) + /// This is not a valid character literal + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1055) + static member lexInvalidCharLiteral() = (1158, GetStringFunc("lexInvalidCharLiteral",",,,") ) + /// This Unicode encoding is only valid in string literals + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1056) + static member lexThisUnicodeOnlyInStringLiterals() = (1159, GetStringFunc("lexThisUnicodeOnlyInStringLiterals",",,,") ) + /// This token is reserved for future use + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1057) + static member lexTokenReserved() = (1160, GetStringFunc("lexTokenReserved",",,,") ) + /// TABs are not allowed in F# code unless the #indent \"off\" option is used + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1058) + static member lexTabsNotAllowed() = (1161, GetStringFunc("lexTabsNotAllowed",",,,") ) + /// Invalid line number: '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1059) + static member lexInvalidLineNumber(a0 : System.String) = (1162, GetStringFunc("lexInvalidLineNumber",",,,%s,,,") a0) + /// #if directive must appear as the first non-whitespace character on a line + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1060) + static member lexHashIfMustBeFirst() = (1163, GetStringFunc("lexHashIfMustBeFirst",",,,") ) + /// #else has no matching #if + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1061) + static member lexHashElseNoMatchingIf() = (GetStringFunc("lexHashElseNoMatchingIf",",,,") ) + /// #endif required for #else + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1062) + static member lexHashEndifRequiredForElse() = (GetStringFunc("lexHashEndifRequiredForElse",",,,") ) + /// #else directive must appear as the first non-whitespace character on a line + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1063) + static member lexHashElseMustBeFirst() = (1166, GetStringFunc("lexHashElseMustBeFirst",",,,") ) + /// #endif has no matching #if + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1064) + static member lexHashEndingNoMatchingIf() = (GetStringFunc("lexHashEndingNoMatchingIf",",,,") ) + /// #endif directive must appear as the first non-whitespace character on a line + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1065) + static member lexHashEndifMustBeFirst() = (1168, GetStringFunc("lexHashEndifMustBeFirst",",,,") ) + /// #if directive should be immediately followed by an identifier + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1066) + static member lexHashIfMustHaveIdent() = (1169, GetStringFunc("lexHashIfMustHaveIdent",",,,") ) + /// Syntax error. Wrong nested #endif, unexpected tokens before it. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1067) + static member lexWrongNestedHashEndif() = (1170, GetStringFunc("lexWrongNestedHashEndif",",,,") ) + /// Expected single line comment or end of line + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1068) + static member lexExpectedSingleLineComment() = (1171, GetStringFunc("lexExpectedSingleLineComment",",,,") ) + /// Infix operator member '%s' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ... + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1069) + static member memberOperatorDefinitionWithNoArguments(a0 : System.String) = (1172, GetStringFunc("memberOperatorDefinitionWithNoArguments",",,,%s,,,") a0) + /// Infix operator member '%s' has %d initial argument(s). Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ... + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1070) + static member memberOperatorDefinitionWithNonPairArgument(a0 : System.String, a1 : System.Int32) = (1173, GetStringFunc("memberOperatorDefinitionWithNonPairArgument",",,,%s,,,%d,,,") a0 a1) + /// Infix operator member '%s' has extra curried arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ... + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1071) + static member memberOperatorDefinitionWithCurriedArguments(a0 : System.String) = (1174, GetStringFunc("memberOperatorDefinitionWithCurriedArguments",",,,%s,,,") a0) + /// All record, union and struct types in FSharp.Core.dll must be explicitly labelled with 'StructuralComparison' or 'NoComparison' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1072) + static member tcFSharpCoreRequiresExplicit() = (1175, GetStringFunc("tcFSharpCoreRequiresExplicit",",,,") ) + /// The struct, record or union type '%s' has the 'StructuralComparison' attribute but the type parameter '%s' does not satisfy the 'comparison' constraint. Consider adding the 'comparison' constraint to the type parameter + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1073) + static member tcStructuralComparisonNotSatisfied1(a0 : System.String, a1 : System.String) = (1176, GetStringFunc("tcStructuralComparisonNotSatisfied1",",,,%s,,,%s,,,") a0 a1) + /// The struct, record or union type '%s' has the 'StructuralComparison' attribute but the component type '%s' does not satisfy the 'comparison' constraint + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1074) + static member tcStructuralComparisonNotSatisfied2(a0 : System.String, a1 : System.String) = (1177, GetStringFunc("tcStructuralComparisonNotSatisfied2",",,,%s,,,%s,,,") a0 a1) + /// The struct, record or union type '%s' is not structurally comparable because the type parameter %s does not satisfy the 'comparison' constraint. Consider adding the 'NoComparison' attribute to the type '%s' to clarify that the type is not comparable + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1075) + static member tcNoComparisonNeeded1(a0 : System.String, a1 : System.String, a2 : System.String) = (1178, GetStringFunc("tcNoComparisonNeeded1",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// The struct, record or union type '%s' is not structurally comparable because the type '%s' does not satisfy the 'comparison' constraint. Consider adding the 'NoComparison' attribute to the type '%s' to clarify that the type is not comparable + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1076) + static member tcNoComparisonNeeded2(a0 : System.String, a1 : System.String, a2 : System.String) = (1178, GetStringFunc("tcNoComparisonNeeded2",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// The struct, record or union type '%s' does not support structural equality because the type parameter %s does not satisfy the 'equality' constraint. Consider adding the 'NoEquality' attribute to the type '%s' to clarify that the type does not support structural equality + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1077) + static member tcNoEqualityNeeded1(a0 : System.String, a1 : System.String, a2 : System.String) = (1178, GetStringFunc("tcNoEqualityNeeded1",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// The struct, record or union type '%s' does not support structural equality because the type '%s' does not satisfy the 'equality' constraint. Consider adding the 'NoEquality' attribute to the type '%s' to clarify that the type does not support structural equality + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1078) + static member tcNoEqualityNeeded2(a0 : System.String, a1 : System.String, a2 : System.String) = (1178, GetStringFunc("tcNoEqualityNeeded2",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// The struct, record or union type '%s' has the 'StructuralEquality' attribute but the type parameter '%s' does not satisfy the 'equality' constraint. Consider adding the 'equality' constraint to the type parameter + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1079) + static member tcStructuralEqualityNotSatisfied1(a0 : System.String, a1 : System.String) = (1179, GetStringFunc("tcStructuralEqualityNotSatisfied1",",,,%s,,,%s,,,") a0 a1) + /// The struct, record or union type '%s' has the 'StructuralEquality' attribute but the component type '%s' does not satisfy the 'equality' constraint + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1080) + static member tcStructuralEqualityNotSatisfied2(a0 : System.String, a1 : System.String) = (1180, GetStringFunc("tcStructuralEqualityNotSatisfied2",",,,%s,,,%s,,,") a0 a1) + /// Each argument of the primary constructor for a struct must be given a type, for example 'type S(x1:int, x2: int) = ...'. These arguments determine the fields of the struct. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1081) + static member tcStructsMustDeclareTypesOfImplicitCtorArgsExplicitly() = (1181, GetStringFunc("tcStructsMustDeclareTypesOfImplicitCtorArgsExplicitly",",,,") ) + /// The value '%s' is unused + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1082) + static member chkUnusedValue(a0 : System.String) = (1182, GetStringFunc("chkUnusedValue",",,,%s,,,") a0) + /// The recursive object reference '%s' is unused. The presence of a recursive object reference adds runtime initialization checks to members in this and derived types. Consider removing this recursive object reference. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1083) + static member chkUnusedThisVariable(a0 : System.String) = (1183, GetStringFunc("chkUnusedThisVariable",",,,%s,,,") a0) + /// A getter property may have at most one argument group + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1084) + static member parsGetterAtMostOneArgument() = (1184, GetStringFunc("parsGetterAtMostOneArgument",",,,") ) + /// A setter property may have at most two argument groups + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1085) + static member parsSetterAtMostTwoArguments() = (1185, GetStringFunc("parsSetterAtMostTwoArguments",",,,") ) + /// Invalid property getter or setter + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1086) + static member parsInvalidProperty() = (1186, GetStringFunc("parsInvalidProperty",",,,") ) + /// An indexer property must be given at least one argument + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1087) + static member parsIndexerPropertyRequiresAtLeastOneArgument() = (1187, GetStringFunc("parsIndexerPropertyRequiresAtLeastOneArgument",",,,") ) + /// This operation accesses a mutable top-level value defined in another assembly in an unsupported way. The value cannot be accessed through its address. Consider copying the expression to a mutable local, e.g. 'let mutable x = ...', and if necessary assigning the value back after the completion of the operation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1088) + static member tastInvalidAddressOfMutableAcrossAssemblyBoundary() = (1188, GetStringFunc("tastInvalidAddressOfMutableAcrossAssemblyBoundary",",,,") ) + /// Type parameters must be placed directly adjacent to the type name, e.g. \"type C<'T>\", not type \"C <'T>\" + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1089) + static member parsNonAdjacentTypars() = (1189, GetStringFunc("parsNonAdjacentTypars",",,,") ) + /// Type arguments must be placed directly adjacent to the type name, e.g. \"C<'T>\", not \"C <'T>\" + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1090) + static member parsNonAdjacentTyargs() = (1190, GetStringFunc("parsNonAdjacentTyargs",",,,") ) + /// The use of the type syntax 'int C' and 'C ' is not permitted here. Consider adjusting this type to be written in the form 'C' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1091) + static member parsNonAtomicType() = (GetStringFunc("parsNonAtomicType",",,,") ) + /// The type %s did not contain the field '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1092) + static member tastUndefinedTyconItemField(a0 : System.String, a1 : System.String) = (1191, GetStringFunc("tastUndefinedTyconItemField",",,,%s,,,%s,,,") a0 a1) + /// The type %s did not contain the union case '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1093) + static member tastUndefinedTyconItemUnionCase(a0 : System.String, a1 : System.String) = (1192, GetStringFunc("tastUndefinedTyconItemUnionCase",",,,%s,,,%s,,,") a0 a1) + /// The module/namespace '%s' from compilation unit '%s' did not contain the module/namespace '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1094) + static member tastUndefinedItemRefModuleNamespace(a0 : System.String, a1 : System.String, a2 : System.String) = (1193, GetStringFunc("tastUndefinedItemRefModuleNamespace",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// The module/namespace '%s' from compilation unit '%s' did not contain the val '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1095) + static member tastUndefinedItemRefVal(a0 : System.String, a1 : System.String, a2 : System.String) = (1194, GetStringFunc("tastUndefinedItemRefVal",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// The module/namespace '%s' from compilation unit '%s' did not contain the namespace, module or type '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1096) + static member tastUndefinedItemRefModuleNamespaceType(a0 : System.String, a1 : System.String, a2 : System.String) = (1195, GetStringFunc("tastUndefinedItemRefModuleNamespaceType",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// The 'UseNullAsTrueValue' attribute flag may only be used with union types that have one nullary case and at least one non-nullary case + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1097) + static member tcInvalidUseNullAsTrueValue() = (1196, GetStringFunc("tcInvalidUseNullAsTrueValue",",,,") ) + /// The parameter '%s' was inferred to have byref type. Parameters of byref type must be given an explicit type annotation, e.g. 'x1: byref'. When used, a byref parameter is implicitly dereferenced. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1098) + static member tcParameterInferredByref(a0 : System.String) = (1197, GetStringFunc("tcParameterInferredByref",",,,%s,,,") a0) + /// The generic member '%s' has been used at a non-uniform instantiation prior to this program point. Consider reordering the members so this member occurs first. Alternatively, specify the full type of the member explicitly, including argument types, return type and any additional generic parameters and constraints. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1099) + static member tcNonUniformMemberUse(a0 : System.String) = (1198, GetStringFunc("tcNonUniformMemberUse",",,,%s,,,") a0) + /// The use of named arguments in union case expressions is reserved for future use. Arguments of the form 'a=b' should be parenthesized. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1100) + static member tcNamedArgumentsCannotBeUsedInUnionCaseConstructions() = (1199, GetStringFunc("tcNamedArgumentsCannotBeUsedInUnionCaseConstructions",",,,") ) + /// The attribute '%s' appears in both the implementation and the signature, but the attribute arguments differ. Only the attribute from the signature will be included in the compiled code. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1101) + static member tcAttribArgsDiffer(a0 : System.String) = (1200, GetStringFunc("tcAttribArgsDiffer",",,,%s,,,") a0) + /// Cannot call an abstract base member: '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1102) + static member tcCannotCallAbstractBaseMember(a0 : System.String) = (1201, GetStringFunc("tcCannotCallAbstractBaseMember",",,,%s,,,") a0) + /// Could not resolve the ambiguity in the use of a generic construct with an 'unmanaged' constraint at or near this position + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1103) + static member typrelCannotResolveAmbiguityInUnmanaged() = (1202, GetStringFunc("typrelCannotResolveAmbiguityInUnmanaged",",,,") ) + /// This construct is for ML compatibility. %s. You can disable this warning by using '--mlcompatibility' or '--nowarn:62'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1106) + static member mlCompatMessage(a0 : System.String) = (GetStringFunc("mlCompatMessage",",,,%s,,,") a0) + /// The type '%s' has been marked as having an Explicit layout, but the field '%s' has not been marked with the 'FieldOffset' attribute + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1108) + static member ilFieldDoesNotHaveValidOffsetForStructureLayout(a0 : System.String, a1 : System.String) = (1206, GetStringFunc("ilFieldDoesNotHaveValidOffsetForStructureLayout",",,,%s,,,%s,,,") a0 a1) + /// Interfaces inherited by other interfaces should be declared using 'inherit ...' instead of 'interface ...' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1109) + static member tcInterfacesShouldUseInheritNotInterface() = (1207, GetStringFunc("tcInterfacesShouldUseInheritNotInterface",",,,") ) + /// Invalid prefix operator + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1110) + static member parsInvalidPrefixOperator() = (1208, GetStringFunc("parsInvalidPrefixOperator",",,,") ) + /// Invalid operator definition. Prefix operator definitions must use a valid prefix operator name. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1111) + static member parsInvalidPrefixOperatorDefinition() = (1208, GetStringFunc("parsInvalidPrefixOperatorDefinition",",,,") ) + /// The file extensions '.ml' and '.mli' are for ML compatibility + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1112) + static member buildCompilingExtensionIsForML() = (GetStringFunc("buildCompilingExtensionIsForML",",,,") ) + /// Consider using a file with extension '.ml' or '.mli' instead + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1113) + static member lexIndentOffForML() = (GetStringFunc("lexIndentOffForML",",,,") ) + /// Active pattern '%s' is not a function + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1114) + static member activePatternIdentIsNotFunctionTyped(a0 : System.String) = (1209, GetStringFunc("activePatternIdentIsNotFunctionTyped",",,,%s,,,") a0) + /// Active pattern '%s' has a result type containing type variables that are not determined by the input. The common cause is a when a result case is not mentioned, e.g. 'let (|A|B|) (x:int) = A x'. This can be fixed with a type constraint, e.g. 'let (|A|B|) (x:int) : Choice = A x' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1115) + static member activePatternChoiceHasFreeTypars(a0 : System.String) = (1210, GetStringFunc("activePatternChoiceHasFreeTypars",",,,%s,,,") a0) + /// The FieldOffset attribute can only be placed on members of types marked with the StructLayout(LayoutKind.Explicit) + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1116) + static member ilFieldHasOffsetForSequentialLayout() = (1211, GetStringFunc("ilFieldHasOffsetForSequentialLayout",",,,") ) + /// Optional arguments must come at the end of the argument list, after any non-optional arguments + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1117) + static member tcOptionalArgsMustComeAfterNonOptionalArgs() = (1212, GetStringFunc("tcOptionalArgsMustComeAfterNonOptionalArgs",",,,") ) + /// Attribute 'System.Diagnostics.ConditionalAttribute' is only valid on methods or attribute classes + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1118) + static member tcConditionalAttributeUsage() = (1213, GetStringFunc("tcConditionalAttributeUsage",",,,") ) + /// Extension members cannot provide operator overloads. Consider defining the operator as part of the type definition instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1120) + static member tcMemberOperatorDefinitionInExtrinsic() = (1215, GetStringFunc("tcMemberOperatorDefinitionInExtrinsic",",,,") ) + /// The name of the MDB file must be .mdb. The --pdb option will be ignored. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1121) + static member ilwriteMDBFileNameCannotBeChangedWarning() = (1216, GetStringFunc("ilwriteMDBFileNameCannotBeChangedWarning",",,,") ) + /// MDB generation failed. Could not find compatible member %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1122) + static member ilwriteMDBMemberMissing(a0 : System.String) = (1217, GetStringFunc("ilwriteMDBMemberMissing",",,,%s,,,") a0) + /// Cannot generate MDB debug information. Failed to load the 'MonoSymbolWriter' type from the 'Mono.CompilerServices.SymbolWriter.dll' assembly. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1123) + static member ilwriteErrorCreatingMdb() = (1218, GetStringFunc("ilwriteErrorCreatingMdb",",,,") ) + /// The union case named '%s' conflicts with the generated type '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1124) + static member tcUnionCaseNameConflictsWithGeneratedType(a0 : System.String, a1 : System.String) = (1219, GetStringFunc("tcUnionCaseNameConflictsWithGeneratedType",",,,%s,,,%s,,,") a0 a1) + /// ReflectedDefinitionAttribute may not be applied to an instance member on a struct type, because the instance member takes an implicit 'this' byref parameter + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1125) + static member chkNoReflectedDefinitionOnStructMember() = (1220, GetStringFunc("chkNoReflectedDefinitionOnStructMember",",,,") ) + /// DLLImport bindings must be static members in a class or function definitions in a module + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1126) + static member tcDllImportNotAllowed() = (1221, GetStringFunc("tcDllImportNotAllowed",",,,") ) + /// When mscorlib.dll or FSharp.Core.dll is explicitly referenced the %s option must also be passed + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1127) + static member buildExplicitCoreLibRequiresNoFramework(a0 : System.String) = (1222, GetStringFunc("buildExplicitCoreLibRequiresNoFramework",",,,%s,,,") a0) + /// FSharp.Core.sigdata not found alongside FSharp.Core + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1128) + static member buildExpectedSigdataFile() = (1223, GetStringFunc("buildExpectedSigdataFile",",,,") ) + /// Did not expect to find optdata resource in FSharp.Core.dll + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1129) + static member buildDidNotExpectOptDataResource() = (1224, GetStringFunc("buildDidNotExpectOptDataResource",",,,") ) + /// File '%s' not found alongside FSharp.Core + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1130) + static member buildExpectedFileAlongSideFSharpCore(a0 : System.String) = (1225, GetStringFunc("buildExpectedFileAlongSideFSharpCore",",,,%s,,,") a0) + /// Did not expect to find sigdata resource in FSharp.Core.dll + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1131) + static member buildDidNotExpectSigdataResource() = (1226, GetStringFunc("buildDidNotExpectSigdataResource",",,,") ) + /// Filename '%s' contains invalid character '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1132) + static member buildUnexpectedFileNameCharacter(a0 : System.String, a1 : System.String) = (1227, GetStringFunc("buildUnexpectedFileNameCharacter",",,,%s,,,%s,,,") a0 a1) + /// 'use!' bindings must be of the form 'use! = ' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1133) + static member tcInvalidUseBangBinding() = (1228, GetStringFunc("tcInvalidUseBangBinding",",,,") ) + /// Inner generic functions are not permitted in quoted expressions. Consider adding some type constraints until this function is no longer generic. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1134) + static member crefNoInnerGenericsInQuotations() = (1230, GetStringFunc("crefNoInnerGenericsInQuotations",",,,") ) + /// The type '%s' is not a valid enumerator type , i.e. does not have a 'MoveNext()' method returning a bool, and a 'Current' property + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1135) + static member tcEnumTypeCannotBeEnumerated(a0 : System.String) = (1231, GetStringFunc("tcEnumTypeCannotBeEnumerated",",,,%s,,,") a0) + /// End of file in triple-quote string begun at or before here + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1136) + static member parsEofInTripleQuoteString() = (1232, GetStringFunc("parsEofInTripleQuoteString",",,,") ) + /// End of file in triple-quote string embedded in comment begun at or before here + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1137) + static member parsEofInTripleQuoteStringInComment() = (1233, GetStringFunc("parsEofInTripleQuoteStringInComment",",,,") ) + /// This type test or downcast will ignore the unit-of-measure '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1138) + static member tcTypeTestLosesMeasures(a0 : System.String) = (1240, GetStringFunc("tcTypeTestLosesMeasures",",,,%s,,,") a0) + /// Expected type argument or static argument + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1139) + static member parsMissingTypeArgs() = (1241, GetStringFunc("parsMissingTypeArgs",",,,") ) + /// Unmatched '<'. Expected closing '>' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1140) + static member parsMissingGreaterThan() = (1242, GetStringFunc("parsMissingGreaterThan",",,,") ) + /// Unexpected quotation operator '<@' in type definition. If you intend to pass a verbatim string as a static argument to a type provider, put a space between the '<' and '@' characters. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1141) + static member parsUnexpectedQuotationOperatorInTypeAliasDidYouMeanVerbatimString() = (1243, GetStringFunc("parsUnexpectedQuotationOperatorInTypeAliasDidYouMeanVerbatimString",",,,") ) + /// Attempted to parse this as an operator name, but failed + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1142) + static member parsErrorParsingAsOperatorName() = (1244, GetStringFunc("parsErrorParsingAsOperatorName",",,,") ) + /// Exiting - too many errors + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1144) + static member fscTooManyErrors() = (GetStringFunc("fscTooManyErrors",",,,") ) + /// The documentation file has no .xml suffix + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1145) + static member docfileNoXmlSuffix() = (2001, GetStringFunc("docfileNoXmlSuffix",",,,") ) + /// No implementation files specified + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1146) + static member fscNoImplementationFiles() = (2002, GetStringFunc("fscNoImplementationFiles",",,,") ) + /// An AssemblyVersionAttribute specified version '%s', but this value is invalid and has been ignored + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1147) + static member fscBadAssemblyVersion(a0 : System.String) = (2003, GetStringFunc("fscBadAssemblyVersion",",,,%s,,,") a0) + /// Conflicting options specified: 'win32manifest' and 'win32res'. Only one of these can be used. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1148) + static member fscTwoResourceManifests() = (2004, GetStringFunc("fscTwoResourceManifests",",,,") ) + /// The code in assembly '%s' makes uses of quotation literals. Static linking may not include components that make use of quotation literals. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1149) + static member fscQuotationLiteralsStaticLinking(a0 : System.String) = (2005, GetStringFunc("fscQuotationLiteralsStaticLinking",",,,%s,,,") a0) + /// Code in this assembly makes uses of quotation literals. Static linking may not include components that make use of quotation literals. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1150) + static member fscQuotationLiteralsStaticLinking0() = (2006, GetStringFunc("fscQuotationLiteralsStaticLinking0",",,,") ) + /// Static linking may not include a .EXE + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1151) + static member fscStaticLinkingNoEXE() = (2007, GetStringFunc("fscStaticLinkingNoEXE",",,,") ) + /// Static linking may not include a mixed managed/unmanaged DLL + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1152) + static member fscStaticLinkingNoMixedDLL() = (2008, GetStringFunc("fscStaticLinkingNoMixedDLL",",,,") ) + /// Ignoring mixed managed/unmanaged assembly '%s' during static linking + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1153) + static member fscIgnoringMixedWhenLinking(a0 : System.String) = (2009, GetStringFunc("fscIgnoringMixedWhenLinking",",,,%s,,,") a0) + /// Assembly '%s' was referenced transitively and the assembly could not be resolved automatically. Static linking will assume this DLL has no dependencies on the F# library or other statically linked DLLs. Consider adding an explicit reference to this DLL. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1154) + static member fscAssumeStaticLinkContainsNoDependencies(a0 : System.String) = (2011, GetStringFunc("fscAssumeStaticLinkContainsNoDependencies",",,,%s,,,") a0) + /// Assembly '%s' not found in dependency set of target binary. Statically linked roots should be specified using an assembly name, without a DLL or EXE extension. If this assembly was referenced explicitly then it is possible the assembly was not actually required by the generated binary, in which case it should not be statically linked. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1155) + static member fscAssemblyNotFoundInDependencySet(a0 : System.String) = (2012, GetStringFunc("fscAssemblyNotFoundInDependencySet",",,,%s,,,") a0) + /// The key file '%s' could not be opened + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1156) + static member fscKeyFileCouldNotBeOpened(a0 : System.String) = (2013, GetStringFunc("fscKeyFileCouldNotBeOpened",",,,%s,,,") a0) + /// A problem occurred writing the binary '%s': %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1157) + static member fscProblemWritingBinary(a0 : System.String, a1 : System.String) = (2014, GetStringFunc("fscProblemWritingBinary",",,,%s,,,%s,,,") a0 a1) + /// The 'AssemblyVersionAttribute' has been ignored because a version was given using a command line option + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1158) + static member fscAssemblyVersionAttributeIgnored() = (2015, GetStringFunc("fscAssemblyVersionAttributeIgnored",",,,") ) + /// Error emitting 'System.Reflection.AssemblyCultureAttribute' attribute -- 'Executables cannot be satellite assemblies, Culture should always be empty' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1159) + static member fscAssemblyCultureAttributeError() = (2016, GetStringFunc("fscAssemblyCultureAttributeError",",,,") ) + /// Option '--delaysign' overrides attribute 'System.Reflection.AssemblyDelaySignAttribute' given in a source file or added module + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1160) + static member fscDelaySignWarning() = (2017, GetStringFunc("fscDelaySignWarning",",,,") ) + /// Option '--keyfile' overrides attribute 'System.Reflection.AssemblyKeyFileAttribute' given in a source file or added module + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1161) + static member fscKeyFileWarning() = (2018, GetStringFunc("fscKeyFileWarning",",,,") ) + /// Option '--keycontainer' overrides attribute 'System.Reflection.AssemblyNameAttribute' given in a source file or added module + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1162) + static member fscKeyNameWarning() = (2019, GetStringFunc("fscKeyNameWarning",",,,") ) + /// The assembly '%s' is listed on the command line. Assemblies should be referenced using a command line flag such as '-r'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1163) + static member fscReferenceOnCommandLine(a0 : System.String) = (2020, GetStringFunc("fscReferenceOnCommandLine",",,,%s,,,") a0) + /// The resident compilation service was not used because a problem occured in communicating with the server. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1164) + static member fscRemotingError() = (2021, GetStringFunc("fscRemotingError",",,,") ) + /// Problem with filename '%s': Illegal characters in path. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1165) + static member pathIsInvalid(a0 : System.String) = (2022, GetStringFunc("pathIsInvalid",",,,%s,,,") a0) + /// Passing a .resx file (%s) as a source file to the compiler is deprecated. Use resgen.exe to transform the .resx file into a .resources file to pass as a --resource option. If you are using MSBuild, this can be done via an item in the .fsproj project file. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1166) + static member fscResxSourceFileDeprecated(a0 : System.String) = (2023, GetStringFunc("fscResxSourceFileDeprecated",",,,%s,,,") a0) + /// Character '%s' is not allowed in provided namespace name '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1170) + static member etIllegalCharactersInNamespaceName(a0 : System.String, a1 : System.String) = (3000, GetStringFunc("etIllegalCharactersInNamespaceName",",,,%s,,,%s,,,") a0 a1) + /// The provided type '%s' returned a member with a null or empty member name + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1171) + static member etNullOrEmptyMemberName(a0 : System.String) = (3001, GetStringFunc("etNullOrEmptyMemberName",",,,%s,,,") a0) + /// The provided type '%s' returned a null member + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1172) + static member etNullMember(a0 : System.String) = (3002, GetStringFunc("etNullMember",",,,%s,,,") a0) + /// The provided type '%s' member info '%s' has null declaring type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1173) + static member etNullMemberDeclaringType(a0 : System.String, a1 : System.String) = (3003, GetStringFunc("etNullMemberDeclaringType",",,,%s,,,%s,,,") a0 a1) + /// The provided type '%s' has member '%s' which has declaring type '%s'. Expected declaring type to be the same as provided type. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1174) + static member etNullMemberDeclaringTypeDifferentFromProvidedType(a0 : System.String, a1 : System.String, a2 : System.String) = (3004, GetStringFunc("etNullMemberDeclaringTypeDifferentFromProvidedType",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Referenced assembly '%s' has assembly level attribute '%s' but no public type provider classes were found + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1175) + static member etHostingAssemblyFoundWithoutHosts(a0 : System.String, a1 : System.String) = (3005, GetStringFunc("etHostingAssemblyFoundWithoutHosts",",,,%s,,,%s,,,") a0 a1) + /// Type '%s' from type provider '%s' has an empty namespace. Use 'null' for the global namespace. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1176) + static member etEmptyNamespaceOfTypeNotAllowed(a0 : System.String, a1 : System.String) = (3006, GetStringFunc("etEmptyNamespaceOfTypeNotAllowed",",,,%s,,,%s,,,") a0 a1) + /// Empty namespace found from the type provider '%s'. Use 'null' for the global namespace. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1177) + static member etEmptyNamespaceNotAllowed(a0 : System.String) = (3007, GetStringFunc("etEmptyNamespaceNotAllowed",",,,%s,,,") a0) + /// Provided type '%s' has 'IsGenericType' as true, but generic types are not supported. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1178) + static member etMustNotBeGeneric(a0 : System.String) = (3011, GetStringFunc("etMustNotBeGeneric",",,,%s,,,") a0) + /// Provided type '%s' has 'IsArray' as true, but array types are not supported. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1179) + static member etMustNotBeAnArray(a0 : System.String) = (3013, GetStringFunc("etMustNotBeAnArray",",,,%s,,,") a0) + /// Invalid member '%s' on provided type '%s'. Provided type members must be public, and not be generic, virtual, or abstract. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1180) + static member etMethodHasRequirements(a0 : System.String, a1 : System.String) = (3014, GetStringFunc("etMethodHasRequirements",",,,%s,,,%s,,,") a0 a1) + /// Invalid member '%s' on provided type '%s'. Only properties, methods and constructors are allowed + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1181) + static member etUnsupportedMemberKind(a0 : System.String, a1 : System.String) = (3015, GetStringFunc("etUnsupportedMemberKind",",,,%s,,,%s,,,") a0 a1) + /// Property '%s' on provided type '%s' has CanRead=true but there was no value from GetGetMethod() + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1182) + static member etPropertyCanReadButHasNoGetter(a0 : System.String, a1 : System.String) = (3016, GetStringFunc("etPropertyCanReadButHasNoGetter",",,,%s,,,%s,,,") a0 a1) + /// Property '%s' on provided type '%s' has CanRead=false but GetGetMethod() returned a method + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1183) + static member etPropertyHasGetterButNoCanRead(a0 : System.String, a1 : System.String) = (3017, GetStringFunc("etPropertyHasGetterButNoCanRead",",,,%s,,,%s,,,") a0 a1) + /// Property '%s' on provided type '%s' has CanWrite=true but there was no value from GetSetMethod() + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1184) + static member etPropertyCanWriteButHasNoSetter(a0 : System.String, a1 : System.String) = (3018, GetStringFunc("etPropertyCanWriteButHasNoSetter",",,,%s,,,%s,,,") a0 a1) + /// Property '%s' on provided type '%s' has CanWrite=false but GetSetMethod() returned a method + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1185) + static member etPropertyHasSetterButNoCanWrite(a0 : System.String, a1 : System.String) = (3019, GetStringFunc("etPropertyHasSetterButNoCanWrite",",,,%s,,,%s,,,") a0 a1) + /// One or more errors seen during provided type setup + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1186) + static member etOneOrMoreErrorsSeenDuringExtensionTypeSetting() = (3020, GetStringFunc("etOneOrMoreErrorsSeenDuringExtensionTypeSetting",",,,") ) + /// Unexpected exception from provided type '%s' member '%s': %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1187) + static member etUnexpectedExceptionFromProvidedTypeMember(a0 : System.String, a1 : System.String, a2 : System.String) = (3021, GetStringFunc("etUnexpectedExceptionFromProvidedTypeMember",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Unsupported constant type '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1188) + static member etUnsupportedConstantType(a0 : System.String) = (3022, GetStringFunc("etUnsupportedConstantType",",,,%s,,,") a0) + /// Unsupported expression '%s' from type provider. If you are the author of this type provider, consider adjusting it to provide a different provided expression. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1189) + static member etUnsupportedProvidedExpression(a0 : System.String) = (3025, GetStringFunc("etUnsupportedProvidedExpression",",,,%s,,,") a0) + /// Expected provided type named '%s' but provided type has 'Name' with value '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1190) + static member etProvidedTypeHasUnexpectedName(a0 : System.String, a1 : System.String) = (3028, GetStringFunc("etProvidedTypeHasUnexpectedName",",,,%s,,,%s,,,") a0 a1) + /// Event '%s' on provided type '%s' has no value from GetAddMethod() + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1191) + static member etEventNoAdd(a0 : System.String, a1 : System.String) = (3029, GetStringFunc("etEventNoAdd",",,,%s,,,%s,,,") a0 a1) + /// Event '%s' on provided type '%s' has no value from GetRemoveMethod() + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1192) + static member etEventNoRemove(a0 : System.String, a1 : System.String) = (3030, GetStringFunc("etEventNoRemove",",,,%s,,,%s,,,") a0 a1) + /// Assembly attribute '%s' refers to a designer assembly '%s' which cannot be loaded or doesn't exist. %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1193) + static member etProviderHasWrongDesignerAssembly(a0 : System.String, a1 : System.String, a2 : System.String) = (3031, GetStringFunc("etProviderHasWrongDesignerAssembly",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// The type provider does not have a valid constructor. A constructor taking either no arguments or one argument of type 'TypeProviderConfig' was expected. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1194) + static member etProviderDoesNotHaveValidConstructor() = (3032, GetStringFunc("etProviderDoesNotHaveValidConstructor",",,,") ) + /// The type provider '%s' reported an error: %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1195) + static member etProviderError(a0 : System.String, a1 : System.String) = (3033, GetStringFunc("etProviderError",",,,%s,,,%s,,,") a0 a1) + /// The type provider '%s' used an invalid parameter in the ParameterExpression: %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1196) + static member etIncorrectParameterExpression(a0 : System.String, a1 : System.String) = (3034, GetStringFunc("etIncorrectParameterExpression",",,,%s,,,%s,,,") a0 a1) + /// The type provider '%s' provided a method with a name '%s' and metadata token '%d', which is not reported among its methods of its declaring type '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1197) + static member etIncorrectProvidedMethod(a0 : System.String, a1 : System.String, a2 : System.Int32, a3 : System.String) = (3035, GetStringFunc("etIncorrectProvidedMethod",",,,%s,,,%s,,,%d,,,%s,,,") a0 a1 a2 a3) + /// The type provider '%s' provided a constructor which is not reported among the constructors of its declaring type '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1198) + static member etIncorrectProvidedConstructor(a0 : System.String, a1 : System.String) = (3036, GetStringFunc("etIncorrectProvidedConstructor",",,,%s,,,%s,,,") a0 a1) + /// A direct reference to the generated type '%s' is not permitted. Instead, use a type definition, e.g. 'type TypeAlias = '. This indicates that a type provider adds generated types to your assembly. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1199) + static member etDirectReferenceToGeneratedTypeNotAllowed(a0 : System.String) = (3039, GetStringFunc("etDirectReferenceToGeneratedTypeNotAllowed",",,,%s,,,") a0) + /// Expected provided type with path '%s' but provided type has path '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1200) + static member etProvidedTypeHasUnexpectedPath(a0 : System.String, a1 : System.String) = (3041, GetStringFunc("etProvidedTypeHasUnexpectedPath",",,,%s,,,%s,,,") a0 a1) + /// Unexpected 'null' return value from provided type '%s' member '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1201) + static member etUnexpectedNullFromProvidedTypeMember(a0 : System.String, a1 : System.String) = (3042, GetStringFunc("etUnexpectedNullFromProvidedTypeMember",",,,%s,,,%s,,,") a0 a1) + /// Unexpected exception from member '%s' of provided type '%s' member '%s': %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1202) + static member etUnexpectedExceptionFromProvidedMemberMember(a0 : System.String, a1 : System.String, a2 : System.String, a3 : System.String) = (3043, GetStringFunc("etUnexpectedExceptionFromProvidedMemberMember",",,,%s,,,%s,,,%s,,,%s,,,") a0 a1 a2 a3) + /// Nested provided types do not take static arguments or generic parameters + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1203) + static member etNestedProvidedTypesDoNotTakeStaticArgumentsOrGenericParameters() = (3044, GetStringFunc("etNestedProvidedTypesDoNotTakeStaticArgumentsOrGenericParameters",",,,") ) + /// Invalid static argument to provided type. Expected an argument of kind '%s'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1204) + static member etInvalidStaticArgument(a0 : System.String) = (3045, GetStringFunc("etInvalidStaticArgument",",,,%s,,,") a0) + /// An error occured applying the static arguments to a provided type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1205) + static member etErrorApplyingStaticArgumentsToType() = (3046, GetStringFunc("etErrorApplyingStaticArgumentsToType",",,,") ) + /// Unknown static argument kind '%s' when resolving a reference to a provided type '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1206) + static member etUnknownStaticArgumentKind(a0 : System.String, a1 : System.String) = (3047, GetStringFunc("etUnknownStaticArgumentKind",",,,%s,,,%s,,,") a0 a1) + /// invalid namespace for provided type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1207) + static member invalidNamespaceForProvidedType() = (GetStringFunc("invalidNamespaceForProvidedType",",,,") ) + /// invalid full name for provided type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1208) + static member invalidFullNameForProvidedType() = (GetStringFunc("invalidFullNameForProvidedType",",,,") ) + /// The type provider returned 'null', which is not a valid return value from '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1210) + static member etProviderReturnedNull(a0 : System.String) = (3051, GetStringFunc("etProviderReturnedNull",",,,%s,,,") a0) + /// The type provider constructor has thrown an exception: %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1211) + static member etTypeProviderConstructorException(a0 : System.String) = (3053, GetStringFunc("etTypeProviderConstructorException",",,,%s,,,") a0) + /// Type provider '%s' returned null from GetInvokerExpression. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1212) + static member etNullProvidedExpression(a0 : System.String) = (3056, GetStringFunc("etNullProvidedExpression",",,,%s,,,") a0) + /// The type provider '%s' returned an invalid type from 'ApplyStaticArguments'. A type with name '%s' was expected, but a type with name '%s' was returned. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1213) + static member etProvidedAppliedTypeHadWrongName(a0 : System.String, a1 : System.String, a2 : System.String) = (3057, GetStringFunc("etProvidedAppliedTypeHadWrongName",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// This type test or downcast will erase the provided type '%s' to the type '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1214) + static member tcTypeTestLossy(a0 : System.String, a1 : System.String) = (3060, GetStringFunc("tcTypeTestLossy",",,,%s,,,%s,,,") a0 a1) + /// This downcast will erase the provided type '%s' to the type '%s'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1215) + static member tcTypeCastErased(a0 : System.String, a1 : System.String) = (3061, GetStringFunc("tcTypeCastErased",",,,%s,,,%s,,,") a0 a1) + /// This type test with a provided type '%s' is not allowed because this provided type will be erased to '%s' at runtime. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1216) + static member tcTypeTestErased(a0 : System.String, a1 : System.String) = (3062, GetStringFunc("tcTypeTestErased",",,,%s,,,%s,,,") a0 a1) + /// Cannot inherit from erased provided type + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1217) + static member tcCannotInheritFromErasedType() = (3063, GetStringFunc("tcCannotInheritFromErasedType",",,,") ) + /// Assembly '%s' hase TypeProviderAssembly attribute with invalid value '%s'. The value should be a valid assembly name + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1218) + static member etInvalidTypeProviderAssemblyName(a0 : System.String, a1 : System.String) = (3065, GetStringFunc("etInvalidTypeProviderAssemblyName",",,,%s,,,%s,,,") a0 a1) + /// Invalid member name. Members may not have name '.ctor' or '.cctor' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1219) + static member tcInvalidMemberNameCtor() = (3066, GetStringFunc("tcInvalidMemberNameCtor",",,,") ) + /// The function or member '%s' is used in a way that requires further type annotations at its definition to ensure consistency of inferred types. The inferred signature is '%s'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1220) + static member tcInferredGenericTypeGivesRiseToInconsistency(a0 : System.String, a1 : System.String) = (3068, GetStringFunc("tcInferredGenericTypeGivesRiseToInconsistency",",,,%s,,,%s,,,") a0 a1) + /// The number of type arguments did not match: '%d' given, '%d' expected. This may be related to a previously reported error. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1221) + static member tcInvalidTypeArgumentCount(a0 : System.Int32, a1 : System.Int32) = (3069, GetStringFunc("tcInvalidTypeArgumentCount",",,,%d,,,%d,,,") a0 a1) + /// Cannot override inherited member '%s' because it is sealed + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1222) + static member tcCannotOverrideSealedMethod(a0 : System.String) = (3070, GetStringFunc("tcCannotOverrideSealedMethod",",,,%s,,,") a0) + /// The type provider '%s' reported an error in the context of provided type '%s', member '%s'. The error: %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1223) + static member etProviderErrorWithContext(a0 : System.String, a1 : System.String, a2 : System.String, a3 : System.String) = (3071, GetStringFunc("etProviderErrorWithContext",",,,%s,,,%s,,,%s,,,%s,,,") a0 a1 a2 a3) + /// An exception occurred when accessing the '%s' of a provided type: %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1224) + static member etProvidedTypeWithNameException(a0 : System.String, a1 : System.String) = (3072, GetStringFunc("etProvidedTypeWithNameException",",,,%s,,,%s,,,") a0 a1) + /// The '%s' of a provided type was null or empty. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1225) + static member etProvidedTypeWithNullOrEmptyName(a0 : System.String) = (3073, GetStringFunc("etProvidedTypeWithNullOrEmptyName",",,,%s,,,") a0) + /// Character '%s' is not allowed in provided type name '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1226) + static member etIllegalCharactersInTypeName(a0 : System.String, a1 : System.String) = (3075, GetStringFunc("etIllegalCharactersInTypeName",",,,%s,,,%s,,,") a0 a1) + /// In queries, '%s' must use a simple pattern + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1227) + static member tcJoinMustUseSimplePattern(a0 : System.String) = (3077, GetStringFunc("tcJoinMustUseSimplePattern",",,,%s,,,") a0) + /// A custom query operation for '%s' is required but not specified + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1228) + static member tcMissingCustomOperation(a0 : System.String) = (3078, GetStringFunc("tcMissingCustomOperation",",,,%s,,,") a0) + /// Named static arguments must come after all unnamed static arguments + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1229) + static member etBadUnnamedStaticArgs() = (3080, GetStringFunc("etBadUnnamedStaticArgs",",,,") ) + /// The static parameter '%s' of the provided type '%s' requires a value. Static parameters to type providers may be optionally specified using named arguments, e.g. '%s<%s=...>'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1230) + static member etStaticParameterRequiresAValue(a0 : System.String, a1 : System.String, a2 : System.String, a3 : System.String) = (3081, GetStringFunc("etStaticParameterRequiresAValue",",,,%s,,,%s,,,%s,,,%s,,,") a0 a1 a2 a3) + /// No static parameter exists with name '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1231) + static member etNoStaticParameterWithName(a0 : System.String) = (3082, GetStringFunc("etNoStaticParameterWithName",",,,%s,,,") a0) + /// The static parameter '%s' has already been given a value + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1232) + static member etStaticParameterAlreadyHasValue(a0 : System.String) = (3083, GetStringFunc("etStaticParameterAlreadyHasValue",",,,%s,,,") a0) + /// Multiple static parameters exist with name '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1233) + static member etMultipleStaticParameterWithName(a0 : System.String) = (3084, GetStringFunc("etMultipleStaticParameterWithName",",,,%s,,,") a0) + /// A custom operation may not be used in conjunction with a non-value or recursive 'let' binding in another part of this computation expression + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1234) + static member tcCustomOperationMayNotBeUsedInConjunctionWithNonSimpleLetBindings() = (3085, GetStringFunc("tcCustomOperationMayNotBeUsedInConjunctionWithNonSimpleLetBindings",",,,") ) + /// A custom operation may not be used in conjunction with 'use', 'try/with', 'try/finally', 'if/then/else' or 'match' operators within this computation expression + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1235) + static member tcCustomOperationMayNotBeUsedHere() = (3086, GetStringFunc("tcCustomOperationMayNotBeUsedHere",",,,") ) + /// The custom operation '%s' refers to a method which is overloaded. The implementations of custom operations may not be overloaded. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1236) + static member tcCustomOperationMayNotBeOverloaded(a0 : System.String) = (3087, GetStringFunc("tcCustomOperationMayNotBeOverloaded",",,,%s,,,") a0) + /// A try/finally expression may not be used within a computation expression with uses of custom operators. Consider using a sequence expression instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1237) + static member tcTryFinallyMayNotBeUsedWithCustomOperators() = (3088, GetStringFunc("tcTryFinallyMayNotBeUsedWithCustomOperators",",,,") ) + /// A try/with expression may not be used within a within a computation expression with uses of custom operators. Consider using a sequence expression instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1238) + static member tcTryWithMayNotBeUsedWithCustomOperators() = (3089, GetStringFunc("tcTryWithMayNotBeUsedWithCustomOperators",",,,") ) + /// An if/then/else expression may not be used within a computation expression with uses of custom operators. Consider using either an if/then expression, or use a sequence expression instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1239) + static member tcIfThenElseMayNotBeUsedWithCustomOperators() = (3090, GetStringFunc("tcIfThenElseMayNotBeUsedWithCustomOperators",",,,") ) + /// Invalid argument to 'methodhandleof' during codegen + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1240) + static member ilxgenUnexpectedArgumentToMethodHandleOfDuringCodegen() = (3091, GetStringFunc("ilxgenUnexpectedArgumentToMethodHandleOfDuringCodegen",",,,") ) + /// A reference to a provided type was missing a value for the static parameter '%s'. You may need to recompile one or more referenced assemblies. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1241) + static member etProvidedTypeReferenceMissingArgument(a0 : System.String) = (3092, GetStringFunc("etProvidedTypeReferenceMissingArgument",",,,%s,,,") a0) + /// A reference to a provided type had an invalid value '%s' for a static parameter. You may need to recompile one or more referenced assemblies. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1242) + static member etProvidedTypeReferenceInvalidText(a0 : System.String) = (3093, GetStringFunc("etProvidedTypeReferenceInvalidText",",,,%s,,,") a0) + /// '%s' is not used correctly. This is a custom operation in this query or computation expression. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1243) + static member tcCustomOperationNotUsedCorrectly(a0 : System.String) = (3095, GetStringFunc("tcCustomOperationNotUsedCorrectly",",,,%s,,,") a0) + /// '%s' is not used correctly. Usage: %s. This is a custom operation in this query or computation expression. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1244) + static member tcCustomOperationNotUsedCorrectly2(a0 : System.String, a1 : System.String) = (3095, GetStringFunc("tcCustomOperationNotUsedCorrectly2",",,,%s,,,%s,,,") a0 a1) + /// %s var in collection %s (outerKey = innerKey). Note that parentheses are required after '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1245) + static member customOperationTextLikeJoin(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("customOperationTextLikeJoin",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// %s var in collection %s (outerKey = innerKey) into group. Note that parentheses are required after '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1246) + static member customOperationTextLikeGroupJoin(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("customOperationTextLikeGroupJoin",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// %s collection into var + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1247) + static member customOperationTextLikeZip(a0 : System.String) = (GetStringFunc("customOperationTextLikeZip",",,,%s,,,") a0) + /// '%s' must be followed by a variable name. Usage: %s. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1248) + static member tcBinaryOperatorRequiresVariable(a0 : System.String, a1 : System.String) = (3096, GetStringFunc("tcBinaryOperatorRequiresVariable",",,,%s,,,%s,,,") a0 a1) + /// Incorrect syntax for '%s'. Usage: %s. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1249) + static member tcOperatorIncorrectSyntax(a0 : System.String, a1 : System.String) = (3097, GetStringFunc("tcOperatorIncorrectSyntax",",,,%s,,,%s,,,") a0 a1) + /// '%s' must come after a 'for' selection clause and be followed by the rest of the query. Syntax: ... %s ... + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1250) + static member tcBinaryOperatorRequiresBody(a0 : System.String, a1 : System.String) = (3098, GetStringFunc("tcBinaryOperatorRequiresBody",",,,%s,,,%s,,,") a0 a1) + /// '%s' is used with an incorrect number of arguments. This is a custom operation in this query or computation expression. Expected %d argument(s), but given %d. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1251) + static member tcCustomOperationHasIncorrectArgCount(a0 : System.String, a1 : System.Int32, a2 : System.Int32) = (3099, GetStringFunc("tcCustomOperationHasIncorrectArgCount",",,,%s,,,%d,,,%d,,,") a0 a1 a2) + /// Expected an expression after this point + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1252) + static member parsExpectedExpressionAfterToken() = (3100, GetStringFunc("parsExpectedExpressionAfterToken",",,,") ) + /// Expected a type after this point + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1253) + static member parsExpectedTypeAfterToken() = (3101, GetStringFunc("parsExpectedTypeAfterToken",",,,") ) + /// Unmatched '[<'. Expected closing '>]' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1254) + static member parsUnmatchedLBrackLess() = (3102, GetStringFunc("parsUnmatchedLBrackLess",",,,") ) + /// Unexpected end of input in 'match' expression. Expected 'match with | -> | -> ...'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1255) + static member parsUnexpectedEndOfFileMatch() = (3103, GetStringFunc("parsUnexpectedEndOfFileMatch",",,,") ) + /// Unexpected end of input in 'try' expression. Expected 'try with ' or 'try finally '. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1256) + static member parsUnexpectedEndOfFileTry() = (3104, GetStringFunc("parsUnexpectedEndOfFileTry",",,,") ) + /// Unexpected end of input in 'while' expression. Expected 'while do '. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1257) + static member parsUnexpectedEndOfFileWhile() = (3105, GetStringFunc("parsUnexpectedEndOfFileWhile",",,,") ) + /// Unexpected end of input in 'for' expression. Expected 'for in do '. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1258) + static member parsUnexpectedEndOfFileFor() = (3106, GetStringFunc("parsUnexpectedEndOfFileFor",",,,") ) + /// Unexpected end of input in 'match' or 'try' expression + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1259) + static member parsUnexpectedEndOfFileWith() = (3107, GetStringFunc("parsUnexpectedEndOfFileWith",",,,") ) + /// Unexpected end of input in 'then' branch of conditional expression. Expected 'if then ' or 'if then else '. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1260) + static member parsUnexpectedEndOfFileThen() = (3108, GetStringFunc("parsUnexpectedEndOfFileThen",",,,") ) + /// Unexpected end of input in 'else' branch of conditional expression. Expected 'if then ' or 'if then else '. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1261) + static member parsUnexpectedEndOfFileElse() = (3109, GetStringFunc("parsUnexpectedEndOfFileElse",",,,") ) + /// Unexpected end of input in body of lambda expression. Expected 'fun ... -> '. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1262) + static member parsUnexpectedEndOfFileFunBody() = (3110, GetStringFunc("parsUnexpectedEndOfFileFunBody",",,,") ) + /// Unexpected end of input in type arguments + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1263) + static member parsUnexpectedEndOfFileTypeArgs() = (3111, GetStringFunc("parsUnexpectedEndOfFileTypeArgs",",,,") ) + /// Unexpected end of input in type signature + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1264) + static member parsUnexpectedEndOfFileTypeSignature() = (3112, GetStringFunc("parsUnexpectedEndOfFileTypeSignature",",,,") ) + /// Unexpected end of input in type definition + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1265) + static member parsUnexpectedEndOfFileTypeDefinition() = (3113, GetStringFunc("parsUnexpectedEndOfFileTypeDefinition",",,,") ) + /// Unexpected end of input in object members + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1266) + static member parsUnexpectedEndOfFileObjectMembers() = (3114, GetStringFunc("parsUnexpectedEndOfFileObjectMembers",",,,") ) + /// Unexpected end of input in value, function or member definition + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1267) + static member parsUnexpectedEndOfFileDefinition() = (3115, GetStringFunc("parsUnexpectedEndOfFileDefinition",",,,") ) + /// Unexpected end of input in expression + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1268) + static member parsUnexpectedEndOfFileExpression() = (3116, GetStringFunc("parsUnexpectedEndOfFileExpression",",,,") ) + /// Unexpected end of type. Expected a name after this point. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1269) + static member parsExpectedNameAfterToken() = (3117, GetStringFunc("parsExpectedNameAfterToken",",,,") ) + /// Incomplete value or function definition. If this is in an expression, the body of the expression must be indented to the same column as the 'let' keyword. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1270) + static member parsUnmatchedLet() = (3118, GetStringFunc("parsUnmatchedLet",",,,") ) + /// Incomplete value definition. If this is in an expression, the body of the expression must be indented to the same column as the 'let!' keyword. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1271) + static member parsUnmatchedLetBang() = (3119, GetStringFunc("parsUnmatchedLetBang",",,,") ) + /// Incomplete value definition. If this is in an expression, the body of the expression must be indented to the same column as the 'use!' keyword. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1272) + static member parsUnmatchedUseBang() = (3120, GetStringFunc("parsUnmatchedUseBang",",,,") ) + /// Incomplete value definition. If this is in an expression, the body of the expression must be indented to the same column as the 'use' keyword. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1273) + static member parsUnmatchedUse() = (3121, GetStringFunc("parsUnmatchedUse",",,,") ) + /// Missing 'do' in 'while' expression. Expected 'while do '. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1274) + static member parsWhileDoExpected() = (3122, GetStringFunc("parsWhileDoExpected",",,,") ) + /// Missing 'do' in 'for' expression. Expected 'for in do '. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1275) + static member parsForDoExpected() = (3123, GetStringFunc("parsForDoExpected",",,,") ) + /// Invalid join relation in '%s'. Expected 'expr expr', where is =, =?, ?= or ?=?. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1276) + static member tcInvalidRelationInJoin(a0 : System.String) = (3125, GetStringFunc("tcInvalidRelationInJoin",",,,%s,,,") a0) + /// Calls + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1277) + static member typeInfoCallsWord() = (GetStringFunc("typeInfoCallsWord",",,,") ) + /// Invalid number of generic arguments to type '%s' in provided type. Expected '%d' arguments, given '%d'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1278) + static member impInvalidNumberOfGenericArguments(a0 : System.String, a1 : System.Int32, a2 : System.Int32) = (3126, GetStringFunc("impInvalidNumberOfGenericArguments",",,,%s,,,%d,,,%d,,,") a0 a1 a2) + /// Invalid value '%s' for unit-of-measure parameter '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1279) + static member impInvalidMeasureArgument1(a0 : System.String, a1 : System.String) = (3127, GetStringFunc("impInvalidMeasureArgument1",",,,%s,,,%s,,,") a0 a1) + /// Invalid value unit-of-measure parameter '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1280) + static member impInvalidMeasureArgument2(a0 : System.String) = (3127, GetStringFunc("impInvalidMeasureArgument2",",,,%s,,,") a0) + /// Property '%s' on provided type '%s' is neither readable nor writable as it has CanRead=false and CanWrite=false + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1281) + static member etPropertyNeedsCanWriteOrCanRead(a0 : System.String, a1 : System.String) = (3128, GetStringFunc("etPropertyNeedsCanWriteOrCanRead",",,,%s,,,%s,,,") a0 a1) + /// A use of 'into' must be followed by the remainder of the computation + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1282) + static member tcIntoNeedsRestOfQuery() = (3129, GetStringFunc("tcIntoNeedsRestOfQuery",",,,") ) + /// The operator '%s' does not accept the use of 'into' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1283) + static member tcOperatorDoesntAcceptInto(a0 : System.String) = (3130, GetStringFunc("tcOperatorDoesntAcceptInto",",,,%s,,,") a0) + /// The definition of the custom operator '%s' does not use a valid combination of attribute flags + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1284) + static member tcCustomOperationInvalid(a0 : System.String) = (3131, GetStringFunc("tcCustomOperationInvalid",",,,%s,,,") a0) + /// This type definition may not have the 'CLIMutable' attribute. Only record types may have this attribute. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1285) + static member tcThisTypeMayNotHaveACLIMutableAttribute() = (3132, GetStringFunc("tcThisTypeMayNotHaveACLIMutableAttribute",",,,") ) + /// 'member val' definitions are only permitted in types with a primary constructor. Consider adding arguments to your type definition, e.g. 'type X(args) = ...'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1286) + static member tcAutoPropertyRequiresImplicitConstructionSequence() = (3133, GetStringFunc("tcAutoPropertyRequiresImplicitConstructionSequence",",,,") ) + /// Property definitions may not be declared mutable. To indicate that this property can be set, use 'member val PropertyName = expr with get,set'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1287) + static member parsMutableOnAutoPropertyShouldBeGetSet() = (3134, GetStringFunc("parsMutableOnAutoPropertyShouldBeGetSet",",,,") ) + /// To indicate that this property can be set, use 'member val PropertyName = expr with get,set'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1288) + static member parsMutableOnAutoPropertyShouldBeGetSetNotJustSet() = (3135, GetStringFunc("parsMutableOnAutoPropertyShouldBeGetSetNotJustSet",",,,") ) + /// Type '%s' is illegal because in byref, T cannot contain byref types. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1289) + static member chkNoByrefsOfByrefs(a0 : System.String) = (3136, GetStringFunc("chkNoByrefsOfByrefs",",,,%s,,,") a0) + /// Type provider assembly '%s' is not trusted and will not be loaded for security reasons. This may cause subsequent build errors. See the 'F# Tools' section of Visual Studio options for more information. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1290) + static member etTypeProviderNotApproved(a0 : System.String) = (3137, GetStringFunc("etTypeProviderNotApproved",",,,%s,,,") a0) + /// F# supports a maximum array rank of 4 + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1291) + static member tastopsMaxArrayFour() = (3138, GetStringFunc("tastopsMaxArrayFour",",,,") ) + /// In queries, use the form 'for x in n .. m do ...' for ranging over integers + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1292) + static member tcNoIntegerForLoopInQuery() = (3139, GetStringFunc("tcNoIntegerForLoopInQuery",",,,") ) + /// 'while' expressions may not be used in queries + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1293) + static member tcNoWhileInQuery() = (3140, GetStringFunc("tcNoWhileInQuery",",,,") ) + /// 'try/finally' expressions may not be used in queries + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1294) + static member tcNoTryFinallyInQuery() = (3141, GetStringFunc("tcNoTryFinallyInQuery",",,,") ) + /// 'use' expressions may not be used in queries + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1295) + static member tcUseMayNotBeUsedInQueries() = (3142, GetStringFunc("tcUseMayNotBeUsedInQueries",",,,") ) + /// 'let!', 'use!' and 'do!' expressions may not be used in queries + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1296) + static member tcBindMayNotBeUsedInQueries() = (3143, GetStringFunc("tcBindMayNotBeUsedInQueries",",,,") ) + /// 'return' and 'return!' may not be used in queries + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1297) + static member tcReturnMayNotBeUsedInQueries() = (3144, GetStringFunc("tcReturnMayNotBeUsedInQueries",",,,") ) + /// This is not a known query operator. Query operators are identifiers such as 'select', 'where', 'sortBy', 'thenBy', 'groupBy', 'groupValBy', 'join', 'groupJoin', 'sumBy' and 'averageBy', defined using corresponding methods on the 'QueryBuilder' type. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1298) + static member tcUnrecognizedQueryOperator() = (3145, GetStringFunc("tcUnrecognizedQueryOperator",",,,") ) + /// 'try/with' expressions may not be used in queries + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1299) + static member tcTryWithMayNotBeUsedInQueries() = (3146, GetStringFunc("tcTryWithMayNotBeUsedInQueries",",,,") ) + /// This 'let' definition may not be used in a query. Only simple value definitions may be used in queries. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1300) + static member tcNonSimpleLetBindingInQuery() = (3147, GetStringFunc("tcNonSimpleLetBindingInQuery",",,,") ) + /// Too many static parameters. Expected at most %d parameters, but got %d unnamed and %d named parameters. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1301) + static member etTooManyStaticParameters(a0 : System.Int32, a1 : System.Int32, a2 : System.Int32) = (3148, GetStringFunc("etTooManyStaticParameters",",,,%d,,,%d,,,%d,,,") a0 a1 a2) + /// Invalid provided literal value '%s' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1302) + static member infosInvalidProvidedLiteralValue(a0 : System.String) = (3149, GetStringFunc("infosInvalidProvidedLiteralValue",",,,%s,,,") a0) + /// The 'anycpu32bitpreferred' platform can only be used with EXE targets. You must use 'anycpu' instead. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1303) + static member invalidPlatformTarget() = (3150, GetStringFunc("invalidPlatformTarget",",,,") ) + /// This member, function or value declaration may not be declared 'inline' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1304) + static member tcThisValueMayNotBeInlined() = (3151, GetStringFunc("tcThisValueMayNotBeInlined",",,,") ) + /// The provider '%s' returned a non-generated type '%s' in the context of a set of generated types. Consider adjusting the type provider to only return generated types. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1305) + static member etErasedTypeUsedInGeneration(a0 : System.String, a1 : System.String) = (3152, GetStringFunc("etErasedTypeUsedInGeneration",",,,%s,,,%s,,,") a0 a1) + /// Arguments to query operators may require parentheses, e.g. 'where (x > y)' or 'groupBy (x.Length / 10)' + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1306) + static member tcUnrecognizedQueryBinaryOperator() = (3153, GetStringFunc("tcUnrecognizedQueryBinaryOperator",",,,") ) + /// The 'anycpu32bitpreferred' platform flag may only be used with .NET Framework versions 4.5 and greater. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1307) + static member invalidPlatformTargetForOldFramework() = (3154, GetStringFunc("invalidPlatformTargetForOldFramework",",,,") ) + /// A quotation may not involve an assignment to or taking the address of a captured local variable + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1308) + static member crefNoSetOfHole() = (3155, GetStringFunc("crefNoSetOfHole",",,,") ) + /// + 1 overload + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1309) + static member nicePrintOtherOverloads1() = (GetStringFunc("nicePrintOtherOverloads1",",,,") ) + /// + %d overloads + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1310) + static member nicePrintOtherOverloadsN(a0 : System.Int32) = (GetStringFunc("nicePrintOtherOverloadsN",",,,%d,,,") a0) + /// Erased to + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1311) + static member erasedTo() = (GetStringFunc("erasedTo",",,,") ) + /// Unexpected token '%s' or incomplete expression + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1312) + static member parsUnfinishedExpression(a0 : System.String) = (3156, GetStringFunc("parsUnfinishedExpression",",,,%s,,,") a0) + /// Quotations cannot contain byref types + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1313) + static member crefQuotationsCantContainByrefTypes() = (3157, GetStringFunc("crefQuotationsCantContainByrefTypes",",,,") ) + /// Cannot find code target for this attribute, possibly because the code after the attribute is incomplete. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1314) + static member parsAttributeOnIncompleteCode() = (3158, GetStringFunc("parsAttributeOnIncompleteCode",",,,") ) + /// Type name cannot be empty. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1315) + static member parsTypeNameCannotBeEmpty() = (3159, GetStringFunc("parsTypeNameCannotBeEmpty",",,,") ) + /// Problem reading assembly '%s': %s + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1316) + static member buildProblemReadingAssembly(a0 : System.String, a1 : System.String) = (3160, GetStringFunc("buildProblemReadingAssembly",",,,%s,,,%s,,,") a0 a1) + /// Invalid provided field. Provided fields of erased provided types must be literals. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1317) + static member tcTPFieldMustBeLiteral() = (3161, GetStringFunc("tcTPFieldMustBeLiteral",",,,") ) + /// (loading description...) + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1318) + static member loadingDescription() = (GetStringFunc("loadingDescription",",,,") ) + /// (description unavailable...) + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1319) + static member descriptionUnavailable() = (GetStringFunc("descriptionUnavailable",",,,") ) + /// A type variable has been constrained by multiple different class types. A type variable may only have one class constraint. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1320) + static member chkTyparMultipleClassConstraints() = (3162, GetStringFunc("chkTyparMultipleClassConstraints",",,,") ) + /// 'match' expressions may not be used in queries + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1321) + static member tcMatchMayNotBeUsedWithQuery() = (3163, GetStringFunc("tcMatchMayNotBeUsedWithQuery",",,,") ) + /// Infix operator member '%s' has %d initial argument(s). Expected a tuple of 3 arguments + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1322) + static member memberOperatorDefinitionWithNonTripleArgument(a0 : System.String, a1 : System.Int32) = (3164, GetStringFunc("memberOperatorDefinitionWithNonTripleArgument",",,,%s,,,%d,,,") a0 a1) + /// The operator '%s' cannot be resolved. Consider opening the module 'Microsoft.FSharp.Linq.NullableOperators'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1323) + static member cannotResolveNullableOperators(a0 : System.String) = (3165, GetStringFunc("cannotResolveNullableOperators",",,,%s,,,") a0) + /// '%s' must be followed by 'in'. Usage: %s. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1324) + static member tcOperatorRequiresIn(a0 : System.String, a1 : System.String) = (3167, GetStringFunc("tcOperatorRequiresIn",",,,%s,,,%s,,,") a0 a1) + /// Neither 'member val' nor 'override val' definitions are permitted in object expressions. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1325) + static member parsIllegalMemberVarInObjectImplementation() = (3168, GetStringFunc("parsIllegalMemberVarInObjectImplementation",",,,") ) + /// Copy-and-update record expressions must include at least one field. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1326) + static member tcEmptyCopyAndUpdateRecordInvalid() = (3169, GetStringFunc("tcEmptyCopyAndUpdateRecordInvalid",",,,") ) + /// '_' cannot be used as field name + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1327) + static member parsUnderscoreInvalidFieldName() = (3170, GetStringFunc("parsUnderscoreInvalidFieldName",",,,") ) + /// The provided types generated by this use of a type provider may not be used from other F# assemblies and should be marked internal or private. Consider using 'type internal TypeName = ...' or 'type private TypeName = ...'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1328) + static member tcGeneratedTypesShouldBeInternalOrPrivate() = (3171, GetStringFunc("tcGeneratedTypesShouldBeInternalOrPrivate",",,,") ) + /// A property's getter and setter must have the same type. Property '%s' has getter of type '%s' but setter of type '%s'. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1329) + static member chkGetterAndSetterHaveSamePropertyType(a0 : System.String, a1 : System.String, a2 : System.String) = (3172, GetStringFunc("chkGetterAndSetterHaveSamePropertyType",",,,%s,,,%s,,,%s,,,") a0 a1 a2) + /// Array method '%s' is supplied by the runtime and cannot be directly used in code. For operations with array elements consider using family of GetArray/SetArray functions from LanguagePrimitives.IntrinsicFunctions module. + /// (Originally from C:\code\clrish\src\fsharp\FSComp.txt:1330) + static member tcRuntimeSuppliedMethodCannotBeUsedInUserCode(a0 : System.String) = (3173, GetStringFunc("tcRuntimeSuppliedMethodCannotBeUsedInUserCode",",,,%s,,,") a0) + + /// Call this method once to validate that all known resources are valid; throws if not + static member RunStartupValidation() = + ignore(GetString("undefinedNameNamespace")) + ignore(GetString("undefinedNameNamespaceOrModule")) + ignore(GetString("undefinedNameFieldConstructorOrMember")) + ignore(GetString("undefinedNameValueConstructorNamespaceOrType")) + ignore(GetString("undefinedNameValueOfConstructor")) + ignore(GetString("undefinedNameValueNamespaceTypeOrModule")) + ignore(GetString("undefinedNameConstructorModuleOrNamespace")) + ignore(GetString("undefinedNameType")) + ignore(GetString("undefinedNameRecordLabelOrNamespace")) + ignore(GetString("undefinedNameRecordLabel")) + ignore(GetString("undefinedNameTypeParameter")) + ignore(GetString("undefinedNamePatternDiscriminator")) + ignore(GetString("buildUnexpectedTypeArgs")) + ignore(GetString("buildInvalidWarningNumber")) + ignore(GetString("buildInvalidVersionString")) + ignore(GetString("buildInvalidVersionFile")) + ignore(GetString("buildProductName")) + ignore(GetString("buildProblemWithFilename")) + ignore(GetString("buildNoInputsSpecified")) + ignore(GetString("buildMismatchOutputExtension")) + ignore(GetString("buildPdbRequiresDebug")) + ignore(GetString("buildInvalidSearchDirectory")) + ignore(GetString("buildSearchDirectoryNotFound")) + ignore(GetString("buildInvalidFilename")) + ignore(GetString("buildInvalidAssemblyName")) + ignore(GetString("buildInvalidPrivacy")) + ignore(GetString("buildMultipleReferencesNotAllowed")) + ignore(GetString("buildRequiresCLI2")) + ignore(GetString("buildCouldNotReadVersionInfoFromMscorlib")) + ignore(GetString("buildMscorlibAndReferencedAssemblyMismatch")) + ignore(GetString("buildCannotReadAssembly")) + ignore(GetString("buildMscorLibAndFSharpCoreMismatch")) + ignore(GetString("buildAssemblyResolutionFailed")) + ignore(GetString("buildImplicitModuleIsNotLegalIdentifier")) + ignore(GetString("buildMultiFileRequiresNamespaceOrModule")) + ignore(GetString("buildMultipleToplevelModules")) + ignore(GetString("buildUnknownFileSuffix")) + ignore(GetString("buildOptionRequiresParameter")) + ignore(GetString("buildCouldNotFindSourceFile")) + ignore(GetString("buildInvalidSourceFileExtension")) + ignore(GetString("buildCouldNotResolveAssembly")) + ignore(GetString("buildCouldNotResolveAssemblyRequiredByFile")) + ignore(GetString("buildErrorOpeningBinaryFile")) + ignore(GetString("buildDifferentVersionMustRecompile")) + ignore(GetString("buildInvalidHashIDirective")) + ignore(GetString("buildInvalidHashrDirective")) + ignore(GetString("buildInvalidHashloadDirective")) + ignore(GetString("buildInvalidHashtimeDirective")) + ignore(GetString("buildDirectivesInModulesAreIgnored")) + ignore(GetString("buildSignatureAlreadySpecified")) + ignore(GetString("buildImplementationAlreadyGivenDetail")) + ignore(GetString("buildImplementationAlreadyGiven")) + ignore(GetString("buildSignatureWithoutImplementation")) + ignore(GetString("buildArgInvalidInt")) + ignore(GetString("buildArgInvalidFloat")) + ignore(GetString("buildUnrecognizedOption")) + ignore(GetString("buildInvalidModuleOrNamespaceName")) + ignore(GetString("pickleErrorReadingWritingMetadata")) + ignore(GetString("tastTypeOrModuleNotConcrete")) + ignore(GetString("tastTypeHasAssemblyCodeRepresentation")) + ignore(GetString("tastNamespaceAndModuleWithSameNameInAssembly")) + ignore(GetString("tastTwoModulesWithSameNameInAssembly")) + ignore(GetString("tastDuplicateTypeDefinitionInAssembly")) + ignore(GetString("tastConflictingModuleAndTypeDefinitionInAssembly")) + ignore(GetString("tastInvalidMemberSignature")) + ignore(GetString("tastValueDoesNotHaveSetterType")) + ignore(GetString("tastInvalidFormForPropertyGetter")) + ignore(GetString("tastInvalidFormForPropertySetter")) + ignore(GetString("tastUnexpectedByRef")) + ignore(GetString("tastValueMustBeLocalAndMutable")) + ignore(GetString("tastInvalidMutationOfConstant")) + ignore(GetString("tastValueHasBeenCopied")) + ignore(GetString("tastRecursiveValuesMayNotBeInConstructionOfTuple")) + ignore(GetString("tastRecursiveValuesMayNotAppearInConstructionOfType")) + ignore(GetString("tastRecursiveValuesMayNotBeAssignedToNonMutableField")) + ignore(GetString("tastUnexpectedDecodeOfAutoOpenAttribute")) + ignore(GetString("tastUnexpectedDecodeOfInternalsVisibleToAttribute")) + ignore(GetString("tastUnexpectedDecodeOfInterfaceDataVersionAttribute")) + ignore(GetString("tastActivePatternsLimitedToSeven")) + ignore(GetString("tastConstantCannotBeCustomAttribute")) + ignore(GetString("tastNotAConstantExpression")) + ignore(GetString("ValueNotContainedMutabilityAttributesDiffer")) + ignore(GetString("ValueNotContainedMutabilityNamesDiffer")) + ignore(GetString("ValueNotContainedMutabilityCompiledNamesDiffer")) + ignore(GetString("ValueNotContainedMutabilityDisplayNamesDiffer")) + ignore(GetString("ValueNotContainedMutabilityAccessibilityMore")) + ignore(GetString("ValueNotContainedMutabilityInlineFlagsDiffer")) + ignore(GetString("ValueNotContainedMutabilityLiteralConstantValuesDiffer")) + ignore(GetString("ValueNotContainedMutabilityOneIsTypeFunction")) + ignore(GetString("ValueNotContainedMutabilityParameterCountsDiffer")) + ignore(GetString("ValueNotContainedMutabilityTypesDiffer")) + ignore(GetString("ValueNotContainedMutabilityExtensionsDiffer")) + ignore(GetString("ValueNotContainedMutabilityArityNotInferred")) + ignore(GetString("ValueNotContainedMutabilityGenericParametersDiffer")) + ignore(GetString("ValueNotContainedMutabilityGenericParametersAreDifferentKinds")) + ignore(GetString("ValueNotContainedMutabilityAritiesDiffer")) + ignore(GetString("ValueNotContainedMutabilityDotNetNamesDiffer")) + ignore(GetString("ValueNotContainedMutabilityStaticsDiffer")) + ignore(GetString("ValueNotContainedMutabilityVirtualsDiffer")) + ignore(GetString("ValueNotContainedMutabilityAbstractsDiffer")) + ignore(GetString("ValueNotContainedMutabilityFinalsDiffer")) + ignore(GetString("ValueNotContainedMutabilityOverridesDiffer")) + ignore(GetString("ValueNotContainedMutabilityOneIsConstructor")) + ignore(GetString("ValueNotContainedMutabilityStaticButInstance")) + ignore(GetString("ValueNotContainedMutabilityInstanceButStatic")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleNamesDiffer")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleParameterCountsDiffer")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleAccessibilityDiffer")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleMissingInterface")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleImplementationSaysNull")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleImplementationSaysNull2")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleSignatureSaysNull")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleSignatureSaysNull2")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleImplementationSealed")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleImplementationIsNotSealed")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleImplementationIsAbstract")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleSignatureIsAbstract")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleTypesHaveDifferentBaseTypes")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleNumbersDiffer")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleSignatureDefinesButImplDoesNot")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleImplDefinesButSignatureDoesNot")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleImplDefinesStruct")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleDotNetTypeRepresentationIsHidden")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleTypeIsHidden")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleTypeIsDifferentKind")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleILDiffer")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleRepresentationsDiffer")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleFieldWasPresent")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleFieldOrderDiffer")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleFieldRequiredButNotSpecified")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleFieldIsInImplButNotSig")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleAbstractMemberMissingInImpl")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleAbstractMemberMissingInSig")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleSignatureDeclaresDiffer")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleAbbreviationsDiffer")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleAbbreviationHiddenBySig")) + ignore(GetString("DefinitionsInSigAndImplNotCompatibleSigHasAbbreviation")) + ignore(GetString("ModuleContainsConstructorButNamesDiffer")) + ignore(GetString("ModuleContainsConstructorButDataFieldsDiffer")) + ignore(GetString("ModuleContainsConstructorButTypesOfFieldsDiffer")) + ignore(GetString("ModuleContainsConstructorButAccessibilityDiffers")) + ignore(GetString("FieldNotContainedNamesDiffer")) + ignore(GetString("FieldNotContainedAccessibilitiesDiffer")) + ignore(GetString("FieldNotContainedStaticsDiffer")) + ignore(GetString("FieldNotContainedMutablesDiffer")) + ignore(GetString("FieldNotContainedLiteralsDiffer")) + ignore(GetString("FieldNotContainedTypesDiffer")) + ignore(GetString("typrelCannotResolveImplicitGenericInstantiation")) + ignore(GetString("typrelCannotResolveAmbiguityInOverloadedOperator")) + ignore(GetString("typrelCannotResolveAmbiguityInPrintf")) + ignore(GetString("typrelCannotResolveAmbiguityInEnum")) + ignore(GetString("typrelCannotResolveAmbiguityInDelegate")) + ignore(GetString("typrelInvalidValue")) + ignore(GetString("typrelSigImplNotCompatibleParamCountsDiffer")) + ignore(GetString("typrelSigImplNotCompatibleCompileTimeRequirementsDiffer")) + ignore(GetString("typrelSigImplNotCompatibleConstraintsDiffer")) + ignore(GetString("typrelSigImplNotCompatibleConstraintsDifferRemove")) + ignore(GetString("typrelTypeImplementsIComparableShouldOverrideObjectEquals")) + ignore(GetString("typrelTypeImplementsIComparableDefaultObjectEqualsProvided")) + ignore(GetString("typrelExplicitImplementationOfGetHashCodeOrEquals")) + ignore(GetString("typrelExplicitImplementationOfGetHashCode")) + ignore(GetString("typrelExplicitImplementationOfEquals")) + ignore(GetString("ExceptionDefsNotCompatibleHiddenBySignature")) + ignore(GetString("ExceptionDefsNotCompatibleDotNetRepresentationsDiffer")) + ignore(GetString("ExceptionDefsNotCompatibleAbbreviationHiddenBySignature")) + ignore(GetString("ExceptionDefsNotCompatibleSignaturesDiffer")) + ignore(GetString("ExceptionDefsNotCompatibleExceptionDeclarationsDiffer")) + ignore(GetString("ExceptionDefsNotCompatibleFieldInSigButNotImpl")) + ignore(GetString("ExceptionDefsNotCompatibleFieldInImplButNotSig")) + ignore(GetString("ExceptionDefsNotCompatibleFieldOrderDiffers")) + ignore(GetString("typrelModuleNamespaceAttributesDifferInSigAndImpl")) + ignore(GetString("typrelMethodIsOverconstrained")) + ignore(GetString("typrelOverloadNotFound")) + ignore(GetString("typrelOverrideWasAmbiguous")) + ignore(GetString("typrelMoreThenOneOverride")) + ignore(GetString("typrelMethodIsSealed")) + ignore(GetString("typrelOverrideImplementsMoreThenOneSlot")) + ignore(GetString("typrelDuplicateInterface")) + ignore(GetString("typrelNeedExplicitImplementation")) + ignore(GetString("typrelNamedArgumentHasBeenAssignedMoreThenOnce")) + ignore(GetString("typrelNoImplementationGiven")) + ignore(GetString("typrelNoImplementationGivenWithSuggestion")) + ignore(GetString("typrelMemberDoesNotHaveCorrectNumberOfArguments")) + ignore(GetString("typrelMemberDoesNotHaveCorrectNumberOfTypeParameters")) + ignore(GetString("typrelMemberDoesNotHaveCorrectKindsOfGenericParameters")) + ignore(GetString("typrelMemberCannotImplement")) + ignore(GetString("astParseEmbeddedILError")) + ignore(GetString("astParseEmbeddedILTypeError")) + ignore(GetString("astDeprecatedIndexerNotation")) + ignore(GetString("astInvalidExprLeftHandOfAssignment")) + ignore(GetString("augNoRefEqualsOnStruct")) + ignore(GetString("augInvalidAttrs")) + ignore(GetString("augNoEqualityNeedsNoComparison")) + ignore(GetString("augStructCompNeedsStructEquality")) + ignore(GetString("augStructEqNeedsNoCompOrStructComp")) + ignore(GetString("augTypeCantHaveRefEqAndStructAttrs")) + ignore(GetString("augOnlyCertainTypesCanHaveAttrs")) + ignore(GetString("augRefEqCantHaveObjEquals")) + ignore(GetString("augCustomEqNeedsObjEquals")) + ignore(GetString("augCustomCompareNeedsIComp")) + ignore(GetString("augNoEqNeedsNoObjEquals")) + ignore(GetString("augNoCompCantImpIComp")) + ignore(GetString("augCustomEqNeedsNoCompOrCustomComp")) + ignore(GetString("forPositionalSpecifiersNotPermitted")) + ignore(GetString("forMissingFormatSpecifier")) + ignore(GetString("forFlagSetTwice")) + ignore(GetString("forPrefixFlagSpacePlusSetTwice")) + ignore(GetString("forHashSpecifierIsInvalid")) + ignore(GetString("forBadPrecision")) + ignore(GetString("forBadWidth")) + ignore(GetString("forDoesNotSupportZeroFlag")) + ignore(GetString("forPrecisionMissingAfterDot")) + ignore(GetString("forFormatDoesntSupportPrecision")) + ignore(GetString("forBadFormatSpecifier")) + ignore(GetString("forLIsUnnecessary")) + ignore(GetString("forHIsUnnecessary")) + ignore(GetString("forDoesNotSupportPrefixFlag")) + ignore(GetString("forBadFormatSpecifierGeneral")) + ignore(GetString("elSysEnvExitDidntExit")) + ignore(GetString("elDeprecatedOperator")) + ignore(GetString("chkProtectedOrBaseCalled")) + ignore(GetString("chkByrefUsedInInvalidWay")) + ignore(GetString("chkMutableUsedInInvalidWay")) + ignore(GetString("chkBaseUsedInInvalidWay")) + ignore(GetString("chkVariableUsedInInvalidWay")) + ignore(GetString("chkTypeLessAccessibleThanType")) + ignore(GetString("chkSystemVoidOnlyInTypeof")) + ignore(GetString("chkErrorUseOfByref")) + ignore(GetString("chkErrorContainsCallToRethrow")) + ignore(GetString("chkSplicingOnlyInQuotations")) + ignore(GetString("chkNoFirstClassSplicing")) + ignore(GetString("chkNoFirstClassAddressOf")) + ignore(GetString("chkNoFirstClassRethrow")) + ignore(GetString("chkNoByrefAtThisPoint")) + ignore(GetString("chkLimitationsOfBaseKeyword")) + ignore(GetString("chkObjCtorsCantUseExceptionHandling")) + ignore(GetString("chkNoAddressOfAtThisPoint")) + ignore(GetString("chkNoAddressStaticFieldAtThisPoint")) + ignore(GetString("chkNoAddressFieldAtThisPoint")) + ignore(GetString("chkNoAddressOfArrayElementAtThisPoint")) + ignore(GetString("chkFirstClassFuncNoByref")) + ignore(GetString("chkReturnTypeNoByref")) + ignore(GetString("chkInvalidCustAttrVal")) + ignore(GetString("chkAttrHasAllowMultiFalse")) + ignore(GetString("chkMemberUsedInInvalidWay")) + ignore(GetString("chkNoByrefAsTopValue")) + ignore(GetString("chkReflectedDefCantSplice")) + ignore(GetString("chkEntryPointUsage")) + ignore(GetString("chkUnionCaseCompiledForm")) + ignore(GetString("chkUnionCaseDefaultAugmentation")) + ignore(GetString("chkPropertySameNameMethod")) + ignore(GetString("chkGetterSetterDoNotMatchAbstract")) + ignore(GetString("chkPropertySameNameIndexer")) + ignore(GetString("chkCantStoreByrefValue")) + ignore(GetString("chkDuplicateMethod")) + ignore(GetString("chkDuplicateMethodWithSuffix")) + ignore(GetString("chkDuplicateMethodCurried")) + ignore(GetString("chkCurriedMethodsCantHaveOutParams")) + ignore(GetString("chkDuplicateProperty")) + ignore(GetString("chkDuplicatePropertyWithSuffix")) + ignore(GetString("chkDuplicateMethodInheritedType")) + ignore(GetString("chkDuplicateMethodInheritedTypeWithSuffix")) + ignore(GetString("chkMultipleGenericInterfaceInstantiations")) + ignore(GetString("chkValueWithDefaultValueMustHaveDefaultValue")) + ignore(GetString("chkNoByrefInTypeAbbrev")) + ignore(GetString("crefBoundVarUsedInSplice")) + ignore(GetString("crefQuotationsCantContainGenericExprs")) + ignore(GetString("crefQuotationsCantContainGenericFunctions")) + ignore(GetString("crefQuotationsCantContainObjExprs")) + ignore(GetString("crefQuotationsCantContainAddressOf")) + ignore(GetString("crefQuotationsCantContainStaticFieldRef")) + ignore(GetString("crefQuotationsCantContainInlineIL")) + ignore(GetString("crefQuotationsCantContainDescendingForLoops")) + ignore(GetString("crefQuotationsCantFetchUnionIndexes")) + ignore(GetString("crefQuotationsCantSetUnionFields")) + ignore(GetString("crefQuotationsCantSetExceptionFields")) + ignore(GetString("crefQuotationsCantRequireByref")) + ignore(GetString("crefQuotationsCantCallTraitMembers")) + ignore(GetString("crefQuotationsCantContainThisConstant")) + ignore(GetString("crefQuotationsCantContainThisPatternMatch")) + ignore(GetString("crefQuotationsCantContainArrayPatternMatching")) + ignore(GetString("crefQuotationsCantContainThisType")) + ignore(GetString("csTypeCannotBeResolvedAtCompileTime")) + ignore(GetString("csCodeLessGeneric")) + ignore(GetString("csTypeInferenceMaxDepth")) + ignore(GetString("csExpectedArguments")) + ignore(GetString("csIndexArgumentMismatch")) + ignore(GetString("csExpectTypeWithOperatorButGivenFunction")) + ignore(GetString("csExpectTypeWithOperatorButGivenTuple")) + ignore(GetString("csTypesDoNotSupportOperator")) + ignore(GetString("csTypeDoesNotSupportOperator")) + ignore(GetString("csTypesDoNotSupportOperatorNullable")) + ignore(GetString("csTypeDoesNotSupportOperatorNullable")) + ignore(GetString("csTypeDoesNotSupportConversion")) + ignore(GetString("csMethodFoundButIsStatic")) + ignore(GetString("csMethodFoundButIsNotStatic")) + ignore(GetString("csStructConstraintInconsistent")) + ignore(GetString("csTypeDoesNotHaveNull")) + ignore(GetString("csNullableTypeDoesNotHaveNull")) + ignore(GetString("csTypeDoesNotSupportComparison1")) + ignore(GetString("csTypeDoesNotSupportComparison2")) + ignore(GetString("csTypeDoesNotSupportComparison3")) + ignore(GetString("csTypeDoesNotSupportEquality1")) + ignore(GetString("csTypeDoesNotSupportEquality2")) + ignore(GetString("csTypeDoesNotSupportEquality3")) + ignore(GetString("csTypeIsNotEnumType")) + ignore(GetString("csTypeHasNonStandardDelegateType")) + ignore(GetString("csTypeIsNotDelegateType")) + ignore(GetString("csTypeParameterCannotBeNullable")) + ignore(GetString("csGenericConstructRequiresStructType")) + ignore(GetString("csGenericConstructRequiresUnmanagedType")) + ignore(GetString("csTypeNotCompatibleBecauseOfPrintf")) + ignore(GetString("csGenericConstructRequiresReferenceSemantics")) + ignore(GetString("csGenericConstructRequiresNonAbstract")) + ignore(GetString("csGenericConstructRequiresPublicDefaultConstructor")) + ignore(GetString("csTypeInstantiationLengthMismatch")) + ignore(GetString("csOptionalArgumentNotPermittedHere")) + ignore(GetString("csMemberIsNotStatic")) + ignore(GetString("csMemberIsNotInstance")) + ignore(GetString("csArgumentLengthMismatch")) + ignore(GetString("csArgumentTypesDoNotMatch")) + ignore(GetString("csMethodExpectsParams")) + ignore(GetString("csMemberIsNotAccessible")) + ignore(GetString("csMemberIsNotAccessible2")) + ignore(GetString("csMethodIsNotAStaticMethod")) + ignore(GetString("csMethodIsNotAnInstanceMethod")) + ignore(GetString("csMemberHasNoArgumentOrReturnProperty")) + ignore(GetString("csRequiredSignatureIs")) + ignore(GetString("csMemberSignatureMismatch")) + ignore(GetString("csMemberSignatureMismatch2")) + ignore(GetString("csMemberSignatureMismatch3")) + ignore(GetString("csMemberSignatureMismatch4")) + ignore(GetString("csMemberSignatureMismatchArityNamed")) + ignore(GetString("csMemberSignatureMismatchArity")) + ignore(GetString("csMemberSignatureMismatchArityType")) + ignore(GetString("csMemberNotAccessible")) + ignore(GetString("csIncorrectGenericInstantiation")) + ignore(GetString("csMemberOverloadArityMismatch")) + ignore(GetString("csNoMemberTakesTheseArguments")) + ignore(GetString("csNoMemberTakesTheseArguments2")) + ignore(GetString("csNoMemberTakesTheseArguments3")) + ignore(GetString("csMethodNotFound")) + ignore(GetString("csNoOverloadsFound")) + ignore(GetString("csMethodIsOverloaded")) + ignore(GetString("csCandidates")) + ignore(GetString("csSeeAvailableOverloads")) + ignore(GetString("parsDoCannotHaveVisibilityDeclarations")) + ignore(GetString("parsEofInHashIf")) + ignore(GetString("parsEofInString")) + ignore(GetString("parsEofInVerbatimString")) + ignore(GetString("parsEofInComment")) + ignore(GetString("parsEofInStringInComment")) + ignore(GetString("parsEofInVerbatimStringInComment")) + ignore(GetString("parsEofInIfOcaml")) + ignore(GetString("parsEofInDirective")) + ignore(GetString("parsNoHashEndIfFound")) + ignore(GetString("parsAttributesIgnored")) + ignore(GetString("parsUseBindingsIllegalInImplicitClassConstructors")) + ignore(GetString("parsUseBindingsIllegalInModules")) + ignore(GetString("parsIntegerForLoopRequiresSimpleIdentifier")) + ignore(GetString("parsOnlyOneWithAugmentationAllowed")) + ignore(GetString("parsUnexpectedSemicolon")) + ignore(GetString("parsUnexpectedEndOfFile")) + ignore(GetString("parsUnexpectedVisibilityDeclaration")) + ignore(GetString("parsOnlyHashDirectivesAllowed")) + ignore(GetString("parsVisibilityDeclarationsShouldComePriorToIdentifier")) + ignore(GetString("parsNamespaceOrModuleNotBoth")) + ignore(GetString("parsModuleAbbreviationMustBeSimpleName")) + ignore(GetString("parsIgnoreAttributesOnModuleAbbreviation")) + ignore(GetString("parsIgnoreAttributesOnModuleAbbreviationAlwaysPrivate")) + ignore(GetString("parsIgnoreVisibilityOnModuleAbbreviationAlwaysPrivate")) + ignore(GetString("parsUnClosedBlockInHashLight")) + ignore(GetString("parsUnmatchedBeginOrStruct")) + ignore(GetString("parsModuleDefnMustBeSimpleName")) + ignore(GetString("parsUnexpectedEmptyModuleDefn")) + ignore(GetString("parsAttributesMustComeBeforeVal")) + ignore(GetString("parsAttributesAreNotPermittedOnInterfaceImplementations")) + ignore(GetString("parsSyntaxError")) + ignore(GetString("parsAugmentationsIllegalOnDelegateType")) + ignore(GetString("parsUnmatchedClassInterfaceOrStruct")) + ignore(GetString("parsEmptyTypeDefinition")) + ignore(GetString("parsUnmatchedWith")) + ignore(GetString("parsGetOrSetRequired")) + ignore(GetString("parsOnlyClassCanTakeValueArguments")) + ignore(GetString("parsUnmatchedBegin")) + ignore(GetString("parsInvalidDeclarationSyntax")) + ignore(GetString("parsGetAndOrSetRequired")) + ignore(GetString("parsTypeAnnotationsOnGetSet")) + ignore(GetString("parsGetterMustHaveAtLeastOneArgument")) + ignore(GetString("parsMultipleAccessibilitiesForGetSet")) + ignore(GetString("parsSetSyntax")) + ignore(GetString("parsInterfacesHaveSameVisibilityAsEnclosingType")) + ignore(GetString("parsAccessibilityModsIllegalForAbstract")) + ignore(GetString("parsAttributesIllegalOnInherit")) + ignore(GetString("parsVisibilityIllegalOnInherit")) + ignore(GetString("parsInheritDeclarationsCannotHaveAsBindings")) + ignore(GetString("parsAttributesIllegalHere")) + ignore(GetString("parsTypeAbbreviationsCannotHaveVisibilityDeclarations")) + ignore(GetString("parsEnumTypesCannotHaveVisibilityDeclarations")) + ignore(GetString("parsAllEnumFieldsRequireValues")) + ignore(GetString("parsInlineAssemblyCannotHaveVisibilityDeclarations")) + ignore(GetString("parsUnexpectedIdentifier")) + ignore(GetString("parsUnionCasesCannotHaveVisibilityDeclarations")) + ignore(GetString("parsEnumFieldsCannotHaveVisibilityDeclarations")) + ignore(GetString("parsConsiderUsingSeparateRecordType")) + ignore(GetString("parsRecordFieldsCannotHaveVisibilityDeclarations")) + ignore(GetString("parsLetAndForNonRecBindings")) + ignore(GetString("parsUnmatchedParen")) + ignore(GetString("parsSuccessivePatternsShouldBeSpacedOrTupled")) + ignore(GetString("parsNoMatchingInForLet")) + ignore(GetString("parsErrorInReturnForLetIncorrectIndentation")) + ignore(GetString("parsExpectedStatementAfterLet")) + ignore(GetString("parsIncompleteIf")) + ignore(GetString("parsAssertIsNotFirstClassValue")) + ignore(GetString("parsIdentifierExpected")) + ignore(GetString("parsInOrEqualExpected")) + ignore(GetString("parsArrowUseIsLimited")) + ignore(GetString("parsSuccessiveArgsShouldBeSpacedOrTupled")) + ignore(GetString("parsUnmatchedBracket")) + ignore(GetString("parsMissingQualificationAfterDot")) + ignore(GetString("parsParenFormIsForML")) + ignore(GetString("parsMismatchedQuote")) + ignore(GetString("parsUnmatched")) + ignore(GetString("parsUnmatchedBracketBar")) + ignore(GetString("parsUnmatchedBrace")) + ignore(GetString("parsFieldBinding")) + ignore(GetString("parsMemberIllegalInObjectImplementation")) + ignore(GetString("parsMissingFunctionBody")) + ignore(GetString("parsSyntaxErrorInLabeledType")) + ignore(GetString("parsUnexpectedInfixOperator")) + ignore(GetString("parsMultiArgumentGenericTypeFormDeprecated")) + ignore(GetString("parsInvalidLiteralInType")) + ignore(GetString("parsUnexpectedOperatorForUnitOfMeasure")) + ignore(GetString("parsUnexpectedIntegerLiteralForUnitOfMeasure")) + ignore(GetString("parsUnexpectedTypeParameter")) + ignore(GetString("parsMismatchedQuotationName")) + ignore(GetString("parsActivePatternCaseMustBeginWithUpperCase")) + ignore(GetString("parsNoEqualShouldFollowNamespace")) + ignore(GetString("parsSyntaxModuleStructEndDeprecated")) + ignore(GetString("parsSyntaxModuleSigEndDeprecated")) + ignore(GetString("tcStaticFieldUsedWhenInstanceFieldExpected")) + ignore(GetString("tcMethodNotAccessible")) + ignore(GetString("tcImplicitMeasureFollowingSlash")) + ignore(GetString("tcUnexpectedMeasureAnon")) + ignore(GetString("tcNonZeroConstantCannotHaveGenericUnit")) + ignore(GetString("tcSeqResultsUseYield")) + ignore(GetString("tcUnexpectedBigRationalConstant")) + ignore(GetString("tcInvalidTypeForUnitsOfMeasure")) + ignore(GetString("tcUnexpectedConstUint16Array")) + ignore(GetString("tcUnexpectedConstByteArray")) + ignore(GetString("tcParameterRequiresName")) + ignore(GetString("tcReturnValuesCannotHaveNames")) + ignore(GetString("tcMemberKindPropertyGetSetNotExpected")) + ignore(GetString("tcNamespaceCannotContainValues")) + ignore(GetString("tcNamespaceCannotContainExtensionMembers")) + ignore(GetString("tcMultipleVisibilityAttributes")) + ignore(GetString("tcMultipleVisibilityAttributesWithLet")) + ignore(GetString("tcUnrecognizedAccessibilitySpec")) + ignore(GetString("tcInvalidMethodNameForRelationalOperator")) + ignore(GetString("tcInvalidMethodNameForEquality")) + ignore(GetString("tcInvalidMemberName")) + ignore(GetString("tcInvalidMemberNameFixedTypes")) + ignore(GetString("tcInvalidOperatorDefinitionRelational")) + ignore(GetString("tcInvalidOperatorDefinitionEquality")) + ignore(GetString("tcInvalidOperatorDefinition")) + ignore(GetString("tcInvalidIndexOperatorDefinition")) + ignore(GetString("tcExpectModuleOrNamespaceParent")) + ignore(GetString("tcImplementsIComparableExplicitly")) + ignore(GetString("tcImplementsGenericIComparableExplicitly")) + ignore(GetString("tcImplementsIStructuralComparableExplicitly")) + ignore(GetString("tcRecordFieldInconsistentTypes")) + ignore(GetString("tcDllImportStubsCannotBeInlined")) + ignore(GetString("tcStructsCanOnlyBindThisAtMemberDeclaration")) + ignore(GetString("tcUnexpectedExprAtRecInfPoint")) + ignore(GetString("tcLessGenericBecauseOfAnnotation")) + ignore(GetString("tcConstrainedTypeVariableCannotBeGeneralized")) + ignore(GetString("tcGenericParameterHasBeenConstrained")) + ignore(GetString("tcTypeParameterHasBeenConstrained")) + ignore(GetString("tcTypeParametersInferredAreNotStable")) + ignore(GetString("tcExplicitTypeParameterInvalid")) + ignore(GetString("tcOverridingMethodRequiresAllOrNoTypeParameters")) + ignore(GetString("tcFieldsDoNotDetermineUniqueRecordType")) + ignore(GetString("tcFieldAppearsTwiceInRecord")) + ignore(GetString("tcUnknownUnion")) + ignore(GetString("tcNotSufficientlyGenericBecauseOfScope")) + ignore(GetString("tcPropertyRequiresExplicitTypeParameters")) + ignore(GetString("tcConstructorCannotHaveTypeParameters")) + ignore(GetString("tcInstanceMemberRequiresTarget")) + ignore(GetString("tcUnexpectedPropertyInSyntaxTree")) + ignore(GetString("tcStaticInitializerRequiresArgument")) + ignore(GetString("tcObjectConstructorRequiresArgument")) + ignore(GetString("tcStaticMemberShouldNotHaveThis")) + ignore(GetString("tcExplicitStaticInitializerSyntax")) + ignore(GetString("tcExplicitObjectConstructorSyntax")) + ignore(GetString("tcUnexpectedPropertySpec")) + ignore(GetString("tcObjectExpressionFormDeprecated")) + ignore(GetString("tcInvalidDeclaration")) + ignore(GetString("tcAttributesInvalidInPatterns")) + ignore(GetString("tcFunctionRequiresExplicitTypeArguments")) + ignore(GetString("tcDoesNotAllowExplicitTypeArguments")) + ignore(GetString("tcTypeParameterArityMismatch")) + ignore(GetString("tcDefaultStructConstructorCall")) + ignore(GetString("tcCouldNotFindIDisposable")) + ignore(GetString("tcNonLiteralCannotBeUsedInPattern")) + ignore(GetString("tcFieldIsReadonly")) + ignore(GetString("tcNameArgumentsMustAppearLast")) + ignore(GetString("tcFunctionRequiresExplicitLambda")) + ignore(GetString("tcTypeCannotBeEnumerated")) + ignore(GetString("tcBadReturnTypeForGetEnumerator")) + ignore(GetString("tcInvalidMixtureOfRecursiveForms")) + ignore(GetString("tcInvalidObjectConstructionExpression")) + ignore(GetString("tcInvalidConstraint")) + ignore(GetString("tcInvalidConstraintTypeSealed")) + ignore(GetString("tcInvalidEnumConstraint")) + ignore(GetString("tcInvalidNewConstraint")) + ignore(GetString("tcInvalidPropertyType")) + ignore(GetString("tcExpectedUnitOfMeasureMarkWithAttribute")) + ignore(GetString("tcExpectedTypeParameter")) + ignore(GetString("tcExpectedTypeNotUnitOfMeasure")) + ignore(GetString("tcExpectedUnitOfMeasureNotType")) + ignore(GetString("tcInvalidUnitsOfMeasurePrefix")) + ignore(GetString("tcUnitsOfMeasureInvalidInTypeConstructor")) + ignore(GetString("tcRequireBuilderMethod")) + ignore(GetString("tcTypeHasNoNestedTypes")) + ignore(GetString("tcUnexpectedSymbolInTypeExpression")) + ignore(GetString("tcTypeParameterInvalidAsTypeConstructor")) + ignore(GetString("tcIllegalSyntaxInTypeExpression")) + ignore(GetString("tcAnonymousUnitsOfMeasureCannotBeNested")) + ignore(GetString("tcAnonymousTypeInvalidInDeclaration")) + ignore(GetString("tcUnexpectedSlashInType")) + ignore(GetString("tcUnexpectedTypeArguments")) + ignore(GetString("tcOptionalArgsOnlyOnMembers")) + ignore(GetString("tcNameNotBoundInPattern")) + ignore(GetString("tcInvalidNonPrimitiveLiteralInPatternMatch")) + ignore(GetString("tcInvalidTypeArgumentUsage")) + ignore(GetString("tcRequireActivePatternWithOneResult")) + ignore(GetString("tcInvalidArgForParameterizedPattern")) + ignore(GetString("tcInvalidIndexIntoActivePatternArray")) + ignore(GetString("tcUnionCaseDoesNotTakeArguments")) + ignore(GetString("tcUnionCaseRequiresOneArgument")) + ignore(GetString("tcUnionCaseExpectsTupledArguments")) + ignore(GetString("tcFieldIsNotStatic")) + ignore(GetString("tcFieldNotLiteralCannotBeUsedInPattern")) + ignore(GetString("tcRequireVarConstRecogOrLiteral")) + ignore(GetString("tcInvalidPattern")) + ignore(GetString("tcUseWhenPatternGuard")) + ignore(GetString("tcIllegalPattern")) + ignore(GetString("tcSyntaxErrorUnexpectedQMark")) + ignore(GetString("tcExpressionCountMisMatch")) + ignore(GetString("tcExprUndelayed")) + ignore(GetString("tcExpressionRequiresSequence")) + ignore(GetString("tcInvalidObjectExpressionSyntaxForm")) + ignore(GetString("tcInvalidObjectSequenceOrRecordExpression")) + ignore(GetString("tcInvalidSequenceExpressionSyntaxForm")) + ignore(GetString("tcExpressionWithIfRequiresParenthesis")) + ignore(GetString("tcUnableToParseFormatString")) + ignore(GetString("tcListLiteralMaxSize")) + ignore(GetString("tcExpressionFormRequiresObjectConstructor")) + ignore(GetString("tcNamedArgumentsCannotBeUsedInMemberTraits")) + ignore(GetString("tcNotValidEnumCaseName")) + ignore(GetString("tcFieldIsNotMutable")) + ignore(GetString("tcConstructRequiresListArrayOrSequence")) + ignore(GetString("tcConstructRequiresComputationExpressions")) + ignore(GetString("tcConstructRequiresSequenceOrComputations")) + ignore(GetString("tcConstructRequiresComputationExpression")) + ignore(GetString("tcInvalidIndexerExpression")) + ignore(GetString("tcObjectOfIndeterminateTypeUsedRequireTypeConstraint")) + ignore(GetString("tcCannotInheritFromVariableType")) + ignore(GetString("tcObjectConstructorsOnTypeParametersCannotTakeArguments")) + ignore(GetString("tcCompiledNameAttributeMisused")) + ignore(GetString("tcNamedTypeRequired")) + ignore(GetString("tcInheritCannotBeUsedOnInterfaceType")) + ignore(GetString("tcNewCannotBeUsedOnInterfaceType")) + ignore(GetString("tcAbstractTypeCannotBeInstantiated")) + ignore(GetString("tcIDisposableTypeShouldUseNew")) + ignore(GetString("tcSyntaxCanOnlyBeUsedToCreateObjectTypes")) + ignore(GetString("tcConstructorRequiresCall")) + ignore(GetString("tcUndefinedField")) + ignore(GetString("tcFieldRequiresAssignment")) + ignore(GetString("tcExtraneousFieldsGivenValues")) + ignore(GetString("tcObjectExpressionsCanOnlyOverrideAbstractOrVirtual")) + ignore(GetString("tcNoAbstractOrVirtualMemberFound")) + ignore(GetString("tcArgumentArityMismatch")) + ignore(GetString("tcArgumentArityMismatchOneOverload")) + ignore(GetString("tcSimpleMethodNameRequired")) + ignore(GetString("tcPredefinedTypeCannotBeUsedAsSuperType")) + ignore(GetString("tcNewMustBeUsedWithNamedType")) + ignore(GetString("tcCannotCreateExtensionOfSealedType")) + ignore(GetString("tcNoArgumentsForRecordValue")) + ignore(GetString("tcNoInterfaceImplementationForConstructionExpression")) + ignore(GetString("tcObjectConstructionCanOnlyBeUsedInClassTypes")) + ignore(GetString("tcOnlySimpleBindingsCanBeUsedInConstructionExpressions")) + ignore(GetString("tcObjectsMustBeInitializedWithObjectExpression")) + ignore(GetString("tcExpectedInterfaceType")) + ignore(GetString("tcConstructorForInterfacesDoNotTakeArguments")) + ignore(GetString("tcConstructorRequiresArguments")) + ignore(GetString("tcNewRequiresObjectConstructor")) + ignore(GetString("tcAtLeastOneOverrideIsInvalid")) + ignore(GetString("tcNumericLiteralRequiresModule")) + ignore(GetString("tcInvalidRecordConstruction")) + ignore(GetString("tcExpressionFormRequiresRecordTypes")) + ignore(GetString("tcInheritedTypeIsNotObjectModelType")) + ignore(GetString("tcObjectConstructionExpressionCanOnlyImplementConstructorsInObjectModelTypes")) + ignore(GetString("tcEmptyRecordInvalid")) + ignore(GetString("tcTypeIsNotARecordTypeNeedConstructor")) + ignore(GetString("tcTypeIsNotARecordType")) + ignore(GetString("tcConstructIsAmbiguousInComputationExpression")) + ignore(GetString("tcConstructIsAmbiguousInSequenceExpression")) + ignore(GetString("tcDoBangIllegalInSequenceExpression")) + ignore(GetString("tcUseForInSequenceExpression")) + ignore(GetString("tcTryIllegalInSequenceExpression")) + ignore(GetString("tcUseYieldBangForMultipleResults")) + ignore(GetString("tcInvalidAssignment")) + ignore(GetString("tcInvalidUseOfTypeName")) + ignore(GetString("tcTypeHasNoAccessibleConstructor")) + ignore(GetString("tcInvalidUseOfTypeNameOrConstructor")) + ignore(GetString("tcInvalidUseOfTypeNameOrConstructorWithOverloads")) + ignore(GetString("tcInvalidUseOfInterfaceType")) + ignore(GetString("tcInvalidUseOfDelegate")) + ignore(GetString("tcPropertyIsNotStatic")) + ignore(GetString("tcPropertyIsNotReadable")) + ignore(GetString("tcLookupMayNotBeUsedHere")) + ignore(GetString("tcPropertyIsStatic")) + ignore(GetString("tcPropertyCannotBeSet1")) + ignore(GetString("tcConstructorsCannotBeFirstClassValues")) + ignore(GetString("tcSyntaxFormUsedOnlyWithRecordLabelsPropertiesAndFields")) + ignore(GetString("tcEventIsStatic")) + ignore(GetString("tcEventIsNotStatic")) + ignore(GetString("tcNamedArgumentDidNotMatch")) + ignore(GetString("tcOverloadsCannotHaveCurriedArguments")) + ignore(GetString("tcUnnamedArgumentsDoNotFormPrefix")) + ignore(GetString("tcStaticOptimizationConditionalsOnlyForFSharpLibrary")) + ignore(GetString("tcFormalArgumentIsNotOptional")) + ignore(GetString("tcInvalidOptionalAssignmentToPropertyOrField")) + ignore(GetString("tcDelegateConstructorMustBePassed")) + ignore(GetString("tcBindingCannotBeUseAndRec")) + ignore(GetString("tcVolatileOnlyOnClassLetBindings")) + ignore(GetString("tcAttributesAreNotPermittedOnLetBindings")) + ignore(GetString("tcDefaultValueAttributeRequiresVal")) + ignore(GetString("tcConditionalAttributeRequiresMembers")) + ignore(GetString("tcInvalidActivePatternName")) + ignore(GetString("tcEntryPointAttributeRequiresFunctionInModule")) + ignore(GetString("tcMutableValuesCannotBeInline")) + ignore(GetString("tcMutableValuesMayNotHaveGenericParameters")) + ignore(GetString("tcMutableValuesSyntax")) + ignore(GetString("tcOnlyFunctionsCanBeInline")) + ignore(GetString("tcIllegalAttributesForLiteral")) + ignore(GetString("tcLiteralCannotBeMutable")) + ignore(GetString("tcLiteralCannotBeInline")) + ignore(GetString("tcLiteralCannotHaveGenericParameters")) + ignore(GetString("tcInvalidConstantExpression")) + ignore(GetString("tcTypeIsInaccessible")) + ignore(GetString("tcUnexpectedConditionInImportedAssembly")) + ignore(GetString("tcUnrecognizedAttributeTarget")) + ignore(GetString("tcAttributeIsNotValidForLanguageElementUseDo")) + ignore(GetString("tcAttributeIsNotValidForLanguageElement")) + ignore(GetString("tcOptionalArgumentsCannotBeUsedInCustomAttribute")) + ignore(GetString("tcPropertyCannotBeSet0")) + ignore(GetString("tcPropertyOrFieldNotFoundInAttribute")) + ignore(GetString("tcCustomAttributeMustBeReferenceType")) + ignore(GetString("tcCustomAttributeArgumentMismatch")) + ignore(GetString("tcCustomAttributeMustInvokeConstructor")) + ignore(GetString("tcAttributeExpressionsMustBeConstructorCalls")) + ignore(GetString("tcUnsupportedAttribute")) + ignore(GetString("tcInvalidInlineSpecification")) + ignore(GetString("tcInvalidUseBinding")) + ignore(GetString("tcAbstractMembersIllegalInAugmentation")) + ignore(GetString("tcMethodOverridesIllegalHere")) + ignore(GetString("tcNoMemberFoundForOverride")) + ignore(GetString("tcOverrideArityMismatch")) + ignore(GetString("tcDefaultImplementationAlreadyExists")) + ignore(GetString("tcDefaultAmbiguous")) + ignore(GetString("tcNoPropertyFoundForOverride")) + ignore(GetString("tcAbstractPropertyMissingGetOrSet")) + ignore(GetString("tcInvalidSignatureForSet")) + ignore(GetString("tcPropertyAlreadyHasDefaultImplementation")) + ignore(GetString("tcPropertyImplementedIsAmbiguous")) + ignore(GetString("tcNewMemberHidesAbstractMember")) + ignore(GetString("tcNewMemberHidesAbstractMemberWithSuffix")) + ignore(GetString("tcStaticInitializersIllegalInInterface")) + ignore(GetString("tcObjectConstructorsIllegalInInterface")) + ignore(GetString("tcMemberOverridesIllegalInInterface")) + ignore(GetString("tcConcreteMembersIllegalInInterface")) + ignore(GetString("tcConstructorsDisallowedInExceptionAugmentation")) + ignore(GetString("tcStructsCannotHaveConstructorWithNoArguments")) + ignore(GetString("tcConstructorsIllegalForThisType")) + ignore(GetString("tcRecursiveBindingsWithMembersMustBeDirectAugmentation")) + ignore(GetString("tcOnlySimplePatternsInLetRec")) + ignore(GetString("tcOnlyRecordFieldsAndSimpleLetCanBeMutable")) + ignore(GetString("tcMemberIsNotSufficientlyGeneric")) + ignore(GetString("tcLiteralAttributeRequiresConstantValue")) + ignore(GetString("tcValueInSignatureRequiresLiteralAttribute")) + ignore(GetString("tcThreadStaticAndContextStaticMustBeStatic")) + ignore(GetString("tcVolatileFieldsMustBeMutable")) + ignore(GetString("tcUninitializedValFieldsMustBeMutable")) + ignore(GetString("tcStaticValFieldsMustBeMutableAndPrivate")) + ignore(GetString("tcFieldRequiresName")) + ignore(GetString("tcInvalidNamespaceModuleTypeUnionName")) + ignore(GetString("tcIllegalFormForExplicitTypeDeclaration")) + ignore(GetString("tcReturnTypesForUnionMustBeSameAsType")) + ignore(GetString("tcInvalidEnumerationLiteral")) + ignore(GetString("tcTypeIsNotInterfaceType1")) + ignore(GetString("tcDuplicateSpecOfInterface")) + ignore(GetString("tcFieldValIllegalHere")) + ignore(GetString("tcInheritIllegalHere")) + ignore(GetString("tcModuleRequiresQualifiedAccess")) + ignore(GetString("tcOpenUsedWithPartiallyQualifiedPath")) + ignore(GetString("tcLocalClassBindingsCannotBeInline")) + ignore(GetString("tcTypeAbbreviationsMayNotHaveMembers")) + ignore(GetString("tcEnumerationsMayNotHaveMembers")) + ignore(GetString("tcMeasureDeclarationsRequireStaticMembers")) + ignore(GetString("tcStructsMayNotContainDoBindings")) + ignore(GetString("tcStructsMayNotContainLetBindings")) + ignore(GetString("tcStaticLetBindingsRequireClassesWithImplicitConstructors")) + ignore(GetString("tcMeasureDeclarationsRequireStaticMembersNotConstructors")) + ignore(GetString("tcMemberAndLocalClassBindingHaveSameName")) + ignore(GetString("tcTypeAbbreviationsCannotHaveInterfaceDeclaration")) + ignore(GetString("tcEnumerationsCannotHaveInterfaceDeclaration")) + ignore(GetString("tcTypeIsNotInterfaceType0")) + ignore(GetString("tcAllImplementedInterfacesShouldBeDeclared")) + ignore(GetString("tcDefaultImplementationForInterfaceHasAlreadyBeenAdded")) + ignore(GetString("tcMemberNotPermittedInInterfaceImplementation")) + ignore(GetString("tcDeclarationElementNotPermittedInAugmentation")) + ignore(GetString("tcTypesCannotContainNestedTypes")) + ignore(GetString("tcTypeExceptionOrModule")) + ignore(GetString("tcTypeOrModule")) + ignore(GetString("tcImplementsIStructuralEquatableExplicitly")) + ignore(GetString("tcImplementsIEquatableExplicitly")) + ignore(GetString("tcExplicitTypeSpecificationCannotBeUsedForExceptionConstructors")) + ignore(GetString("tcExceptionAbbreviationsShouldNotHaveArgumentList")) + ignore(GetString("tcAbbreviationsFordotNetExceptionsCannotTakeArguments")) + ignore(GetString("tcExceptionAbbreviationsMustReferToValidExceptions")) + ignore(GetString("tcAbbreviationsFordotNetExceptionsMustHaveMatchingObjectConstructor")) + ignore(GetString("tcNotAnException")) + ignore(GetString("tcInvalidModuleName")) + ignore(GetString("tcInvalidTypeExtension")) + ignore(GetString("tcAttributesOfTypeSpecifyMultipleKindsForType")) + ignore(GetString("tcKindOfTypeSpecifiedDoesNotMatchDefinition")) + ignore(GetString("tcMeasureDefinitionsCannotHaveTypeParameters")) + ignore(GetString("tcTypeRequiresDefinition")) + ignore(GetString("tcTypeAbbreviationHasTypeParametersMissingOnType")) + ignore(GetString("tcStructsInterfacesEnumsDelegatesMayNotInheritFromOtherTypes")) + ignore(GetString("tcTypesCannotInheritFromMultipleConcreteTypes")) + ignore(GetString("tcRecordsUnionsAbbreviationsStructsMayNotHaveAllowNullLiteralAttribute")) + ignore(GetString("tcAllowNullTypesMayOnlyInheritFromAllowNullTypes")) + ignore(GetString("tcGenericTypesCannotHaveStructLayout")) + ignore(GetString("tcOnlyStructsCanHaveStructLayout")) + ignore(GetString("tcRepresentationOfTypeHiddenBySignature")) + ignore(GetString("tcOnlyClassesCanHaveAbstract")) + ignore(GetString("tcOnlyTypesRepresentingUnitsOfMeasureCanHaveMeasure")) + ignore(GetString("tcOverridesCannotHaveVisibilityDeclarations")) + ignore(GetString("tcTypesAreAlwaysSealedDU")) + ignore(GetString("tcTypesAreAlwaysSealedRecord")) + ignore(GetString("tcTypesAreAlwaysSealedAssemblyCode")) + ignore(GetString("tcTypesAreAlwaysSealedStruct")) + ignore(GetString("tcTypesAreAlwaysSealedDelegate")) + ignore(GetString("tcTypesAreAlwaysSealedEnum")) + ignore(GetString("tcInterfaceTypesAndDelegatesCannotContainFields")) + ignore(GetString("tcAbbreviatedTypesCannotBeSealed")) + ignore(GetString("tcCannotInheritFromSealedType")) + ignore(GetString("tcCannotInheritFromInterfaceType")) + ignore(GetString("tcStructTypesCannotContainAbstractMembers")) + ignore(GetString("tcInterfaceTypesCannotBeSealed")) + ignore(GetString("tcInvalidDelegateSpecification")) + ignore(GetString("tcDelegatesCannotBeCurried")) + ignore(GetString("tcInvalidTypeForLiteralEnumeration")) + ignore(GetString("tcTypeDefinitionIsCyclic")) + ignore(GetString("tcTypeDefinitionIsCyclicThroughInheritance")) + ignore(GetString("tcReservedSyntaxForAugmentation")) + ignore(GetString("tcMembersThatExtendInterfaceMustBePlacedInSeparateModule")) + ignore(GetString("tcDeclaredTypeParametersForExtensionDoNotMatchOriginal")) + ignore(GetString("tcTypeDefinitionsWithImplicitConstructionMustHaveOneInherit")) + ignore(GetString("tcTypeDefinitionsWithImplicitConstructionMustHaveLocalBindingsBeforeMembers")) + ignore(GetString("tcInheritDeclarationMissingArguments")) + ignore(GetString("tcInheritConstructionCallNotPartOfImplicitSequence")) + ignore(GetString("tcLetAndDoRequiresImplicitConstructionSequence")) + ignore(GetString("tcTypeAbbreviationsCannotHaveAugmentations")) + ignore(GetString("tcModuleAbbreviationForNamespace")) + ignore(GetString("tcTypeUsedInInvalidWay")) + ignore(GetString("tcMemberUsedInInvalidWay")) + ignore(GetString("tcAttributeAutoOpenWasIgnored")) + ignore(GetString("ilUndefinedValue")) + ignore(GetString("ilLabelNotFound")) + ignore(GetString("ilIncorrectNumberOfTypeArguments")) + ignore(GetString("ilDynamicInvocationNotSupported")) + ignore(GetString("ilAddressOfLiteralFieldIsInvalid")) + ignore(GetString("ilAddressOfValueHereIsInvalid")) + ignore(GetString("ilValuesWithLiteralAttributeCannotBeMutable")) + ignore(GetString("ilValuesWithLiteralAttributeMustBeSimple")) + ignore(GetString("ilCustomMarshallersCannotBeUsedInFSharp")) + ignore(GetString("ilMarshalAsAttributeCannotBeDecoded")) + ignore(GetString("ilSignatureForExternalFunctionContainsTypeParameters")) + ignore(GetString("ilDllImportAttributeCouldNotBeDecoded")) + ignore(GetString("ilLiteralFieldsCannotBeSet")) + ignore(GetString("ilStaticMethodIsNotLambda")) + ignore(GetString("ilMutableVariablesCannotEscapeMethod")) + ignore(GetString("ilUnexpectedUnrealizedValue")) + ignore(GetString("ilMainModuleEmpty")) + ignore(GetString("ilTypeCannotBeUsedForLiteralField")) + ignore(GetString("ilUnexpectedGetSetAnnotation")) + ignore(GetString("ilFieldOffsetAttributeCouldNotBeDecoded")) + ignore(GetString("ilStructLayoutAttributeCouldNotBeDecoded")) + ignore(GetString("ilDefaultAugmentationAttributeCouldNotBeDecoded")) + ignore(GetString("ilReflectedDefinitionsCannotUseSliceOperator")) + ignore(GetString("optsProblemWithCodepage")) + ignore(GetString("optsCopyright")) + ignore(GetString("optsNameOfOutputFile")) + ignore(GetString("optsBuildConsole")) + ignore(GetString("optsBuildWindows")) + ignore(GetString("optsBuildLibrary")) + ignore(GetString("optsBuildModule")) + ignore(GetString("optsDelaySign")) + ignore(GetString("optsWriteXml")) + ignore(GetString("optsStrongKeyFile")) + ignore(GetString("optsStrongKeyContainer")) + ignore(GetString("optsPlatform")) + ignore(GetString("optsNoOpt")) + ignore(GetString("optsNoInterface")) + ignore(GetString("optsSig")) + ignore(GetString("optsReference")) + ignore(GetString("optsWin32res")) + ignore(GetString("optsWin32manifest")) + ignore(GetString("optsNowin32manifest")) + ignore(GetString("optsResource")) + ignore(GetString("optsLinkresource")) + ignore(GetString("optsDebugPM")) + ignore(GetString("optsDebug")) + ignore(GetString("optsOptimize")) + ignore(GetString("optsTailcalls")) + ignore(GetString("optsCrossoptimize")) + ignore(GetString("optsWarnaserrorPM")) + ignore(GetString("optsWarnaserror")) + ignore(GetString("optsWarn")) + ignore(GetString("optsNowarn")) + ignore(GetString("optsWarnOn")) + ignore(GetString("optsChecked")) + ignore(GetString("optsDefine")) + ignore(GetString("optsMlcompatibility")) + ignore(GetString("optsNologo")) + ignore(GetString("optsHelp")) + ignore(GetString("optsCodepage")) + ignore(GetString("optsUtf8output")) + ignore(GetString("optsFullpaths")) + ignore(GetString("optsLib")) + ignore(GetString("optsBaseaddress")) + ignore(GetString("optsNoframework")) + ignore(GetString("optsStandalone")) + ignore(GetString("optsStaticlink")) + ignore(GetString("optsResident")) + ignore(GetString("optsPdb")) + ignore(GetString("optsSimpleresolution")) + ignore(GetString("optsUnrecognizedTarget")) + ignore(GetString("optsUnrecognizedDebugType")) + ignore(GetString("optsInvalidWarningLevel")) + ignore(GetString("optsShortFormOf")) + ignore(GetString("optsClirootDeprecatedMsg")) + ignore(GetString("optsClirootDescription")) + ignore(GetString("optsHelpBannerOutputFiles")) + ignore(GetString("optsHelpBannerInputFiles")) + ignore(GetString("optsHelpBannerResources")) + ignore(GetString("optsHelpBannerCodeGen")) + ignore(GetString("optsHelpBannerAdvanced")) + ignore(GetString("optsHelpBannerMisc")) + ignore(GetString("optsHelpBannerLanguage")) + ignore(GetString("optsHelpBannerErrsAndWarns")) + ignore(GetString("optsUnknownArgumentToTheTestSwitch")) + ignore(GetString("optsUnknownPlatform")) + ignore(GetString("optsInternalNoDescription")) + ignore(GetString("optsDCLONoDescription")) + ignore(GetString("optsDCLODeprecatedSuggestAlternative")) + ignore(GetString("optsDCLOHtmlDoc")) + ignore(GetString("optsConsoleColors")) + ignore(GetString("optsUseHighEntropyVA")) + ignore(GetString("optsSubSystemVersion")) + ignore(GetString("optsInvalidSubSystemVersion")) + ignore(GetString("typeInfoFullName")) + ignore(GetString("typeInfoType")) + ignore(GetString("typeInfoInherits")) + ignore(GetString("typeInfoImplements")) + ignore(GetString("typeInfoOtherOverloads")) + ignore(GetString("typeInfoUnionCase")) + ignore(GetString("typeInfoActivePatternResult")) + ignore(GetString("typeInfoActiveRecognizer")) + ignore(GetString("typeInfoField")) + ignore(GetString("typeInfoEvent")) + ignore(GetString("typeInfoProperty")) + ignore(GetString("typeInfoCustomOperation")) + ignore(GetString("typeInfoArgument")) + ignore(GetString("typeInfoPatternVariable")) + ignore(GetString("typeInfoNamespace")) + ignore(GetString("typeInfoModule")) + ignore(GetString("typeInfoNamespaceOrModule")) + ignore(GetString("typeInfoFromFirst")) + ignore(GetString("typeInfoFromNext")) + ignore(GetString("typeInfoGeneratedProperty")) + ignore(GetString("typeInfoGeneratedType")) + ignore(GetString("assemblyResolutionFoundByAssemblyFoldersKey")) + ignore(GetString("assemblyResolutionFoundByAssemblyFoldersExKey")) + ignore(GetString("assemblyResolutionNetFramework")) + ignore(GetString("assemblyResolutionGAC")) + ignore(GetString("recursiveClassHierarchy")) + ignore(GetString("InvalidRecursiveReferenceToAbstractSlot")) + ignore(GetString("eventHasNonStandardType")) + ignore(GetString("typeIsNotAccessible")) + ignore(GetString("unionCasesAreNotAccessible")) + ignore(GetString("valueIsNotAccessible")) + ignore(GetString("unionCaseIsNotAccessible")) + ignore(GetString("fieldIsNotAccessible")) + ignore(GetString("structOrClassFieldIsNotAccessible")) + ignore(GetString("experimentalConstruct")) + ignore(GetString("noInvokeMethodsFound")) + ignore(GetString("moreThanOneInvokeMethodFound")) + ignore(GetString("delegatesNotAllowedToHaveCurriedSignatures")) + ignore(GetString("tlrUnexpectedTExpr")) + ignore(GetString("tlrLambdaLiftingOptimizationsNotApplied")) + ignore(GetString("lexhlpIdentifiersContainingAtSymbolReserved")) + ignore(GetString("lexhlpIdentifierReserved")) + ignore(GetString("patcMissingVariable")) + ignore(GetString("patcPartialActivePatternsGenerateOneResult")) + ignore(GetString("impTypeRequiredUnavailable")) + ignore(GetString("impReferencedTypeCouldNotBeFoundInAssembly")) + ignore(GetString("impNotEnoughTypeParamsInScopeWhileImporting")) + ignore(GetString("impReferenceToDllRequiredByAssembly")) + ignore(GetString("impImportedAssemblyUsesNotPublicType")) + ignore(GetString("optValueMarkedInlineButIncomplete")) + ignore(GetString("optValueMarkedInlineButWasNotBoundInTheOptEnv")) + ignore(GetString("optLocalValueNotFoundDuringOptimization")) + ignore(GetString("optValueMarkedInlineHasUnexpectedValue")) + ignore(GetString("optValueMarkedInlineCouldNotBeInlined")) + ignore(GetString("optFailedToInlineValue")) + ignore(GetString("optRecursiveValValue")) + ignore(GetString("lexfltIncorrentIndentationOfIn")) + ignore(GetString("lexfltTokenIsOffsideOfContextStartedEarlier")) + ignore(GetString("lexfltSeparatorTokensOfPatternMatchMisaligned")) + ignore(GetString("nrInvalidModuleExprType")) + ignore(GetString("nrTypeInstantiationNeededToDisambiguateTypesWithSameName")) + ignore(GetString("nrTypeInstantiationIsMissingAndCouldNotBeInferred")) + ignore(GetString("nrGlobalUsedOnlyAsFirstName")) + ignore(GetString("nrIsNotConstructorOrLiteral")) + ignore(GetString("nrUnexpectedEmptyLongId")) + ignore(GetString("nrTypeDoesNotContainSuchField")) + ignore(GetString("nrInvalidFieldLabel")) + ignore(GetString("nrInvalidExpression")) + ignore(GetString("nrNoConstructorsAvailableForType")) + ignore(GetString("ilwriteErrorCreatingPdb")) + ignore(GetString("lexOutsideIntegerRange")) + ignore(GetString("lexCharNotAllowedInOperatorNames")) + ignore(GetString("lexUnexpectedChar")) + ignore(GetString("lexByteArrayCannotEncode")) + ignore(GetString("lexIdentEndInMarkReserved")) + ignore(GetString("lexOutsideEightBitSigned")) + ignore(GetString("lexOutsideEightBitSignedHex")) + ignore(GetString("lexOutsideEightBitUnsigned")) + ignore(GetString("lexOutsideSixteenBitSigned")) + ignore(GetString("lexOutsideSixteenBitUnsigned")) + ignore(GetString("lexOutsideThirtyTwoBitSigned")) + ignore(GetString("lexOutsideThirtyTwoBitUnsigned")) + ignore(GetString("lexOutsideSixtyFourBitSigned")) + ignore(GetString("lexOutsideSixtyFourBitUnsigned")) + ignore(GetString("lexOutsideNativeSigned")) + ignore(GetString("lexOutsideNativeUnsigned")) + ignore(GetString("lexInvalidFloat")) + ignore(GetString("lexOusideDecimal")) + ignore(GetString("lexOusideThirtyTwoBitFloat")) + ignore(GetString("lexInvalidNumericLiteral")) + ignore(GetString("lexInvalidByteLiteral")) + ignore(GetString("lexInvalidCharLiteral")) + ignore(GetString("lexThisUnicodeOnlyInStringLiterals")) + ignore(GetString("lexTokenReserved")) + ignore(GetString("lexTabsNotAllowed")) + ignore(GetString("lexInvalidLineNumber")) + ignore(GetString("lexHashIfMustBeFirst")) + ignore(GetString("lexHashElseNoMatchingIf")) + ignore(GetString("lexHashEndifRequiredForElse")) + ignore(GetString("lexHashElseMustBeFirst")) + ignore(GetString("lexHashEndingNoMatchingIf")) + ignore(GetString("lexHashEndifMustBeFirst")) + ignore(GetString("lexHashIfMustHaveIdent")) + ignore(GetString("lexWrongNestedHashEndif")) + ignore(GetString("lexExpectedSingleLineComment")) + ignore(GetString("memberOperatorDefinitionWithNoArguments")) + ignore(GetString("memberOperatorDefinitionWithNonPairArgument")) + ignore(GetString("memberOperatorDefinitionWithCurriedArguments")) + ignore(GetString("tcFSharpCoreRequiresExplicit")) + ignore(GetString("tcStructuralComparisonNotSatisfied1")) + ignore(GetString("tcStructuralComparisonNotSatisfied2")) + ignore(GetString("tcNoComparisonNeeded1")) + ignore(GetString("tcNoComparisonNeeded2")) + ignore(GetString("tcNoEqualityNeeded1")) + ignore(GetString("tcNoEqualityNeeded2")) + ignore(GetString("tcStructuralEqualityNotSatisfied1")) + ignore(GetString("tcStructuralEqualityNotSatisfied2")) + ignore(GetString("tcStructsMustDeclareTypesOfImplicitCtorArgsExplicitly")) + ignore(GetString("chkUnusedValue")) + ignore(GetString("chkUnusedThisVariable")) + ignore(GetString("parsGetterAtMostOneArgument")) + ignore(GetString("parsSetterAtMostTwoArguments")) + ignore(GetString("parsInvalidProperty")) + ignore(GetString("parsIndexerPropertyRequiresAtLeastOneArgument")) + ignore(GetString("tastInvalidAddressOfMutableAcrossAssemblyBoundary")) + ignore(GetString("parsNonAdjacentTypars")) + ignore(GetString("parsNonAdjacentTyargs")) + ignore(GetString("parsNonAtomicType")) + ignore(GetString("tastUndefinedTyconItemField")) + ignore(GetString("tastUndefinedTyconItemUnionCase")) + ignore(GetString("tastUndefinedItemRefModuleNamespace")) + ignore(GetString("tastUndefinedItemRefVal")) + ignore(GetString("tastUndefinedItemRefModuleNamespaceType")) + ignore(GetString("tcInvalidUseNullAsTrueValue")) + ignore(GetString("tcParameterInferredByref")) + ignore(GetString("tcNonUniformMemberUse")) + ignore(GetString("tcNamedArgumentsCannotBeUsedInUnionCaseConstructions")) + ignore(GetString("tcAttribArgsDiffer")) + ignore(GetString("tcCannotCallAbstractBaseMember")) + ignore(GetString("typrelCannotResolveAmbiguityInUnmanaged")) + ignore(GetString("mlCompatMessage")) + ignore(GetString("ilFieldDoesNotHaveValidOffsetForStructureLayout")) + ignore(GetString("tcInterfacesShouldUseInheritNotInterface")) + ignore(GetString("parsInvalidPrefixOperator")) + ignore(GetString("parsInvalidPrefixOperatorDefinition")) + ignore(GetString("buildCompilingExtensionIsForML")) + ignore(GetString("lexIndentOffForML")) + ignore(GetString("activePatternIdentIsNotFunctionTyped")) + ignore(GetString("activePatternChoiceHasFreeTypars")) + ignore(GetString("ilFieldHasOffsetForSequentialLayout")) + ignore(GetString("tcOptionalArgsMustComeAfterNonOptionalArgs")) + ignore(GetString("tcConditionalAttributeUsage")) + ignore(GetString("tcMemberOperatorDefinitionInExtrinsic")) + ignore(GetString("ilwriteMDBFileNameCannotBeChangedWarning")) + ignore(GetString("ilwriteMDBMemberMissing")) + ignore(GetString("ilwriteErrorCreatingMdb")) + ignore(GetString("tcUnionCaseNameConflictsWithGeneratedType")) + ignore(GetString("chkNoReflectedDefinitionOnStructMember")) + ignore(GetString("tcDllImportNotAllowed")) + ignore(GetString("buildExplicitCoreLibRequiresNoFramework")) + ignore(GetString("buildExpectedSigdataFile")) + ignore(GetString("buildDidNotExpectOptDataResource")) + ignore(GetString("buildExpectedFileAlongSideFSharpCore")) + ignore(GetString("buildDidNotExpectSigdataResource")) + ignore(GetString("buildUnexpectedFileNameCharacter")) + ignore(GetString("tcInvalidUseBangBinding")) + ignore(GetString("crefNoInnerGenericsInQuotations")) + ignore(GetString("tcEnumTypeCannotBeEnumerated")) + ignore(GetString("parsEofInTripleQuoteString")) + ignore(GetString("parsEofInTripleQuoteStringInComment")) + ignore(GetString("tcTypeTestLosesMeasures")) + ignore(GetString("parsMissingTypeArgs")) + ignore(GetString("parsMissingGreaterThan")) + ignore(GetString("parsUnexpectedQuotationOperatorInTypeAliasDidYouMeanVerbatimString")) + ignore(GetString("parsErrorParsingAsOperatorName")) + ignore(GetString("fscTooManyErrors")) + ignore(GetString("docfileNoXmlSuffix")) + ignore(GetString("fscNoImplementationFiles")) + ignore(GetString("fscBadAssemblyVersion")) + ignore(GetString("fscTwoResourceManifests")) + ignore(GetString("fscQuotationLiteralsStaticLinking")) + ignore(GetString("fscQuotationLiteralsStaticLinking0")) + ignore(GetString("fscStaticLinkingNoEXE")) + ignore(GetString("fscStaticLinkingNoMixedDLL")) + ignore(GetString("fscIgnoringMixedWhenLinking")) + ignore(GetString("fscAssumeStaticLinkContainsNoDependencies")) + ignore(GetString("fscAssemblyNotFoundInDependencySet")) + ignore(GetString("fscKeyFileCouldNotBeOpened")) + ignore(GetString("fscProblemWritingBinary")) + ignore(GetString("fscAssemblyVersionAttributeIgnored")) + ignore(GetString("fscAssemblyCultureAttributeError")) + ignore(GetString("fscDelaySignWarning")) + ignore(GetString("fscKeyFileWarning")) + ignore(GetString("fscKeyNameWarning")) + ignore(GetString("fscReferenceOnCommandLine")) + ignore(GetString("fscRemotingError")) + ignore(GetString("pathIsInvalid")) + ignore(GetString("fscResxSourceFileDeprecated")) + ignore(GetString("etIllegalCharactersInNamespaceName")) + ignore(GetString("etNullOrEmptyMemberName")) + ignore(GetString("etNullMember")) + ignore(GetString("etNullMemberDeclaringType")) + ignore(GetString("etNullMemberDeclaringTypeDifferentFromProvidedType")) + ignore(GetString("etHostingAssemblyFoundWithoutHosts")) + ignore(GetString("etEmptyNamespaceOfTypeNotAllowed")) + ignore(GetString("etEmptyNamespaceNotAllowed")) + ignore(GetString("etMustNotBeGeneric")) + ignore(GetString("etMustNotBeAnArray")) + ignore(GetString("etMethodHasRequirements")) + ignore(GetString("etUnsupportedMemberKind")) + ignore(GetString("etPropertyCanReadButHasNoGetter")) + ignore(GetString("etPropertyHasGetterButNoCanRead")) + ignore(GetString("etPropertyCanWriteButHasNoSetter")) + ignore(GetString("etPropertyHasSetterButNoCanWrite")) + ignore(GetString("etOneOrMoreErrorsSeenDuringExtensionTypeSetting")) + ignore(GetString("etUnexpectedExceptionFromProvidedTypeMember")) + ignore(GetString("etUnsupportedConstantType")) + ignore(GetString("etUnsupportedProvidedExpression")) + ignore(GetString("etProvidedTypeHasUnexpectedName")) + ignore(GetString("etEventNoAdd")) + ignore(GetString("etEventNoRemove")) + ignore(GetString("etProviderHasWrongDesignerAssembly")) + ignore(GetString("etProviderDoesNotHaveValidConstructor")) + ignore(GetString("etProviderError")) + ignore(GetString("etIncorrectParameterExpression")) + ignore(GetString("etIncorrectProvidedMethod")) + ignore(GetString("etIncorrectProvidedConstructor")) + ignore(GetString("etDirectReferenceToGeneratedTypeNotAllowed")) + ignore(GetString("etProvidedTypeHasUnexpectedPath")) + ignore(GetString("etUnexpectedNullFromProvidedTypeMember")) + ignore(GetString("etUnexpectedExceptionFromProvidedMemberMember")) + ignore(GetString("etNestedProvidedTypesDoNotTakeStaticArgumentsOrGenericParameters")) + ignore(GetString("etInvalidStaticArgument")) + ignore(GetString("etErrorApplyingStaticArgumentsToType")) + ignore(GetString("etUnknownStaticArgumentKind")) + ignore(GetString("invalidNamespaceForProvidedType")) + ignore(GetString("invalidFullNameForProvidedType")) + ignore(GetString("etProviderReturnedNull")) + ignore(GetString("etTypeProviderConstructorException")) + ignore(GetString("etNullProvidedExpression")) + ignore(GetString("etProvidedAppliedTypeHadWrongName")) + ignore(GetString("tcTypeTestLossy")) + ignore(GetString("tcTypeCastErased")) + ignore(GetString("tcTypeTestErased")) + ignore(GetString("tcCannotInheritFromErasedType")) + ignore(GetString("etInvalidTypeProviderAssemblyName")) + ignore(GetString("tcInvalidMemberNameCtor")) + ignore(GetString("tcInferredGenericTypeGivesRiseToInconsistency")) + ignore(GetString("tcInvalidTypeArgumentCount")) + ignore(GetString("tcCannotOverrideSealedMethod")) + ignore(GetString("etProviderErrorWithContext")) + ignore(GetString("etProvidedTypeWithNameException")) + ignore(GetString("etProvidedTypeWithNullOrEmptyName")) + ignore(GetString("etIllegalCharactersInTypeName")) + ignore(GetString("tcJoinMustUseSimplePattern")) + ignore(GetString("tcMissingCustomOperation")) + ignore(GetString("etBadUnnamedStaticArgs")) + ignore(GetString("etStaticParameterRequiresAValue")) + ignore(GetString("etNoStaticParameterWithName")) + ignore(GetString("etStaticParameterAlreadyHasValue")) + ignore(GetString("etMultipleStaticParameterWithName")) + ignore(GetString("tcCustomOperationMayNotBeUsedInConjunctionWithNonSimpleLetBindings")) + ignore(GetString("tcCustomOperationMayNotBeUsedHere")) + ignore(GetString("tcCustomOperationMayNotBeOverloaded")) + ignore(GetString("tcTryFinallyMayNotBeUsedWithCustomOperators")) + ignore(GetString("tcTryWithMayNotBeUsedWithCustomOperators")) + ignore(GetString("tcIfThenElseMayNotBeUsedWithCustomOperators")) + ignore(GetString("ilxgenUnexpectedArgumentToMethodHandleOfDuringCodegen")) + ignore(GetString("etProvidedTypeReferenceMissingArgument")) + ignore(GetString("etProvidedTypeReferenceInvalidText")) + ignore(GetString("tcCustomOperationNotUsedCorrectly")) + ignore(GetString("tcCustomOperationNotUsedCorrectly2")) + ignore(GetString("customOperationTextLikeJoin")) + ignore(GetString("customOperationTextLikeGroupJoin")) + ignore(GetString("customOperationTextLikeZip")) + ignore(GetString("tcBinaryOperatorRequiresVariable")) + ignore(GetString("tcOperatorIncorrectSyntax")) + ignore(GetString("tcBinaryOperatorRequiresBody")) + ignore(GetString("tcCustomOperationHasIncorrectArgCount")) + ignore(GetString("parsExpectedExpressionAfterToken")) + ignore(GetString("parsExpectedTypeAfterToken")) + ignore(GetString("parsUnmatchedLBrackLess")) + ignore(GetString("parsUnexpectedEndOfFileMatch")) + ignore(GetString("parsUnexpectedEndOfFileTry")) + ignore(GetString("parsUnexpectedEndOfFileWhile")) + ignore(GetString("parsUnexpectedEndOfFileFor")) + ignore(GetString("parsUnexpectedEndOfFileWith")) + ignore(GetString("parsUnexpectedEndOfFileThen")) + ignore(GetString("parsUnexpectedEndOfFileElse")) + ignore(GetString("parsUnexpectedEndOfFileFunBody")) + ignore(GetString("parsUnexpectedEndOfFileTypeArgs")) + ignore(GetString("parsUnexpectedEndOfFileTypeSignature")) + ignore(GetString("parsUnexpectedEndOfFileTypeDefinition")) + ignore(GetString("parsUnexpectedEndOfFileObjectMembers")) + ignore(GetString("parsUnexpectedEndOfFileDefinition")) + ignore(GetString("parsUnexpectedEndOfFileExpression")) + ignore(GetString("parsExpectedNameAfterToken")) + ignore(GetString("parsUnmatchedLet")) + ignore(GetString("parsUnmatchedLetBang")) + ignore(GetString("parsUnmatchedUseBang")) + ignore(GetString("parsUnmatchedUse")) + ignore(GetString("parsWhileDoExpected")) + ignore(GetString("parsForDoExpected")) + ignore(GetString("tcInvalidRelationInJoin")) + ignore(GetString("typeInfoCallsWord")) + ignore(GetString("impInvalidNumberOfGenericArguments")) + ignore(GetString("impInvalidMeasureArgument1")) + ignore(GetString("impInvalidMeasureArgument2")) + ignore(GetString("etPropertyNeedsCanWriteOrCanRead")) + ignore(GetString("tcIntoNeedsRestOfQuery")) + ignore(GetString("tcOperatorDoesntAcceptInto")) + ignore(GetString("tcCustomOperationInvalid")) + ignore(GetString("tcThisTypeMayNotHaveACLIMutableAttribute")) + ignore(GetString("tcAutoPropertyRequiresImplicitConstructionSequence")) + ignore(GetString("parsMutableOnAutoPropertyShouldBeGetSet")) + ignore(GetString("parsMutableOnAutoPropertyShouldBeGetSetNotJustSet")) + ignore(GetString("chkNoByrefsOfByrefs")) + ignore(GetString("etTypeProviderNotApproved")) + ignore(GetString("tastopsMaxArrayFour")) + ignore(GetString("tcNoIntegerForLoopInQuery")) + ignore(GetString("tcNoWhileInQuery")) + ignore(GetString("tcNoTryFinallyInQuery")) + ignore(GetString("tcUseMayNotBeUsedInQueries")) + ignore(GetString("tcBindMayNotBeUsedInQueries")) + ignore(GetString("tcReturnMayNotBeUsedInQueries")) + ignore(GetString("tcUnrecognizedQueryOperator")) + ignore(GetString("tcTryWithMayNotBeUsedInQueries")) + ignore(GetString("tcNonSimpleLetBindingInQuery")) + ignore(GetString("etTooManyStaticParameters")) + ignore(GetString("infosInvalidProvidedLiteralValue")) + ignore(GetString("invalidPlatformTarget")) + ignore(GetString("tcThisValueMayNotBeInlined")) + ignore(GetString("etErasedTypeUsedInGeneration")) + ignore(GetString("tcUnrecognizedQueryBinaryOperator")) + ignore(GetString("invalidPlatformTargetForOldFramework")) + ignore(GetString("crefNoSetOfHole")) + ignore(GetString("nicePrintOtherOverloads1")) + ignore(GetString("nicePrintOtherOverloadsN")) + ignore(GetString("erasedTo")) + ignore(GetString("parsUnfinishedExpression")) + ignore(GetString("crefQuotationsCantContainByrefTypes")) + ignore(GetString("parsAttributeOnIncompleteCode")) + ignore(GetString("parsTypeNameCannotBeEmpty")) + ignore(GetString("buildProblemReadingAssembly")) + ignore(GetString("tcTPFieldMustBeLiteral")) + ignore(GetString("loadingDescription")) + ignore(GetString("descriptionUnavailable")) + ignore(GetString("chkTyparMultipleClassConstraints")) + ignore(GetString("tcMatchMayNotBeUsedWithQuery")) + ignore(GetString("memberOperatorDefinitionWithNonTripleArgument")) + ignore(GetString("cannotResolveNullableOperators")) + ignore(GetString("tcOperatorRequiresIn")) + ignore(GetString("parsIllegalMemberVarInObjectImplementation")) + ignore(GetString("tcEmptyCopyAndUpdateRecordInvalid")) + ignore(GetString("parsUnderscoreInvalidFieldName")) + ignore(GetString("tcGeneratedTypesShouldBeInternalOrPrivate")) + ignore(GetString("chkGetterAndSetterHaveSamePropertyType")) + ignore(GetString("tcRuntimeSuppliedMethodCannotBeUsedInUserCode")) + () diff --git a/src/fsharp/FSharp.AbsIL/FSComp.resx b/src/fsharp/FSharp.AbsIL/FSComp.resx new file mode 100644 index 0000000..6c14d26 --- /dev/null +++ b/src/fsharp/FSharp.AbsIL/FSComp.resx @@ -0,0 +1,3819 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The namespace '{0}' is not defined + + + The namespace or module '{0}' is not defined + + + The field, constructor or member '{0}' is not defined + + + The value, constructor, namespace or type '{0}' is not defined + + + The value or constructor '{0}' is not defined + + + The value, namespace, type or module '{0}' is not defined + + + The constructor, module or namespace '{0}' is not defined + + + The type '{0}' is not defined + + + The record label or namespace '{0}' is not defined + + + The record label '{0}' is not defined + + + The type parameter '{0}' is not defined + + + The pattern discriminator '{0}' is not defined + + + The non-generic type '{0}' does not expect any type arguments, but here is given {1} type argument(s) + + + Invalid warning number '{0}' + + + Invalid version string '{0}' + + + Invalid version file '{0}' + + + F# Compiler for F# 3.0 {0} + + + Problem with filename '{0}': {1} + + + No inputs specified + + + The output name extension doesn't match the options used. If '-a' or '--target:library' is used the output file name must end with '.dll', if '--target:module' is used the output extension must be '.netmodule', otherwise '.exe'. + + + The '--pdb' option requires the '--debug' option to be used + + + The search directory '{0}' is invalid + + + The search directory '{0}' could not be found + + + '{0}' is not a valid filename + + + '{0}' is not a valid assembly name + + + Unrecognized privacy setting '{0}' for managed resource, valid options are 'public' and 'private' + + + Multiple references to '{0}.dll' are not permitted + + + The file '{0}' is a CLI 1.x version of mscorlib. F# requires CLI version 2.0 or greater. + + + Could not read version from mscorlib.dll + + + The referenced or default base CLI library 'mscorlib' is binary-incompatible with the referenced library '{0}'. Consider recompiling the library or making an explicit reference to a version of this library that matches the CLI version you are using. + + + Unable to read assembly '{0}' + + + The referenced or default base CLI library 'mscorlib' is binary-incompatible with the referenced F# core library '{0}'. Consider recompiling the library or making an explicit reference to a version of this library that matches the CLI version you are using. + + + Assembly resolution failure at or near this location + + + The declarations in this file will be placed in an implicit module '{0}' based on the file name '{1}'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file. + + + Files in libraries or multiple-file applications must begin with a namespace or module declaration, e.g. 'namespace SomeNamespace.SubNamespace' or 'module SomeNamespace.SomeModule' + + + This file contains multiple declarations of the form 'module SomeNamespace.SomeModule'. Only one declaration of this form is permitted in a file. Change your file to use an initial namespace declaration and/or use 'module ModuleName = ...' to define your modules. + + + ParseInput: unknown file suffix for '{0}' + + + Option requires parameter: {0} + + + Source file '{0}' could not be found + + + The file extension of '{0}' is not recognized. Source files must have extension .fs, .fsi, .fsx, .fsscript, .ml or .mli. + + + Could not resolve assembly '{0}' + + + Could not resolve assembly '{0}' required by '{1}' + + + Error opening binary file '{0}': {1} + + + The F#-compiled DLL '{0}' needs to be recompiled to be used with this version of F# + + + Invalid directive. Expected '#I \"<path>\"'. + + + Invalid directive. Expected '#r \"<file-or-assembly>\"'. + + + Invalid directive. Expected '#load \"<file>\" ... \"<file>\"'. + + + Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'. + + + Directives inside modules are ignored + + + A signature for the file or module '{0}' has already been specified + + + An implementation of file or module '{0}' has already been given. Compilation order is significant in F# because of type inference. You may need to adjust the order of your files to place the signature file before the implementation. In Visual Studio files are type-checked in the order they appear in the project file, which can be edited manually or adjusted using the solution explorer. + + + An implementation of the file or module '{0}' has already been given + + + The signature file '{0}' does not have a corresponding implementation file. If an implementation file exists then check the 'module' and 'namespace' declarations in the signature and implementation files match. + + + '{0}' is not a valid integer argument + + + '{0}' is not a valid floating point argument + + + Unrecognized option: '{0}' + + + Invalid module or namespace name + + + Error reading/writing metadata for the F# compiled DLL '{0}'. Was the DLL compiled with an earlier version of the F# compiler? (error: '{1}'). + + + The type/module '{0}' is not a concrete module or type + + + The type '{0}' has an inline assembly code representation + + + A namespace and a module named '{0}' both occur in two parts of this assembly + + + Two modules named '{0}' occur in two parts of this assembly + + + Two type definitions named '{0}' occur in namespace '{1}' in two parts of this assembly + + + A module and a type definition named '{0}' occur in namespace '{1}' in two parts of this assembly + + + Invalid member signature encountered because of an earlier error + + + This value does not have a valid property setter type + + + Invalid form for a property getter. At least one '()' argument is required when using the explicit syntax. + + + Invalid form for a property setter. At least one argument is required. + + + Unexpected use of a byref-typed variable + + + A value must be mutable in order to mutate the contents or take the address of a value type, e.g. 'let mutable x = ...' + + + Invalid mutation of a constant expression. Consider copying the expression to a mutable local, e.g. 'let mutable x = ...'. + + + The value has been copied to ensure the original is not mutated by this operation + + + Recursively defined values cannot appear directly as part of the construction of a tuple value within a recursive binding + + + Recursive values cannot appear directly as a construction of the type '{0}' within a recursive binding. This feature has been removed from the F# language. Consider using a record instead. + + + Recursive values cannot be directly assigned to the non-mutable field '{0}' of the type '{1}' within a recursive binding. Consider using a mutable field instead. + + + Unexpected decode of AutoOpenAttribute + + + Unexpected decode of InternalsVisibleToAttribute + + + Unexpected decode of InterfaceDataVersionAttribute + + + Active patterns cannot return more than 7 possibilities + + + This constant cannot be used as a custom attribute value + + + This is not a constant expression or valid custom attribute value + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe mutability attributes differ + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe names differ + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe compiled names differ + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe display names differ + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe accessibility specified in the signature is more than that specified in the implementation + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe inline flags differ + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe literal constant values and/or attributes differ + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is a type function and the other is not. The signature requires explicit type parameters if they are present in the implementation. + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe respective type parameter counts differ + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe types differ + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is an extension member and the other is not + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nAn arity was not inferred for this value + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe number of generic parameters in the signature and implementation differ (the signature declares {3} but the implementation declares {4} + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe generic parameters in the signature and implementation have different kinds. Perhaps there is a missing [<Measure>] attribute. + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe arities in the signature and implementation differ. The signature specifies that '{3}' is function definition or lambda expression accepting at least {4} argument(s), but the implementation is a computed function value. To declare that a computed function value is a permitted implementation simply parenthesize its type in the signature, e.g.\n\tval {5}: int -> (int -> int)\ninstead of\n\tval {6}: int -> int -> int. + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe CLI member names differ + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is static and the other isn't + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is virtual and the other isn't + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is abstract and the other isn't + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is final and the other isn't + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is marked as an override and the other isn't + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is a constructor/property and the other is not + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe compiled representation of this method is as a static member but the signature indicates its compiled representation is as an instance member + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe compiled representation of this method is as an instance member, but the signature indicates its compiled representation is as a static member + + + The {0} definitions in the signature and implementation are not compatible because the names differ + + + The {0} definitions in the signature and implementation are not compatible because the respective type parameter counts differ + + + The {0} definitions in the signature and implementation are not compatible because the accessibility specified in the signature is more than that specified in the implementation + + + The {0} definitions in the signature and implementation are not compatible because the signature requires that the type supports the interface {1} but the interface has not been implemented + + + The {0} definitions in the signature and implementation are not compatible because the implementation says this type may use nulls as a representation but the signature does not + + + The {0} definitions in the signature and implementation are not compatible because the implementation says this type may use nulls as an extra value but the signature does not + + + The {0} definitions in the signature and implementation are not compatible because the signature says this type may use nulls as a representation but the implementation does not + + + The {0} definitions in the signature and implementation are not compatible because the signature says this type may use nulls as an extra value but the implementation does not + + + The {0} definitions in the signature and implementation are not compatible because the implementation type is sealed but the signature implies it is not. Consider adding the [<Sealed>] attribute to the signature. + + + The {0} definitions in the signature and implementation are not compatible because the implementation type is not sealed but signature implies it is. Consider adding the [<Sealed>] attribute to the implementation. + + + The {0} definitions in the signature and implementation are not compatible because the implementation is an abstract class but the signature is not. Consider adding the [<AbstractClass>] attribute to the signature. + + + The {0} definitions in the signature and implementation are not compatible because the signature is an abstract class but the implementation is not. Consider adding the [<AbstractClass>] attribute to the implementation. + + + The {0} definitions in the signature and implementation are not compatible because the types have different base types + + + The {0} definitions in the signature and implementation are not compatible because the number of {1}s differ + + + The {0} definitions in the signature and implementation are not compatible because the signature defines the {1} '{2}' but the implementation does not (or does, but not in the same order) + + + The {0} definitions in the signature and implementation are not compatible because the implementation defines the {1} '{2}' but the signature does not (or does, but not in the same order) + + + The {0} definitions in the signature and implementation are not compatible because the implementation defines a struct but the signature defines a type with a hidden representation + + + The {0} definitions in the signature and implementation are not compatible because a CLI type representation is being hidden by a signature + + + The {0} definitions in the signature and implementation are not compatible because a type representation is being hidden by a signature + + + The {0} definitions in the signature and implementation are not compatible because the types are of different kinds + + + The {0} definitions in the signature and implementation are not compatible because the IL representations differ + + + The {0} definitions in the signature and implementation are not compatible because the representations differ + + + The {0} definitions in the signature and implementation are not compatible because the field {1} was present in the implementation but not in the signature + + + The {0} definitions in the signature and implementation are not compatible because the order of the fields is different in the signature and implementation + + + The {0} definitions in the signature and implementation are not compatible because the field {1} was required by the signature but was not specified by the implementation + + + The {0} definitions in the signature and implementation are not compatible because the field '{1}' was present in the implementation but not in the signature. Struct types must now reveal their fields in the signature for the type, though the fields may still be labelled 'private' or 'internal'. + + + The {0} definitions in the signature and implementation are not compatible because the abstract member '{1}' was required by the signature but was not specified by the implementation + + + The {0} definitions in the signature and implementation are not compatible because the abstract member '{1}' was present in the implementation but not in the signature + + + The {0} definitions in the signature and implementation are not compatible because the signature declares a {1} while the implementation declares a {2} + + + The {0} definitions in the signature and implementation are not compatible because the abbreviations differ: {1} versus {2} + + + The {0} definitions in the signature and implementation are not compatible because an abbreviation is being hidden by a signature. The abbreviation must be visible to other CLI languages. Consider making the abbreviation visible in the signature. + + + The {0} definitions in the signature and implementation are not compatible because the signature has an abbreviation while the implementation does not + + + The module contains the constructor\n {0} \nbut its signature specifies\n {1} \nThe names differ + + + The module contains the constructor\n {0} \nbut its signature specifies\n {1} \nThe respective number of data fields differ + + + The module contains the constructor\n {0} \nbut its signature specifies\n {1} \nThe types of the fields differ + + + The module contains the constructor\n {0} \nbut its signature specifies\n {1} \nthe accessibility specified in the signature is more than that specified in the implementation + + + The module contains the field\n {0} \nbut its signature specifies\n {1} \nThe names differ + + + The module contains the field\n {0} \nbut its signature specifies\n {1} \nthe accessibility specified in the signature is more than that specified in the implementation + + + The module contains the field\n {0} \nbut its signature specifies\n {1} \nThe 'static' modifiers differ + + + The module contains the field\n {0} \nbut its signature specifies\n {1} \nThe 'mutable' modifiers differ + + + The module contains the field\n {0} \nbut its signature specifies\n {1} \nThe 'literal' modifiers differ + + + The module contains the field\n {0} \nbut its signature specifies\n {1} \nThe types differ + + + The implicit instantiation of a generic construct at or near this point could not be resolved because it could resolve to multiple unrelated types, e.g. '{0}' and '{1}'. Consider using type annotations to resolve the ambiguity + + + Could not resolve the ambiguity inherent in the use of the operator '{0}' at or near this program point. Consider using type annotations to resolve the ambiguity. + + + Could not resolve the ambiguity inherent in the use of a 'printf'-style format string + + + Could not resolve the ambiguity in the use of a generic construct with an 'enum' constraint at or near this position + + + Could not resolve the ambiguity in the use of a generic construct with a 'delegate' constraint at or near this position + + + Invalid value + + + The signature and implementation are not compatible because the respective type parameter counts differ + + + The signature and implementation are not compatible because the type parameter in the class/signature has a different compile-time requirement to the one in the member/implementation + + + The signature and implementation are not compatible because the declaration of the type parameter '{0}' requires a constraint of the form {1} + + + The signature and implementation are not compatible because the type parameter '{0}' has a constraint of the form {1} but the implementation does not. Either remove this constraint from the signature or add it to the implementation. + + + The type '{0}' implements 'System.IComparable'. Consider also adding an explicit override for 'Object.Equals' + + + The type '{0}' implements 'System.IComparable' explicitly but provides no corresponding override for 'Object.Equals'. An implementation of 'Object.Equals' has been automatically provided, implemented via 'System.IComparable'. Consider implementing the override 'Object.Equals' explicitly + + + The struct, record or union type '{0}' has an explicit implementation of 'Object.GetHashCode' or 'Object.Equals'. You must apply the 'CustomEquality' attribute to the type + + + The struct, record or union type '{0}' has an explicit implementation of 'Object.GetHashCode'. Consider implementing a matching override for 'Object.Equals(obj)' + + + The struct, record or union type '{0}' has an explicit implementation of 'Object.Equals'. Consider implementing a matching override for 'Object.GetHashCode()' + + + The exception definitions are not compatible because a CLI exception mapping is being hidden by a signature. The exception mapping must be visible to other modules. The module contains the exception definition\n {0} \nbut its signature specifies\n\t{1} + + + The exception definitions are not compatible because the CLI representations differ. The module contains the exception definition\n {0} \nbut its signature specifies\n\t{1} + + + The exception definitions are not compatible because the exception abbreviation is being hidden by the signature. The abbreviation must be visible to other CLI languages. Consider making the abbreviation visible in the signature. The module contains the exception definition\n {0} \nbut its signature specifies\n\t{1}. + + + The exception definitions are not compatible because the exception abbreviations in the signature and implementation differ. The module contains the exception definition\n {0} \nbut its signature specifies\n\t{1}. + + + The exception definitions are not compatible because the exception declarations differ. The module contains the exception definition\n {0} \nbut its signature specifies\n\t{1}. + + + The exception definitions are not compatible because the field '{0}' was required by the signature but was not specified by the implementation. The module contains the exception definition\n {1} \nbut its signature specifies\n\t{2}. + + + The exception definitions are not compatible because the field '{0}' was present in the implementation but not in the signature. The module contains the exception definition\n {1} \nbut its signature specifies\n\t{2}. + + + The exception definitions are not compatible because the order of the fields is different in the signature and implementation. The module contains the exception definition\n {0} \nbut its signature specifies\n\t{1}. + + + The namespace or module attributes differ between signature and implementation + + + This method is over-constrained in its type parameters + + + No implementations of '{0}' had the correct number of arguments and type parameters. The required signature is '{1}'. + + + The override for '{0}' was ambiguous + + + More than one override implements '{0}' + + + The method '{0}' is sealed and cannot be overridden + + + The override '{0}' implements more than one abstract slot, e.g. '{1}' and '{2}' + + + Duplicate or redundant interface + + + The interface '{0}' is included in multiple explicitly implemented interface types. Add an explicit implementation of this interface. + + + A named argument has been assigned more than one value + + + No implementation was given for '{0}' + + + No implementation was given for '{0}'. Note that all interface members must be implemented and listed under an appropriate 'interface' declaration, e.g. 'interface ... with member ...'. + + + The member '{0}' does not have the correct number of arguments. The required signature is '{1}'. + + + The member '{0}' does not have the correct number of method type parameters. The required signature is '{1}'. + + + The member '{0}' does not have the correct kinds of generic parameters. The required signature is '{1}'. + + + The member '{0}' cannot be used to implement '{1}'. The required signature is '{2}'. + + + Error while parsing embedded IL + + + Error while parsing embedded IL type + + + This indexer notation has been removed from the F# language + + + Invalid expression on left of assignment + + + The 'ReferenceEquality' attribute cannot be used on structs. Consider using the 'StructuralEquality' attribute instead, or implement an override for 'System.Object.Equals(obj)'. + + + This type uses an invalid mix of the attributes 'NoEquality', 'ReferenceEquality', 'StructuralEquality', 'NoComparison' and 'StructuralComparison' attributes + + + The 'NoEquality' attribute must be used in conjunction with the 'NoComparison' attribute + + + The 'StructuralComparison' attribute must be used in conjunction with the 'StructuralEquality' attribute + + + The 'StructuralEquality' attribute must be used in conjunction with the 'NoComparison' or 'StructuralComparison' attributes + + + A type cannot have both the 'ReferenceEquality' and 'StructuralEquality' or 'StructuralComparison' attributes + + + Only record, union, exception and struct types may be augmented with the 'ReferenceEquality', 'StructuralEquality' and 'StructuralComparison' attributes + + + A type with attribute 'ReferenceEquality' cannot have an explicit implementation of 'Object.Equals(obj)', 'System.IEquatable<_>' or 'System.Collections.IStructuralEquatable' + + + A type with attribute 'CustomEquality' must have an explicit implementation of at least one of 'Object.Equals(obj)', 'System.IEquatable<_>' or 'System.Collections.IStructuralEquatable' + + + A type with attribute 'CustomComparison' must have an explicit implementation of at least one of 'System.IComparable' or 'System.Collections.IStructuralComparable' + + + A type with attribute 'NoEquality' should not usually have an explicit implementation of 'Object.Equals(obj)'. Disable this warning if this is intentional for interoperability purposes + + + A type with attribute 'NoComparison' should not usually have an explicit implementation of 'System.IComparable', 'System.IComparable<_>' or 'System.Collections.IStructuralComparable'. Disable this warning if this is intentional for interoperability purposes + + + The 'CustomEquality' attribute must be used in conjunction with the 'NoComparison' or 'CustomComparison' attributes + + + Positional specifiers are not permitted in format strings + + + Missing format specifier + + + '{0}' flag set twice + + + Prefix flag (' ' or '+') set twice + + + The # formatting modifier is invalid in F# + + + Bad precision in format specifier + + + Bad width in format specifier + + + '{0}' format does not support '0' flag + + + Precision missing after the '.' + + + '{0}' format does not support precision + + + Bad format specifier (after l or L): Expected ld,li,lo,lu,lx or lX. In F# code you can use %d, %x, %o or %u instead, which are overloaded to work with all basic integer types. + + + The 'l' or 'L' in this format specifier is unnecessary. In F# code you can use %d, %x, %o or %u instead, which are overloaded to work with all basic integer types. + + + The 'h' or 'H' in this format specifier is unnecessary. You can use %d, %x, %o or %u instead, which are overloaded to work with all basic integer types.. + + + '{0}' does not support prefix '{1}' flag + + + Bad format specifier: '{0}' + + + System.Environment.Exit did not exit + + + The treatment of this operator is now handled directly by the F# compiler and its meaning cannot be redefined + + + A protected member is called or 'base' is being used. This is only allowed in the direct implementation of members since they could escape their object scope. + + + The byref-typed variable '{0}' is used in an invalid way. Byrefs cannot be captured by closures or passed to inner functions. + + + The mutable variable '{0}' is used in an invalid way. Mutable variables cannot be captured by closures. Consider eliminating this use of mutation or using a heap-allocated mutable reference cell via 'ref' and '!'. + + + The 'base' keyword is used in an invalid way. Base calls cannot be used in closures. Consider using a private member to make base calls. + + + The variable '{0}' is used in an invalid way + + + The type '{0}' is less accessible than the value, member or type '{1}' it is used in + + + 'System.Void' can only be used as 'typeof<System.Void>' in F# + + + A type instantiation involves a byref type. This is not permitted by the rules of Common IL. + + + Calls to 'reraise' may only occur directly in a handler of a try-with + + + Expression-splicing operators may only be used within quotations + + + First-class uses of the expression-splicing operator are not permitted + + + First-class uses of the address-of operators are not permitted + + + First-class uses of the 'reraise' function is not permitted + + + The byref typed value '{0}' cannot be used at this point + + + 'base' values may only be used to make direct calls to the base implementations of overridden members + + + Object constructors cannot directly use try/with and try/finally prior to the initialization of the object. This includes constructs such as 'for x in ...' that may elaborate to uses of these constructs. This is a limitation imposed by Common IL. + + + The address of the variable '{0}' cannot be used at this point + + + The address of the static field '{0}' cannot be used at this point + + + The address of the field '{0}' cannot be used at this point + + + The address of an array element cannot be used at this point + + + The type of a first-class function cannot contain byrefs + + + A method return type would contain byrefs which is not permitted + + + Invalid custom attribute value (not a constant or literal) + + + The attribute type '{0}' has 'AllowMultiple=false'. Multiple instances of this attribute cannot be attached to a single language element. + + + The member '{0}' is used in an invalid way. A use of '{1}' has been inferred prior to its definition at or near '{2}'. This is an invalid forward reference. + + + A byref typed value would be stored here. Top-level let-bound byref values are not permitted. + + + [<ReflectedDefinition>] terms cannot contain uses of the prefix splice operator '%' + + + A function labeled with the 'EntryPointAttribute' attribute must be the last declaration in the last file in the compilation sequence, and can only be used when compiling to a .exe + + + compiled form of the union case + + + default augmentation of the union case + + + Name clash. The property '{0}' has the same name as a method in this type. + + + The property '{0}' has a getter and a setter that do not match. If one is abstract then the other must be as well. + + + The property '{0}' has the same name as another property in this type, but one takes indexer arguments and the other does not. You may be missing an indexer argument to one of your properties. + + + A type would store a byref typed value. This is not permitted by Common IL. + + + Duplicate method. The method '{0}' has the same name and signature as another method in this type. + + + Duplicate method. The method '{0}' has the same name and signature as another method in this type once tuples, functions, units of measure and/or provided types are erased. + + + The method '{0}' has curried arguments but has the same name as another method in this type. Methods with curried arguments cannot be overloaded. Consider using a method taking tupled arguments. + + + Methods with curried arguments cannot declare 'out', 'ParamArray', 'optional' or 'byref' arguments + + + Duplicate property. The property '{0}' has the same name and signature as another property in this type. + + + Duplicate property. The property '{0}' has the same name and signature as another property in this type once tuples, functions, units of measure and/or provided types are erased. + + + Duplicate method. The abstract method '{0}' has the same name and signature as an abstract method in an inherited type. + + + Duplicate method. The abstract method '{0}' has the same name and signature as an abstract method in an inherited type once tuples, functions, units of measure and/or provided types are erased. + + + This type implements or inherits the same interface at different generic instantiations '{0}' and '{1}'. This is not permitted in this version of F#. + + + The type of a field using the 'DefaultValue' attribute must admit default initialization, i.e. have 'null' as a proper value or be a struct type whose fields all admit default initialization. You can use 'DefaultValue(false)' to disable this check + + + The type abbreviation contains byrefs. This is not permitted by F#. + + + The variable '{0}' is bound in a quotation but is used as part of a spliced expression. This is not permitted since it may escape its scope. + + + Quotations cannot contain uses of generic expressions + + + Quotations cannot contain function definitions that are inferred or declared to be generic. Consider adding some type constraints to make this a valid quoted expression. + + + Quotations cannot contain object expressions + + + Quotations cannot contain expressions that take the address of a field + + + Quotations cannot contain expressions that fetch static fields + + + Quotations cannot contain inline assembly code or pattern matching on arrays + + + Quotations cannot contain descending for loops + + + Quotations cannot contain expressions that fetch union case indexes + + + Quotations cannot contain expressions that set union case fields + + + Quotations cannot contain expressions that set fields in exception values + + + Quotations cannot contain expressions that require byref pointers + + + Quotations cannot contain expressions that make member constraint calls, or uses of operators that implicitly resolve to a member constraint call + + + Quotations cannot contain this kind of constant + + + Quotations cannot contain this kind of pattern match + + + Quotations cannot contain array pattern matching + + + Quotations cannot contain this kind of type + + + The declared type parameter '{0}' cannot be used here since the type parameter cannot be resolved at compile time + + + This code is less generic than indicated by its annotations. A unit-of-measure specified using '_' has been determined to be '1', i.e. dimensionless. Consider making the code generic, or removing the use of '_'. + + + Type inference problem too complicated (maximum iteration depth reached). Consider adding further type annotations. + + + Expected arguments to an instance member + + + This indexer expects {0} arguments but is here given {1} + + + Expecting a type supporting the operator '{0}' but given a function type. You may be missing an argument to a function. + + + Expecting a type supporting the operator '{0}' but given a tuple type + + + None of the types '{0}' support the operator '{1}' + + + The type '{0}' does not support the operator '{1}' + + + None of the types '{0}' support the operator '{1}'. Consider opening the module 'Microsoft.FSharp.Linq.NullableOperators'. + + + The type '{0}' does not support the operator '{1}'. Consider opening the module 'Microsoft.FSharp.Linq.NullableOperators'. + + + The type '{0}' does not support a conversion to the type '{1}' + + + The type '{0}' has a method '{1}' (full name '{2}'), but the method is static + + + The type '{0}' has a method '{1}' (full name '{2}'), but the method is not static + + + The constraints 'struct' and 'not struct' are inconsistent + + + The type '{0}' does not have 'null' as a proper value + + + The type '{0}' does not have 'null' as a proper value. To create a null value for a Nullable type use 'System.Nullable()'. + + + The type '{0}' does not support the 'comparison' constraint because it has the 'NoComparison' attribute + + + The type '{0}' does not support the 'comparison' constraint. For example, it does not support the 'System.IComparable' interface + + + The type '{0}' does not support the 'comparison' constraint because it is a record, union or struct with one or more structural element types which do not support the 'comparison' constraint. Either avoid the use of comparison with this type, or add the 'StructuralComparison' attribute to the type to determine which field type does not support comparison + + + The type '{0}' does not support the 'equality' constraint because it has the 'NoEquality' attribute + + + The type '{0}' does not support the 'equality' constraint because it is a function type + + + The type '{0}' does not support the 'equality' constraint because it is a record, union or struct with one or more structural element types which do not support the 'equality' constraint. Either avoid the use of equality with this type, or add the 'StructuralEquality' attribute to the type to determine which field type does not support equality + + + The type '{0}' is not a CLI enum type + + + The type '{0}' has a non-standard delegate type + + + The type '{0}' is not a CLI delegate type + + + This type parameter cannot be instantiated to 'Nullable'. This is a restriction imposed in order to ensure the meaning of 'null' in some CLI languages is not confusing when used in conjunction with 'Nullable' values. + + + A generic construct requires that the type '{0}' is a CLI or F# struct type + + + A generic construct requires that the type '{0}' is an unmanaged type + + + The type '{0}' is not compatible with any of the types {1}, arising from the use of a printf-style format string + + + A generic construct requires that the type '{0}' have reference semantics, but it does not, i.e. it is a struct + + + A generic construct requires that the type '{0}' be non-abstract + + + A generic construct requires that the type '{0}' have a public default constructor + + + Type instantiation length mismatch + + + Optional arguments not permitted here + + + {0} is not a static member + + + {0} is not an instance member + + + Argument length mismatch + + + The argument types don't match + + + This method expects a CLI 'params' parameter in this position. 'params' is a way of passing a variable number of arguments to a method in languages such as C#. Consider passing an array for this argument + + + The member or object constructor '{0}' is not {1} + + + The member or object constructor '{0}' is not {1}. Private members may only be accessed from within the declaring type. Protected members may only be accessed from an extending type and cannot be accessed from inner lambda expressions. + + + {0} is not a static method + + + {0} is not an instance method + + + The member or object constructor '{0}' has no argument or settable return property '{1}'. {2}. + + + The required signature is {0} + + + The member or object constructor '{0}' requires {1} argument(s). The required signature is '{2}'. + + + The member or object constructor '{0}' requires {1} additional argument(s). The required signature is '{2}'. + + + The member or object constructor '{0}' requires {1} argument(s). The required signature is '{2}'. Some names for missing arguments are {3}. + + + The member or object constructor '{0}' requires {1} additional argument(s). The required signature is '{2}'. Some names for missing arguments are {3}. + + + The member or object constructor '{0}' requires {1} argument(s) but is here given {2} unnamed and {3} named argument(s). The required signature is '{4}'. + + + The member or object constructor '{0}' takes {1} argument(s) but is here given {2}. The required signature is '{3}'. + + + The member or object constructor '{0}' takes {1} type argument(s) but is here given {2}. The required signature is '{3}'. + + + The member or object constructor '{0}' taking {1} arguments are not accessible from this code location. All accessible versions of method '{2}' take {3} arguments. + + + Incorrect generic instantiation. No {0} member named '{1}' takes {2} generic arguments. + + + The member or object constructor '{0}' does not take {1} argument(s). An overload was found taking {2} arguments. + + + No {0} member or object constructor named '{1}' takes {2} arguments + + + No {0} member or object constructor named '{1}' takes {2} arguments. Note the call to this member also provides {3} named arguments. + + + No {0} member or object constructor named '{1}' takes {2} arguments. The named argument '{3}' doesn't correspond to any argument or settable return property for any overload. + + + Method or object constructor '{0}' not found + + + No overloads match for method '{0}'. + + + A unique overload for method '{0}' could not be determined based on type information prior to this program point. A type annotation may be needed. + + + Candidates: {0} + + + The available overloads are shown below (or in the Error List window). + + + Accessibility modifiers are not permitted on 'do' bindings + + + End of file in #if section begun at or after here + + + End of file in string begun at or before here + + + End of file in verbatim string begun at or before here + + + End of file in comment begun at or before here + + + End of file in string embedded in comment begun at or before here + + + End of file in verbatim string embedded in comment begun at or before here + + + End of file in IF-OCAML section begun at or before here + + + End of file in directive begun at or before here + + + No #endif found for #if or #else + + + Attributes have been ignored in this construct + + + 'use' bindings are not permitted in primary constructors + + + 'use' bindings are not permitted in modules and are treated as 'let' bindings + + + An integer for loop must use a simple identifier + + + At most one 'with' augmentation is permitted + + + A semicolon is not expected at this point + + + Unexpected end of input + + + Accessibility modifiers are not permitted here + + + Only '#' compiler directives may occur prior to the first 'namespace' declaration + + + Accessibility modifiers should come immediately prior to the identifier naming a construct + + + Files should begin with either a namespace or module declaration, e.g. 'namespace SomeNamespace.SubNamespace' or 'module SomeNamespace.SomeModule', but not both. To define a module within a namespace use 'module SomeModule = ...' + + + A module abbreviation must be a simple name, not a path + + + Ignoring attributes on module abbreviation + + + Ignoring accessibility attribute on module abbreviation. Module abbreviations are always private. + + + Ignoring visibility attribute on module abbreviation. Module abbreviations are always private. + + + Unclosed block + + + Unmatched 'begin' or 'struct' + + + A module name must be a simple name, not a path + + + Unexpected empty type moduleDefn list + + + Attributes should be placed before 'val' + + + Attributes are not permitted on interface implementations + + + Syntax error + + + Augmentations are not permitted on delegate type moduleDefns + + + Unmatched 'class', 'interface' or 'struct' + + + A type definition requires one or more members or other declarations. If you intend to define an empty class, struct or interface, then use 'type ... = class end', 'interface end' or 'struct end'. + + + Unmatched 'with' or badly formatted 'with' block + + + 'get', 'set' or 'get,set' required + + + Only class types may take value arguments + + + Unmatched 'begin' + + + Invalid declaration syntax + + + 'get' and/or 'set' required + + + Type annotations on property getters and setters must be given after the 'get()' or 'set(v)', e.g. 'with get() : string = ...' + + + A getter property is expected to be a function, e.g. 'get() = ...' or 'get(index) = ...' + + + Multiple accessibilities given for property getter or setter + + + Property setters must be defined using 'set value = ', 'set idx value = ' or 'set (idx1,...,idxN) value = ... ' + + + Interfaces always have the same visibility as the enclosing type + + + Accessibility modifiers are not allowed on this member. Abstract slots always have the same visibility as the enclosing type. + + + Attributes are not permitted on 'inherit' declarations + + + Accessibility modifiers are not permitted on an 'inherits' declaration + + + 'inherit' declarations cannot have 'as' bindings. To access members of the base class when overriding a method, the syntax 'base.SomeMember' may be used; 'base' is a keyword. Remove this 'as' binding. + + + Attributes are not allowed here + + + Accessibility modifiers are not permitted in this position for type abbreviations + + + Accessibility modifiers are not permitted in this position for enum types + + + All enum fields must be given values + + + Accessibility modifiers are not permitted on inline assembly code types + + + Unexpected identifier: '{0}' + + + Accessibility modifiers are not permitted on union cases. Use 'type U = internal ...' or 'type U = private ...' to give an accessibility to the whole representation. + + + Accessibility modifiers are not permitted on enumeration fields + + + Consider using a separate record type instead + + + Accessibility modifiers are not permitted on record fields. Use 'type R = internal ...' or 'type R = private ...' to give an accessibility to the whole representation. + + + The declaration form 'let ... and ...' for non-recursive bindings is not used in F# code. Consider using a sequence of 'let' bindings + + + Unmatched '(' + + + Successive patterns should be separated by spaces or tupled + + + No matching 'in' found for this 'let' + + + Error in the return expression for this 'let'. Possible incorrect indentation. + + + Block following this '{0}' is unfinished. Expect an expression. + + + Incomplete conditional. Expected 'if <expr> then <expr>' or 'if <expr> then <expr> else <expr>'. + + + 'assert' may not be used as a first class value. Use 'assert <expr>' instead. + + + Identifier expected + + + 'in' or '=' expected + + + The use of '->' in sequence and computation expressions is limited to the form 'for pat in expr -> expr'. Use the syntax 'for ... in ... do ... yield...' to generate elements in more complex sequence expressions. + + + Successive arguments should be separated by spaces or tupled, and arguments involving function or method applications should be parenthesized + + + Unmatched '[' + + + Missing qualification after '.' + + + In F# code you may use 'expr.[expr]'. A type annotation may be required to indicate the first expression is an array + + + Mismatched quotation, beginning with '{0}' + + + Unmatched '{0}' + + + Unmatched '[|' + + + Unmatched '{{' + + + Field bindings must have the form 'id = expr;' + + + This member is not permitted in an object implementation + + + Missing function body + + + Syntax error in labelled type argument + + + Unexpected infix operator in type expression + + + The syntax '(typ,...,typ) ident' is not used in F# code. Consider using 'ident<typ,...,typ>' instead + + + Invalid literal in type + + + Unexpected infix operator in unit-of-measure expression. Legal operators are '*', '/' and '^'. + + + Unexpected integer literal in unit-of-measure expression + + + Syntax error: unexpected type parameter specification + + + Mismatched quotation operator name, beginning with '{0}' + + + Active pattern case identifiers must begin with an uppercase letter + + + No '=' symbol should follow a 'namespace' declaration + + + The syntax 'module ... = struct .. end' is not used in F# code. Consider using 'module ... = begin .. end' + + + The syntax 'module ... : sig .. end' is not used in F# code. Consider using 'module ... = begin .. end' + + + A static field was used where an instance field is expected + + + Method '{0}' is not accessible from this code location + + + Implicit product of measures following / + + + Unexpected SynMeasure.Anon + + + Non-zero constants cannot have generic units. For generic zero, write 0.0<_>. + + + In sequence expressions, results are generated using 'yield' + + + Unexpected big rational constant + + + Units-of-measure supported only on float, float32, decimal and signed integer types + + + Unexpected Const_uint16array + + + Unexpected Const_bytearray + + + A parameter with attributes must also be given a name, e.g. '[<Attribute>] Name : Type' + + + Return values cannot have names + + + MemberKind.PropertyGetSet only expected in parse trees + + + Namespaces cannot contain values. Consider using a module to hold your value declarations. + + + Namespaces cannot contain extension members except in the same file and namespace where the type is defined. Consider using a module to hold declarations of extension members. + + + Multiple visibility attributes have been specified for this identifier + + + Multiple visibility attributes have been specified for this identifier. 'let' bindings in classes are always private, as are any 'let' bindings inside expressions. + + + Unrecognized accessibility specification + + + The name '({0})' should not be used as a member name. To define comparison semantics for a type, implement the 'System.IComparable' interface. If defining a static member for use from other CLI languages then use the name '{1}' instead. + + + The name '({0})' should not be used as a member name. To define equality semantics for a type, override the 'Object.Equals' member. If defining a static member for use from other CLI languages then use the name '{1}' instead. + + + The name '({0})' should not be used as a member name. If defining a static member for use from other CLI languages then use the name '{1}' instead. + + + The name '({0})' should not be used as a member name because it is given a standard definition in the F# library over fixed types + + + The '{0}' operator should not normally be redefined. To define overloaded comparison semantics for a particular type, implement the 'System.IComparable' interface in the definition of that type. + + + The '{0}' operator should not normally be redefined. To define equality semantics for a type, override the 'Object.Equals' member in the definition of that type. + + + The '{0}' operator should not normally be redefined. Consider using a different operator name + + + The '{0}' operator cannot be redefined. Consider using a different operator name + + + Expected module or namespace parent {0} + + + The struct, record or union type '{0}' implements the interface 'System.IComparable' explicitly. You must apply the 'CustomComparison' attribute to the type. + + + The struct, record or union type '{0}' implements the interface 'System.IComparable<_>' explicitly. You must apply the 'CustomComparison' attribute to the type, and should also provide a consistent implementation of the non-generic interface System.IComparable. + + + The struct, record or union type '{0}' implements the interface 'System.IStructuralComparable' explicitly. Apply the 'CustomComparison' attribute to the type. + + + This record contains fields from inconsistent types + + + DLLImport stubs cannot be inlined + + + Structs may only bind a 'this' parameter at member declarations + + + Unexpected expression at recursive inference point + + + This code is less generic than required by its annotations because the explicit type variable '{0}' could not be generalized. It was constrained to be '{1}'. + + + One or more of the explicit class or function type variables for this binding could not be generalized, because they were constrained to other types + + + A generic type parameter has been used in a way that constrains it to always be '{0}' + + + This type parameter has been used in a way that constrains it to always be '{0}' + + + The type parameters inferred for this value are not stable under the erasure of type abbreviations. This is due to the use of type abbreviations which drop or reorder type parameters, e.g. \n\ttype taggedInt<'a> = int or\n\ttype swap<'a,'b> = 'b * 'a.\nConsider declaring the type parameters for this value explicitly, e.g.\n\tlet f<'a,'b> ((x,y) : swap<'b,'a>) : swap<'a,'b> = (y,x). + + + Explicit type parameters may only be used on module or member bindings + + + You must explicitly declare either all or no type parameters when overriding a generic abstract method + + + The field labels and expected type of this record expression or pattern do not uniquely determine a corresponding record type + + + The field '{0}' appears twice in this record expression or pattern + + + Unknown union case + + + This code is not sufficiently generic. The type variable {0} could not be generalized because it would escape its scope. + + + A property cannot have explicit type parameters. Consider using a method instead. + + + A constructor cannot have explicit type parameters. Consider using a static construction method instead. + + + This instance member needs a parameter to represent the object being invoked. Make the member static or use the notation 'member x.Member(args) = ...'. + + + Unexpected source-level property specification in syntax tree + + + A static initializer requires an argument + + + An object constructor requires an argument + + + This static member should not have a 'this' parameter. Consider using the notation 'member Member(args) = ...'. + + + An explicit static initializer should use the syntax 'static new(args) = expr' + + + An explicit object constructor should use the syntax 'new(args) = expr' + + + Unexpected source-level property specification + + + This form of object expression is not used in F#. Use 'member this.MemberName ... = ...' to define member implementations in object expressions. + + + Invalid declaration + + + Attributes are not allowed within patterns + + + The generic function '{0}' must be given explicit type argument(s) + + + The method or function '{0}' should not be given explicit type argument(s) because it does not declare its type parameters explicitly + + + This value, type or method expects {0} type parameter(s) but was given {1} + + + The default, zero-initializing constructor of a struct type may only be used if all the fields of the struct type admit default initialization + + + Couldn't find Dispose on IDisposable, or it was overloaded + + + This value is not a literal and cannot be used in a pattern + + + This field is readonly + + + Named arguments must appear after all other arguments + + + This function value is being used to construct a delegate type whose signature includes a byref argument. You must use an explicit lambda expression taking {0} arguments. + + + The type '{0}' is not a type whose values can be enumerated with this syntax, i.e. is not compatible with either seq<_>, IEnumerable<_> or IEnumerable and does not have a GetEnumerator method + + + This expression has a method called GetEnumerator, but its return type is a value type. Methods returning struct enumerators cannot be used in this expression form. + + + This recursive binding uses an invalid mixture of recursive forms + + + This is not a valid object construction expression. Explicit object constructors must either call an alternate constructor or initialize all fields of the object and specify a call to a super class constructor. + + + Invalid constraint + + + Invalid constraint: the type used for the constraint is sealed, which means the constraint could only be satisfied by at most one solution + + + An 'enum' constraint must be of the form 'enum<type>' + + + 'new' constraints must take one argument of type 'unit' and return the constructed type + + + This property has an invalid type. Properties taking multiple indexer arguments should have types of the form 'ty1 * ty2 -> ty3'. Properties returning functions should have types of the form '(ty1 -> ty2)'. + + + Expected unit-of-measure parameter, not type parameter. Explicit unit-of-measure parameters must be marked with the [<Measure>] attribute. + + + Expected type parameter, not unit-of-measure parameter + + + Expected type, not unit-of-measure + + + Expected unit-of-measure, not type + + + Units-of-measure cannot be used as prefix arguments to a type. Rewrite as postfix arguments in angle brackets. + + + Unit-of-measure cannot be used in type constructor application + + + This control construct may only be used if the computation expression builder defines a '{0}' method + + + This type has no nested types + + + Unexpected {0} in type expression + + + Type parameter cannot be used as type constructor + + + Illegal syntax in type expression + + + Anonymous unit-of-measure cannot be nested inside another unit-of-measure expression + + + Anonymous type variables are not permitted in this declaration + + + Unexpected / in type + + + Unexpected type arguments + + + Optional arguments are only permitted on type members + + + Name '{0}' not bound in pattern context + + + Non-primitive numeric literal constants cannot be used in pattern matches because they can be mapped to multiple different types through the use of a NumericLiteral module. Consider using replacing with a variable, and use 'when <variable> = <constant>' at the end of the match clause. + + + Type arguments cannot be specified here + + + Only active patterns returning exactly one result may accept arguments + + + Invalid argument to parameterized pattern label + + + Internal error. Invalid index into active pattern array + + + This union case does not take arguments + + + This union case takes one argument + + + This union case expects {0} arguments in tupled form + + + Field '{0}' is not static + + + This field is not a literal and cannot be used in a pattern + + + This is not a variable, constant, active recognizer or literal + + + This is not a valid pattern + + + Character range matches have been removed in F#. Consider using a 'when' pattern guard instead. + + + Illegal pattern + + + Syntax error - unexpected '?' symbol + + + Expected {0} expressions, got {1} + + + TcExprUndelayed: delayed + + + This expression form may only be used in sequence and computation expressions + + + Invalid object expression. Objects without overrides or interfaces should use the expression form 'new Type(args)' without braces. + + + Invalid object, sequence or record expression + + + Invalid record, sequence or computation expression. Sequence expressions should be of the form 'seq {{ ... }}' + + + This list or array expression includes an element of the form 'if ... then ... else'. Parenthesize this expression to indicate it is an individual element of the list or array, to disambiguate this from a list generated using a sequence expression + + + Unable to parse format string '{0}' + + + This list expression exceeds the maximum size for list literals. Use an array for larger literals and call Array.ToList. + + + The expression form 'expr then expr' may only be used as part of an explicit object constructor + + + Named arguments cannot be given to member trait calls + + + This is not a valid name for an enumeration case + + + This field is not mutable + + + This construct may only be used within list, array and sequence expressions, e.g. expressions of the form 'seq {{ ... }}', '[ ... ]' or '[| ... |]'. These use the syntax 'for ... in ... do ... yield...' to generate elements + + + This construct may only be used within computation expressions. To return a value from an ordinary function simply write the expression without 'return'. + + + This construct may only be used within sequence or computation expressions + + + This construct may only be used within computation expressions + + + Invalid indexer expression + + + The operator 'expr.[idx]' has been used on an object of indeterminate type based on information prior to this program point. Consider adding further type constraints + + + Cannot inherit from a variable type + + + Calls to object constructors on type parameters cannot be given arguments + + + The 'CompiledName' attribute cannot be used with this language element + + + '{0}' may only be used with named types + + + 'inherit' cannot be used on interface types. Consider implementing the interface by using 'interface ... with ... end' instead. + + + 'new' cannot be used on interface types. Consider using an object expression '{{ new ... with ... }}' instead. + + + Instances of this type cannot be created since it has been marked abstract or not all methods have been given implementations. Consider using an object expression '{{ new ... with ... }}' instead. + + + It is recommended that objects that support the IDisposable interface are created using 'new Type(args)' rather than 'Type(args)' to indicate that resources may be owned by the generated value + + + '{0}' may only be used to construct object types + + + Constructors for the type '{0}' must directly or indirectly call its implicit object constructor. Use a call to the implicit object constructor instead of a record expression. + + + The field '{0}' has been given a value, but is not present in the type '{1}' + + + No assignment given for field '{0}' of type '{1}' + + + Extraneous fields have been given values + + + Only overrides of abstract and virtual members may be specified in object expressions + + + The member '{0}' does not correspond to any abstract or virtual method available to override or implement + + + The member '{0}' does not accept the correct number of arguments, {1} arguments are expected + + + The member '{0}' does not accept the correct number of arguments. One overload accepts {1} arguments. + + + A simple method name is required here + + + The types System.ValueType, System.Enum, System.Delegate, System.MulticastDelegate and System.Array cannot be used as super types in an object expression or class + + + 'new' must be used with a named type + + + Cannot create an extension of a sealed type + + + No arguments may be given when constructing a record value + + + Interface implementations cannot be given on construction expressions + + + Object construction expressions may only be used to implement constructors in class types + + + Only simple bindings of the form 'id = expr' can be used in construction expressions + + + Objects must be initialized by an object construction expression that calls an inherited object constructor and assigns a value to each field + + + Expected an interface type + + + Constructor expressions for interfaces do not take arguments + + + This object constructor requires arguments + + + 'new' may only be used with object constructors + + + At least one override did not correctly implement its corresponding abstract member + + + This numeric literal requires that a module '{0}' defining functions FromZero, FromOne, FromInt32, FromInt64 and FromString be in scope + + + Invalid record construction + + + The expression form {{ expr with ... }} may only be used with record types. To build object types use {{ new Type(...) with ... }} + + + The inherited type is not an object model type + + + Object construction expressions (i.e. record expressions with inheritance specifications) may only be used to implement constructors in object model types. Use 'new ObjectType(args)' to construct instances of object model types outside of constructors + + + '{{ }}' is not a valid expression. Records must include at least one field. Empty sequences are specified by using Seq.empty or an empty list '[]'. + + + This type is not a record type. Values of class and struct types must be created using calls to object constructors. + + + This type is not a record type + + + This construct is ambiguous as part of a computation expression. Nested expressions may be written using 'let _ = (...)' and nested computations using 'let! res = builder {{ ... }}'. + + + This construct is ambiguous as part of a sequence expression. Nested expressions may be written using 'let _ = (...)' and nested sequences using 'yield! seq {{... }}'. + + + 'do!' cannot be used within sequence expressions + + + The use of 'let! x = coll' in sequence expressions is not permitted. Use 'for x in coll' instead. + + + 'try'/'with' cannot be used within sequence expressions + + + In sequence expressions, multiple results are generated using 'yield!' + + + Invalid assignment + + + Invalid use of a type name + + + This type has no accessible object constructors + + + Invalid use of a type name and/or object constructor. If necessary use 'new' and apply the constructor to its arguments, e.g. 'new Type(args)'. + + + Invalid use of a type name and/or object constructor. If necessary use 'new' and apply the constructor to its arguments, e.g. 'new Type(args)'. The required signature is:\n\t{0}. + + + Invalid use of an interface type + + + Invalid use of a delegate constructor. Use the syntax 'new Type(args)' or just 'Type(args)'. + + + Property '{0}' is not static + + + Property '{0}' is not readable + + + This lookup cannot be used here + + + Property '{0}' is static + + + Property '{0}' cannot be set + + + Constructors must be applied to arguments and cannot be used as first-class values. If necessary use an anonymous function '(fun arg1 ... argN -> new Type(arg1,...,argN))'. + + + The syntax 'expr.id' may only be used with record labels, properties and fields + + + Event '{0}' is static + + + Event '{0}' is not static + + + The named argument '{0}' did not match any argument or mutable property + + + One or more of the overloads of this method has curried arguments. Consider redesigning these members to take arguments in tupled form. + + + The unnamed arguments do not form a prefix of the arguments of the method called + + + Static optimization conditionals are only for use within the F# library + + + The corresponding formal argument is not optional + + + Invalid optional assignment to a property or field + + + A delegate constructor must be passed a single function value + + + A binding cannot be marked both 'use' and 'rec' + + + The 'VolatileField' attribute may only be used on 'let' bindings in classes + + + Attributes are not permitted on 'let' bindings in expressions + + + The 'DefaultValue' attribute may only be used on 'val' declarations + + + The 'ConditionalAttribute' attribute may only be used on members + + + This is not a valid name for an active pattern + + + The 'EntryPointAttribute' attribute may only be used on function definitions in modules + + + Mutable values cannot be marked 'inline' + + + Mutable values cannot have generic parameters + + + Mutable function values should be written 'let mutable f = (fun args -> ...)' + + + Only functions may be marked 'inline' + + + A literal value cannot be given the [<ThreadStatic>] or [<ContextStatic>] attributes + + + A literal value cannot be marked 'mutable' + + + A literal value cannot be marked 'inline' + + + Literal values cannot have generic parameters + + + This is not a valid constant expression + + + This type is not accessible from this code location + + + Unexpected condition in imported assembly: failed to decode AttributeUsage attribute + + + Unrecognized attribute target. Valid attribute targets are 'assembly', 'module', 'type', 'method', 'property', 'return', 'param', 'field', 'event', 'constructor'. + + + This attribute is not valid for use on this language element. Assembly attributes should be attached to a 'do ()' declaration, if necessary within an F# module. + + + This attribute is not valid for use on this language element + + + Optional arguments cannot be used in custom attributes + + + This property cannot be set + + + This property or field was not found on this custom attribute type + + + A custom attribute must be a reference type + + + The number of args for a custom attribute does not match the expected number of args for the attribute constructor + + + A custom attribute must invoke an object constructor + + + Attribute expressions must be calls to object constructors + + + This attribute cannot be used in this version of F# + + + Invalid inline specification + + + 'use' bindings must be of the form 'use <var> = <expr>' + + + Abstract members are not permitted in an augmentation - they must be defined as part of the type itself + + + Method overrides and interface implementations are not permitted here + + + No abstract or interface member was found that corresponds to this override + + + This override takes a different number of arguments to the corresponding abstract member + + + This method already has a default implementation + + + The method implemented by this default is ambiguous + + + No abstract property was found that corresponds to this override + + + This property overrides or implements an abstract property but the abstract property doesn't have a corresponding {0} + + + Invalid signature for set member + + + This property already has a default implementation + + + The property implemented by this default is ambiguous + + + This new member hides the abstract member '{0}'. Rename the member or use 'override' instead. + + + This new member hides the abstract member '{0}' once tuples, functions, units of measure and/or provided types are erased. Rename the member or use 'override' instead. + + + Interfaces cannot contain definitions of static initializers + + + Interfaces cannot contain definitions of object constructors + + + Interfaces cannot contain definitions of member overrides + + + Interfaces cannot contain definitions of concrete members. You may need to define a constructor on your type to indicate that the type is a class. + + + Constructors cannot be specified in exception augmentations + + + Structs cannot have an object constructor with no arguments. This is a restriction imposed on all CLI languages as structs automatically support a default constructor. + + + Constructors cannot be defined for this type + + + Recursive bindings that include member specifications can only occur as a direct augmentation of a type + + + Only simple variable patterns can be bound in 'let rec' constructs + + + Only record fields and simple 'let' bindings may be marked mutable + + + This member is not sufficiently generic + + + A declaration may only be the [<Literal>] attribute if a constant value is also given, e.g. 'val x : int = 1' + + + A declaration may only be given a value in a signature if the declaration has the [<Literal>] attribute + + + Thread-static and context-static variables must be static and given the [<DefaultValue>] attribute to indicate that the value is initialized to the default value on each new thread + + + Volatile fields must be marked 'mutable' and cannot be thread-static + + + Uninitialized 'val' fields must be mutable and marked with the '[<DefaultValue>]' attribute. Consider using a 'let' binding instead of a 'val' field. + + + Static 'val' fields in types must be mutable, private and marked with the '[<DefaultValue>]' attribute. They are initialized to the 'null' or 'zero' value for their type. Consider also using a 'static let mutable' binding in a class type. + + + This field requires a name + + + Invalid namespace, module, type or union case name + + + Explicit type declarations for constructors must be of the form 'ty1 * ... * tyN -> resTy'. Parentheses may be required around 'resTy' + + + Return types of union cases must be identical to the type being defined, up to abbreviations + + + This is not a valid value for an enumeration literal + + + The type '{0}' is not an interface type + + + Duplicate specification of an interface + + + A field/val declaration is not permitted here + + + A inheritance declaration is not permitted here + + + This declaration opens the module '{0}', which is marked as 'RequireQualifiedAccess'. Adjust your code to use qualified references to the elements of the module instead, e.g. 'List.map' instead of 'map'. This change will ensure that your code is robust as new constructs are added to libraries. + + + This declaration opens the namespace or module '{0}' through a partially qualified path. Adjust this code to use the full path of the namespace. This change will make your code more robust as new constructs are added to the F# and CLI libraries. + + + Local class bindings cannot be marked inline. Consider lifting the definition out of the class or else do not mark it as inline. + + + Type abbreviations cannot have members + + + Enumerations cannot have members + + + Measure declarations may have only static members + + + Structs cannot contain 'do' bindings because the default constructor for structs would not execute these bindings + + + Structs cannot contain value definitions because the default constructor for structs will not execute these bindings. Consider adding additional arguments to the primary constructor for the type. + + + Static value definitions may only be used in types with a primary constructor. Consider adding arguments to the type definition, e.g. 'type X(args) = ...'. + + + Measure declarations may have only static members: constructors are not available + + + A member and a local class binding both have the name '{0}' + + + Type abbreviations cannot have interface declarations + + + Enumerations cannot have interface declarations + + + This type is not an interface type + + + All implemented interfaces should be declared on the initial declaration of the type + + + A default implementation of this interface has already been added because the explicit implementation of the interface was not specified at the definition of the type + + + This member is not permitted in an interface implementation + + + This declaration element is not permitted in an augmentation + + + Types cannot contain nested type definitions + + + type, exception or module + + + type or module + + + The struct, record or union type '{0}' implements the interface 'System.IStructuralEquatable' explicitly. Apply the 'CustomEquality' attribute to the type. + + + The struct, record or union type '{0}' implements the interface 'System.IEquatable<_>' explicitly. Apply the 'CustomEquality' attribute to the type and provide a consistent implementation of the non-generic override 'System.Object.Equals(obj)'. + + + Explicit type specifications cannot be used for exception constructors + + + Exception abbreviations should not have argument lists + + + Abbreviations for Common IL exceptions cannot take arguments + + + Exception abbreviations must refer to existing exceptions or F# types deriving from System.Exception + + + Abbreviations for Common IL exception types must have a matching object constructor + + + Not an exception + + + Invalid module name + + + Invalid type extension + + + The attributes of this type specify multiple kinds for the type + + + The kind of the type specified by its attributes does not match the kind implied by its definition + + + Measure definitions cannot have type parameters + + + This type requires a definition + + + This type abbreviation has one or more declared type parameters that do not appear in the type being abbreviated. Type abbreviations must use all declared type parameters in the type being abbreviated. Consider removing one or more type parameters, or use a concrete type definition that wraps an underlying type, such as 'type C<'a> = C of ...'. + + + Structs, interfaces, enums and delegates cannot inherit from other types + + + Types cannot inherit from multiple concrete types + + + Records, union, abbreviations and struct types cannot have the 'AllowNullLiteral' attribute + + + Types with the 'AllowNullLiteral' attribute may only inherit from or implement types which also allow the use of the null literal + + + Generic types cannot be given the 'StructLayout' attribute + + + Only structs and classes without primary constructors may be given the 'StructLayout' attribute + + + The representation of this type is hidden by the signature. It must be given an attribute such as [<Sealed>], [<Class>] or [<Interface>] to indicate the characteristics of the type. + + + Only classes may be given the 'AbstractClass' attribute + + + Only types representing units-of-measure may be given the 'Measure' attribute + + + Accessibility modifiers are not permitted on overrides or interface implementations + + + Discriminated union types are always sealed + + + Record types are always sealed + + + Assembly code types are always sealed + + + Struct types are always sealed + + + Delegate types are always sealed + + + Enum types are always sealed + + + Interface types and delegate types cannot contain fields + + + Abbreviated types cannot be given the 'Sealed' attribute + + + Cannot inherit a sealed type + + + Cannot inherit from interface type. Use interface ... with instead. + + + Struct types cannot contain abstract members + + + Interface types cannot be sealed + + + Delegate specifications must be of the form 'typ -> typ' + + + Delegate specifications must not be curried types. Use 'typ * ... * typ -> typ' for multi-argument delegates, and 'typ -> (typ -> typ)' for delegates returning function values. + + + Literal enumerations must have type int, uint, int16, uint16, int64, uint64, byte, sbyte or char + + + This type definition involves an immediate cyclic reference through an abbreviation + + + This type definition involves an immediate cyclic reference through a struct field or inheritance relation + + + The syntax 'type X with ...' is reserved for augmentations. Types whose representations are hidden but which have members are now declared in signatures using 'type X = ...'. You may also need to add the '[<Sealed>] attribute to the type definition in the signature + + + Members that extend interface, delegate or enum types must be placed in a module separate to the definition of the type. This module must either have the AutoOpen attribute or be opened explicitly by client code to bring the extension members into scope. + + + The declared type parameters for this type extension do not match the declared type parameters on the original type '{0}' + + + Type definitions may only have one 'inherit' specification and it must be the first declaration + + + 'let' and 'do' bindings must come before member and interface definitions in type definitions + + + This 'inherit' declaration specifies the inherited type but no arguments. Consider supplying arguments, e.g. 'inherit BaseType(args)'. + + + This 'inherit' declaration has arguments, but is not in a type with a primary constructor. Consider adding arguments to your type definition, e.g. 'type X(args) = ...'. + + + This definition may only be used in a type with a primary constructor. Consider adding arguments to your type definition, e.g. 'type X(args) = ...'. + + + Type abbreviations cannot have augmentations + + + The path '{0}' is a namespace. A module abbreviation may not abbreviate a namespace. + + + The type '{0}' is used in an invalid way. A value prior to '{1}' has an inferred type involving '{2}', which is an invalid forward reference. + + + The member '{0}' is used in an invalid way. A use of '{1}' has been inferred prior to the definition of '{2}', which is an invalid forward reference. + + + The attribute 'AutoOpen(\"{0}\")' in the assembly '{1}' did not refer to a valid module or namespace in that assembly and has been ignored + + + Undefined value '{0}' + + + Label {0} not found + + + Incorrect number of type arguments to local call + + + Dynamic invocation of {0} is not supported + + + Taking the address of a literal field is invalid + + + This operation involves taking the address of a value '{0}' represented using a local variable or other special representation. This is invalid. + + + Values marked with 'LiteralAttribute' cannot be mutable + + + Values marked with 'LiteralAttribute' must currently be simple integer, character, Boolean, string or floating point constants + + + Custom marshallers cannot be specified in F# code. Consider using a C# helper function. + + + The MarshalAs attribute could not be decoded + + + The signature for this external function contains type parameters. Constrain the argument and return types to indicate the types of the corresponding C function. + + + The DllImport attribute could not be decoded + + + Literal fields cannot be set + + + GenSetStorage: {0} was represented as a static method but was not an appropriate lambda expression + + + Mutable variables cannot escape their method + + + Compiler error: unexpected unrealized value + + + Main module of program is empty: nothing will happen when it is run + + + This type cannot be used for a literal field + + + Unexpected GetSet annotation on a property + + + The FieldOffset attribute could not be decoded + + + The StructLayout attribute could not be decoded + + + The DefaultAugmentation attribute could not be decoded + + + Reflected definitions cannot contain uses of the prefix splice operator '%' + + + Problem with codepage '{0}': {1} + + + Freely distributed under the Apache 2.0 Open Source License + + + Name of the output file (Short form: -o) + + + Build a console executable + + + Build a Windows executable + + + Build a library (Short form: -a) + + + Build a module that can be added to another assembly + + + Delay-sign the assembly using only the public portion of the strong name key + + + Write the xmldoc of the assembly to the given file + + + Specify a strong name key file + + + Specify a strong name key container + + + Limit which platforms this code can run on: x86, Itanium, x64, anycpu32bitpreferred, or anycpu. The default is anycpu. + + + Only include optimization information essential for implementing inlined constructs. Inhibits cross-module inlining but improves binary compatibility. + + + Don't add a resource to the generated assembly containing F#-specific metadata + + + Print the inferred interface of the assembly to a file + + + Reference an assembly (Short form: -r) + + + Specify a Win32 resource file (.res) + + + Specify a Win32 manifest file + + + Do not include the default Win32 manifest + + + Embed the specified managed resource + + + Link the specified resource to this assembly where the resinfo format is <file>[,<string name>[,public|private]] + + + Emit debug information (Short form: -g) + + + Specify debugging type: full, pdbonly. ('full' is the default and enables attaching a debugger to a running program). + + + Enable optimizations (Short form: -O) + + + Enable or disable tailcalls + + + Enable or disable cross-module optimizations + + + Report all warnings as errors + + + Report specific warnings as errors + + + Set a warning level (0-5) + + + Disable specific warning messages + + + Enable specific warnings that may be off by default + + + Generate overflow checks + + + Define conditional compilation symbols (Short form: -d) + + + Ignore ML compatibility warnings + + + Suppress compiler copyright message + + + Display this usage message (Short form: -?) + + + Specify the codepage used to read source files + + + Output messages in UTF-8 encoding + + + Output messages with fully qualified paths + + + Specify a directory for the include path which is used to resolve source files and assemblies (Short form: -I) + + + Base address for the library to be built + + + Do not reference the default CLI assemblies by default + + + Statically link the F# library and all referenced DLLs that depend on it into the assembly being generated + + + Statically link the given assembly and all referenced DLLs that depend on this assembly. Use an assembly name e.g. mylib, not a DLL name. + + + Use a resident background compilation service to improve compiler startup times. + + + Name the output debug file + + + Resolve assembly references using directory-based rules rather than MSBuild resolution + + + Unrecognized target '{0}', expected 'exe', 'winexe', 'library' or 'module' + + + Unrecognized debug type '{0}', expected 'pdbonly' or 'full' + + + Invalid warning level '{0}' + + + Short form of '{0}' + + + The command-line option '--cliroot' has been deprecated. Use an explicit reference to a specific copy of mscorlib.dll instead. + + + Use to override where the compiler looks for mscorlib.dll and framework components + + + - OUTPUT FILES - + + + - INPUT FILES - + + + - RESOURCES - + + + - CODE GENERATION - + + + - ADVANCED - + + + - MISCELLANEOUS - + + + - LANGUAGE - + + + - ERRORS AND WARNINGS - + + + Unknown --test argument: '{0}' + + + Unrecognized platform '{0}', valid values are 'x86', 'x64', 'Itanium', 'anycpu32bitpreferred', and 'anycpu' + + + The command-line option '{0}' is for internal use only + + + The command-line option '{0}' has been deprecated + + + The command-line option '{0}' has been deprecated. Use '{1}' instead. + + + The command-line option '{0}' has been deprecated. HTML document generation is now part of the F# Power Pack, via the tool FsHtmlDoc.exe. + + + Output warning and error messages in color + + + Enable high-entropy ASLR + + + Specify subsystem version of this assembly + + + Invalid version '{0}' for '--subsystemversion'. The version must be 4.00 or greater. + + + Full name + + + type + + + inherits + + + implements + + + and {0} other overloads + + + union case + + + active pattern result + + + active recognizer + + + field + + + event + + + property + + + custom operation + + + argument + + + patvar + + + namespace + + + module + + + namespace/module + + + from {0} + + + also from {0} + + + generated property + + + generated type + + + Found by AssemblyFolders registry key + + + Found by AssemblyFoldersEx registry key + + + .NET Framework + + + Global Assembly Cache + + + Recursive class hierarchy in type '{0}' + + + Invalid recursive reference to an abstract slot + + + The event '{0}' has a non-standard type. If this event is declared in another CLI language, you may need to access this event using the explicit {1} and {2} methods for the event. If this event is declared in F#, make the type of the event an instantiation of either 'IDelegateEvent<_>' or 'IEvent<_,_>'. + + + The type '{0}' is not accessible from this code location + + + The union cases or fields of the type '{0}' are not accessible from this code location + + + The value '{0}' is not accessible from this code location + + + The union case '{0}' is not accessible from this code location + + + The record, struct or class field '{0}' is not accessible from this code location + + + The struct or class field '{0}' is not accessible from this code location + + + This construct is experimental + + + No Invoke methods found for delegate type + + + More than one Invoke method found for delegate type + + + Delegates are not allowed to have curried signatures + + + Unexpected Expr.TyChoose + + + Note: Lambda-lifting optimizations have not been applied because of the use of this local constrained generic function as a first class value. Adding type constraints may resolve this condition. + + + Identifiers containing '@' are reserved for use in F# code generation + + + The identifier '{0}' is reserved for future use by F# + + + Missing variable '{0}' + + + Partial active patterns may only generate one result + + + The type '{0}' is required here and is unavailable. You must add a reference to assembly '{1}'. + + + A reference to the type '{0}' in assembly '{1}' was found, but the type could not be found in that assembly + + + Internal error or badly formed metadata: not enough type parameters were in scope while importing + + + A reference to the DLL {0} is required by assembly {1}. The imported type {2} is located in the first assembly and could not be resolved. + + + An imported assembly uses the type '{0}' but that type is not public + + + The value '{0}' was marked inline but its implementation makes use of an internal or private function which is not sufficiently accessible + + + The value '{0}' was marked inline but was not bound in the optimization environment + + + Local value {0} not found during optimization + + + A value marked as 'inline' has an unexpected value + + + A value marked as 'inline' could not be inlined + + + Failed to inline the value '{0}' marked 'inline', perhaps because a recursive value was marked 'inline' + + + Recursive ValValue {0} + + + The indentation of this 'in' token is incorrect with respect to the corresponding 'let' + + + Possible incorrect indentation: this token is offside of context started at position {0}. Try indenting this token further or using standard formatting conventions. + + + The '|' tokens separating rules of this pattern match are misaligned by one column. Consider realigning your code or using further indentation. + + + Invalid module/expression/type + + + Multiple types exist called '{0}', taking different numbers of generic parameters. Provide a type instantiation to disambiguate the type resolution, e.g. '{1}'. + + + The instantiation of the generic type '{0}' is missing and can't be inferred from the arguments or return type of this member. Consider providing a type instantiation when accessing this type, e.g. '{1}'. + + + 'global' may only be used as the first name in a qualified path + + + This is not a constructor or literal, or a constructor is being used incorrectly + + + Unexpected empty long identifier + + + The type '{0}' does not contain a field '{1}' + + + Invalid field label + + + Invalid expression '{0}' + + + No constructors are available for the type '{0}' + + + Unexpected error creating debug information file '{0}' + + + This number is outside the allowable range for this integer type + + + '{0}' is not permitted as a character in operator names and is reserved for future use + + + Unexpected character '{0}' + + + This byte array literal contains characters that do not encode as a single byte + + + Identifiers followed by '{0}' are reserved for future use + + + This number is outside the allowable range for 8-bit signed integers + + + This number is outside the allowable range for hexadecimal 8-bit signed integers + + + This number is outside the allowable range for 8-bit unsigned integers + + + This number is outside the allowable range for 16-bit signed integers + + + This number is outside the allowable range for 16-bit unsigned integers + + + This number is outside the allowable range for 32-bit signed integers + + + This number is outside the allowable range for 32-bit unsigned integers + + + This number is outside the allowable range for 64-bit signed integers + + + This number is outside the allowable range for 64-bit unsigned integers + + + This number is outside the allowable range for signed native integers + + + This number is outside the allowable range for unsigned native integers + + + Invalid floating point number + + + This number is outside the allowable range for decimal literals + + + This number is outside the allowable range for 32-bit floats + + + This is not a valid numeric literal. Sample formats include 4, 0x4, 0b0100, 4L, 4UL, 4u, 4s, 4us, 4y, 4uy, 4.0, 4.0f, 4I. + + + This is not a valid byte literal + + + This is not a valid character literal + + + This Unicode encoding is only valid in string literals + + + This token is reserved for future use + + + TABs are not allowed in F# code unless the #indent \"off\" option is used + + + Invalid line number: '{0}' + + + #if directive must appear as the first non-whitespace character on a line + + + #else has no matching #if + + + #endif required for #else + + + #else directive must appear as the first non-whitespace character on a line + + + #endif has no matching #if + + + #endif directive must appear as the first non-whitespace character on a line + + + #if directive should be immediately followed by an identifier + + + Syntax error. Wrong nested #endif, unexpected tokens before it. + + + Expected single line comment or end of line + + + Infix operator member '{0}' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ... + + + Infix operator member '{0}' has {1} initial argument(s). Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ... + + + Infix operator member '{0}' has extra curried arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ... + + + All record, union and struct types in FSharp.Core.dll must be explicitly labelled with 'StructuralComparison' or 'NoComparison' + + + The struct, record or union type '{0}' has the 'StructuralComparison' attribute but the type parameter '{1}' does not satisfy the 'comparison' constraint. Consider adding the 'comparison' constraint to the type parameter + + + The struct, record or union type '{0}' has the 'StructuralComparison' attribute but the component type '{1}' does not satisfy the 'comparison' constraint + + + The struct, record or union type '{0}' is not structurally comparable because the type parameter {1} does not satisfy the 'comparison' constraint. Consider adding the 'NoComparison' attribute to the type '{2}' to clarify that the type is not comparable + + + The struct, record or union type '{0}' is not structurally comparable because the type '{1}' does not satisfy the 'comparison' constraint. Consider adding the 'NoComparison' attribute to the type '{2}' to clarify that the type is not comparable + + + The struct, record or union type '{0}' does not support structural equality because the type parameter {1} does not satisfy the 'equality' constraint. Consider adding the 'NoEquality' attribute to the type '{2}' to clarify that the type does not support structural equality + + + The struct, record or union type '{0}' does not support structural equality because the type '{1}' does not satisfy the 'equality' constraint. Consider adding the 'NoEquality' attribute to the type '{2}' to clarify that the type does not support structural equality + + + The struct, record or union type '{0}' has the 'StructuralEquality' attribute but the type parameter '{1}' does not satisfy the 'equality' constraint. Consider adding the 'equality' constraint to the type parameter + + + The struct, record or union type '{0}' has the 'StructuralEquality' attribute but the component type '{1}' does not satisfy the 'equality' constraint + + + Each argument of the primary constructor for a struct must be given a type, for example 'type S(x1:int, x2: int) = ...'. These arguments determine the fields of the struct. + + + The value '{0}' is unused + + + The recursive object reference '{0}' is unused. The presence of a recursive object reference adds runtime initialization checks to members in this and derived types. Consider removing this recursive object reference. + + + A getter property may have at most one argument group + + + A setter property may have at most two argument groups + + + Invalid property getter or setter + + + An indexer property must be given at least one argument + + + This operation accesses a mutable top-level value defined in another assembly in an unsupported way. The value cannot be accessed through its address. Consider copying the expression to a mutable local, e.g. 'let mutable x = ...', and if necessary assigning the value back after the completion of the operation + + + Type parameters must be placed directly adjacent to the type name, e.g. \"type C<'T>\", not type \"C <'T>\" + + + Type arguments must be placed directly adjacent to the type name, e.g. \"C<'T>\", not \"C <'T>\" + + + The use of the type syntax 'int C' and 'C <int>' is not permitted here. Consider adjusting this type to be written in the form 'C<int>' + + + The type {0} did not contain the field '{1}' + + + The type {0} did not contain the union case '{1}' + + + The module/namespace '{0}' from compilation unit '{1}' did not contain the module/namespace '{2}' + + + The module/namespace '{0}' from compilation unit '{1}' did not contain the val '{2}' + + + The module/namespace '{0}' from compilation unit '{1}' did not contain the namespace, module or type '{2}' + + + The 'UseNullAsTrueValue' attribute flag may only be used with union types that have one nullary case and at least one non-nullary case + + + The parameter '{0}' was inferred to have byref type. Parameters of byref type must be given an explicit type annotation, e.g. 'x1: byref<int>'. When used, a byref parameter is implicitly dereferenced. + + + The generic member '{0}' has been used at a non-uniform instantiation prior to this program point. Consider reordering the members so this member occurs first. Alternatively, specify the full type of the member explicitly, including argument types, return type and any additional generic parameters and constraints. + + + The use of named arguments in union case expressions is reserved for future use. Arguments of the form 'a=b' should be parenthesized. + + + The attribute '{0}' appears in both the implementation and the signature, but the attribute arguments differ. Only the attribute from the signature will be included in the compiled code. + + + Cannot call an abstract base member: '{0}' + + + Could not resolve the ambiguity in the use of a generic construct with an 'unmanaged' constraint at or near this position + + + This construct is for ML compatibility. {0}. You can disable this warning by using '--mlcompatibility' or '--nowarn:62'. + + + The type '{0}' has been marked as having an Explicit layout, but the field '{1}' has not been marked with the 'FieldOffset' attribute + + + Interfaces inherited by other interfaces should be declared using 'inherit ...' instead of 'interface ...' + + + Invalid prefix operator + + + Invalid operator definition. Prefix operator definitions must use a valid prefix operator name. + + + The file extensions '.ml' and '.mli' are for ML compatibility + + + Consider using a file with extension '.ml' or '.mli' instead + + + Active pattern '{0}' is not a function + + + Active pattern '{0}' has a result type containing type variables that are not determined by the input. The common cause is a when a result case is not mentioned, e.g. 'let (|A|B|) (x:int) = A x'. This can be fixed with a type constraint, e.g. 'let (|A|B|) (x:int) : Choice<int,unit> = A x' + + + The FieldOffset attribute can only be placed on members of types marked with the StructLayout(LayoutKind.Explicit) + + + Optional arguments must come at the end of the argument list, after any non-optional arguments + + + Attribute 'System.Diagnostics.ConditionalAttribute' is only valid on methods or attribute classes + + + Extension members cannot provide operator overloads. Consider defining the operator as part of the type definition instead. + + + The name of the MDB file must be <assembly-file-name>.mdb. The --pdb option will be ignored. + + + MDB generation failed. Could not find compatible member {0} + + + Cannot generate MDB debug information. Failed to load the 'MonoSymbolWriter' type from the 'Mono.CompilerServices.SymbolWriter.dll' assembly. + + + The union case named '{0}' conflicts with the generated type '{1}' + + + ReflectedDefinitionAttribute may not be applied to an instance member on a struct type, because the instance member takes an implicit 'this' byref parameter + + + DLLImport bindings must be static members in a class or function definitions in a module + + + When mscorlib.dll or FSharp.Core.dll is explicitly referenced the {0} option must also be passed + + + FSharp.Core.sigdata not found alongside FSharp.Core + + + Did not expect to find optdata resource in FSharp.Core.dll + + + File '{0}' not found alongside FSharp.Core + + + Did not expect to find sigdata resource in FSharp.Core.dll + + + Filename '{0}' contains invalid character '{1}' + + + 'use!' bindings must be of the form 'use! <var> = <expr>' + + + Inner generic functions are not permitted in quoted expressions. Consider adding some type constraints until this function is no longer generic. + + + The type '{0}' is not a valid enumerator type , i.e. does not have a 'MoveNext()' method returning a bool, and a 'Current' property + + + End of file in triple-quote string begun at or before here + + + End of file in triple-quote string embedded in comment begun at or before here + + + This type test or downcast will ignore the unit-of-measure '{0}' + + + Expected type argument or static argument + + + Unmatched '<'. Expected closing '>' + + + Unexpected quotation operator '<@' in type definition. If you intend to pass a verbatim string as a static argument to a type provider, put a space between the '<' and '@' characters. + + + Attempted to parse this as an operator name, but failed + + + Exiting - too many errors + + + The documentation file has no .xml suffix + + + No implementation files specified + + + An AssemblyVersionAttribute specified version '{0}', but this value is invalid and has been ignored + + + Conflicting options specified: 'win32manifest' and 'win32res'. Only one of these can be used. + + + The code in assembly '{0}' makes uses of quotation literals. Static linking may not include components that make use of quotation literals. + + + Code in this assembly makes uses of quotation literals. Static linking may not include components that make use of quotation literals. + + + Static linking may not include a .EXE + + + Static linking may not include a mixed managed/unmanaged DLL + + + Ignoring mixed managed/unmanaged assembly '{0}' during static linking + + + Assembly '{0}' was referenced transitively and the assembly could not be resolved automatically. Static linking will assume this DLL has no dependencies on the F# library or other statically linked DLLs. Consider adding an explicit reference to this DLL. + + + Assembly '{0}' not found in dependency set of target binary. Statically linked roots should be specified using an assembly name, without a DLL or EXE extension. If this assembly was referenced explicitly then it is possible the assembly was not actually required by the generated binary, in which case it should not be statically linked. + + + The key file '{0}' could not be opened + + + A problem occurred writing the binary '{0}': {1} + + + The 'AssemblyVersionAttribute' has been ignored because a version was given using a command line option + + + Error emitting 'System.Reflection.AssemblyCultureAttribute' attribute -- 'Executables cannot be satellite assemblies, Culture should always be empty' + + + Option '--delaysign' overrides attribute 'System.Reflection.AssemblyDelaySignAttribute' given in a source file or added module + + + Option '--keyfile' overrides attribute 'System.Reflection.AssemblyKeyFileAttribute' given in a source file or added module + + + Option '--keycontainer' overrides attribute 'System.Reflection.AssemblyNameAttribute' given in a source file or added module + + + The assembly '{0}' is listed on the command line. Assemblies should be referenced using a command line flag such as '-r'. + + + The resident compilation service was not used because a problem occured in communicating with the server. + + + Problem with filename '{0}': Illegal characters in path. + + + Passing a .resx file ({0}) as a source file to the compiler is deprecated. Use resgen.exe to transform the .resx file into a .resources file to pass as a --resource option. If you are using MSBuild, this can be done via an <EmbeddedResource> item in the .fsproj project file. + + + Character '{0}' is not allowed in provided namespace name '{1}' + + + The provided type '{0}' returned a member with a null or empty member name + + + The provided type '{0}' returned a null member + + + The provided type '{0}' member info '{1}' has null declaring type + + + The provided type '{0}' has member '{1}' which has declaring type '{2}'. Expected declaring type to be the same as provided type. + + + Referenced assembly '{0}' has assembly level attribute '{1}' but no public type provider classes were found + + + Type '{0}' from type provider '{1}' has an empty namespace. Use 'null' for the global namespace. + + + Empty namespace found from the type provider '{0}'. Use 'null' for the global namespace. + + + Provided type '{0}' has 'IsGenericType' as true, but generic types are not supported. + + + Provided type '{0}' has 'IsArray' as true, but array types are not supported. + + + Invalid member '{0}' on provided type '{1}'. Provided type members must be public, and not be generic, virtual, or abstract. + + + Invalid member '{0}' on provided type '{1}'. Only properties, methods and constructors are allowed + + + Property '{0}' on provided type '{1}' has CanRead=true but there was no value from GetGetMethod() + + + Property '{0}' on provided type '{1}' has CanRead=false but GetGetMethod() returned a method + + + Property '{0}' on provided type '{1}' has CanWrite=true but there was no value from GetSetMethod() + + + Property '{0}' on provided type '{1}' has CanWrite=false but GetSetMethod() returned a method + + + One or more errors seen during provided type setup + + + Unexpected exception from provided type '{0}' member '{1}': {2} + + + Unsupported constant type '{0}' + + + Unsupported expression '{0}' from type provider. If you are the author of this type provider, consider adjusting it to provide a different provided expression. + + + Expected provided type named '{0}' but provided type has 'Name' with value '{1}' + + + Event '{0}' on provided type '{1}' has no value from GetAddMethod() + + + Event '{0}' on provided type '{1}' has no value from GetRemoveMethod() + + + Assembly attribute '{0}' refers to a designer assembly '{1}' which cannot be loaded or doesn't exist. {2} + + + The type provider does not have a valid constructor. A constructor taking either no arguments or one argument of type 'TypeProviderConfig' was expected. + + + The type provider '{0}' reported an error: {1} + + + The type provider '{0}' used an invalid parameter in the ParameterExpression: {1} + + + The type provider '{0}' provided a method with a name '{1}' and metadata token '{2}', which is not reported among its methods of its declaring type '{3}' + + + The type provider '{0}' provided a constructor which is not reported among the constructors of its declaring type '{1}' + + + A direct reference to the generated type '{0}' is not permitted. Instead, use a type definition, e.g. 'type TypeAlias = <path>'. This indicates that a type provider adds generated types to your assembly. + + + Expected provided type with path '{0}' but provided type has path '{1}' + + + Unexpected 'null' return value from provided type '{0}' member '{1}' + + + Unexpected exception from member '{0}' of provided type '{1}' member '{2}': {3} + + + Nested provided types do not take static arguments or generic parameters + + + Invalid static argument to provided type. Expected an argument of kind '{0}'. + + + An error occured applying the static arguments to a provided type + + + Unknown static argument kind '{0}' when resolving a reference to a provided type '{1}' + + + invalid namespace for provided type + + + invalid full name for provided type + + + The type provider returned 'null', which is not a valid return value from '{0}' + + + The type provider constructor has thrown an exception: {0} + + + Type provider '{0}' returned null from GetInvokerExpression. + + + The type provider '{0}' returned an invalid type from 'ApplyStaticArguments'. A type with name '{1}' was expected, but a type with name '{2}' was returned. + + + This type test or downcast will erase the provided type '{0}' to the type '{1}' + + + This downcast will erase the provided type '{0}' to the type '{1}'. + + + This type test with a provided type '{0}' is not allowed because this provided type will be erased to '{1}' at runtime. + + + Cannot inherit from erased provided type + + + Assembly '{0}' hase TypeProviderAssembly attribute with invalid value '{1}'. The value should be a valid assembly name + + + Invalid member name. Members may not have name '.ctor' or '.cctor' + + + The function or member '{0}' is used in a way that requires further type annotations at its definition to ensure consistency of inferred types. The inferred signature is '{1}'. + + + The number of type arguments did not match: '{0}' given, '{1}' expected. This may be related to a previously reported error. + + + Cannot override inherited member '{0}' because it is sealed + + + The type provider '{0}' reported an error in the context of provided type '{1}', member '{2}'. The error: {3} + + + An exception occurred when accessing the '{0}' of a provided type: {1} + + + The '{0}' of a provided type was null or empty. + + + Character '{0}' is not allowed in provided type name '{1}' + + + In queries, '{0}' must use a simple pattern + + + A custom query operation for '{0}' is required but not specified + + + Named static arguments must come after all unnamed static arguments + + + The static parameter '{0}' of the provided type '{1}' requires a value. Static parameters to type providers may be optionally specified using named arguments, e.g. '{2}<{3}=...>'. + + + No static parameter exists with name '{0}' + + + The static parameter '{0}' has already been given a value + + + Multiple static parameters exist with name '{0}' + + + A custom operation may not be used in conjunction with a non-value or recursive 'let' binding in another part of this computation expression + + + A custom operation may not be used in conjunction with 'use', 'try/with', 'try/finally', 'if/then/else' or 'match' operators within this computation expression + + + The custom operation '{0}' refers to a method which is overloaded. The implementations of custom operations may not be overloaded. + + + A try/finally expression may not be used within a computation expression with uses of custom operators. Consider using a sequence expression instead. + + + A try/with expression may not be used within a within a computation expression with uses of custom operators. Consider using a sequence expression instead. + + + An if/then/else expression may not be used within a computation expression with uses of custom operators. Consider using either an if/then expression, or use a sequence expression instead. + + + Invalid argument to 'methodhandleof' during codegen + + + A reference to a provided type was missing a value for the static parameter '{0}'. You may need to recompile one or more referenced assemblies. + + + A reference to a provided type had an invalid value '{0}' for a static parameter. You may need to recompile one or more referenced assemblies. + + + '{0}' is not used correctly. This is a custom operation in this query or computation expression. + + + '{0}' is not used correctly. Usage: {1}. This is a custom operation in this query or computation expression. + + + {0} var in collection {1} (outerKey = innerKey). Note that parentheses are required after '{2}' + + + {0} var in collection {1} (outerKey = innerKey) into group. Note that parentheses are required after '{2}' + + + {0} collection into var + + + '{0}' must be followed by a variable name. Usage: {1}. + + + Incorrect syntax for '{0}'. Usage: {1}. + + + '{0}' must come after a 'for' selection clause and be followed by the rest of the query. Syntax: ... {1} ... + + + '{0}' is used with an incorrect number of arguments. This is a custom operation in this query or computation expression. Expected {1} argument(s), but given {2}. + + + Expected an expression after this point + + + Expected a type after this point + + + Unmatched '[<'. Expected closing '>]' + + + Unexpected end of input in 'match' expression. Expected 'match <expr> with | <pat> -> <expr> | <pat> -> <expr> ...'. + + + Unexpected end of input in 'try' expression. Expected 'try <expr> with <rules>' or 'try <expr> finally <expr>'. + + + Unexpected end of input in 'while' expression. Expected 'while <expr> do <expr>'. + + + Unexpected end of input in 'for' expression. Expected 'for <pat> in <expr> do <expr>'. + + + Unexpected end of input in 'match' or 'try' expression + + + Unexpected end of input in 'then' branch of conditional expression. Expected 'if <expr> then <expr>' or 'if <expr> then <expr> else <expr>'. + + + Unexpected end of input in 'else' branch of conditional expression. Expected 'if <expr> then <expr>' or 'if <expr> then <expr> else <expr>'. + + + Unexpected end of input in body of lambda expression. Expected 'fun <pat> ... <pat> -> <expr>'. + + + Unexpected end of input in type arguments + + + Unexpected end of input in type signature + + + Unexpected end of input in type definition + + + Unexpected end of input in object members + + + Unexpected end of input in value, function or member definition + + + Unexpected end of input in expression + + + Unexpected end of type. Expected a name after this point. + + + Incomplete value or function definition. If this is in an expression, the body of the expression must be indented to the same column as the 'let' keyword. + + + Incomplete value definition. If this is in an expression, the body of the expression must be indented to the same column as the 'let!' keyword. + + + Incomplete value definition. If this is in an expression, the body of the expression must be indented to the same column as the 'use!' keyword. + + + Incomplete value definition. If this is in an expression, the body of the expression must be indented to the same column as the 'use' keyword. + + + Missing 'do' in 'while' expression. Expected 'while <expr> do <expr>'. + + + Missing 'do' in 'for' expression. Expected 'for <pat> in <expr> do <expr>'. + + + Invalid join relation in '{0}'. Expected 'expr <op> expr', where <op> is =, =?, ?= or ?=?. + + + Calls + + + Invalid number of generic arguments to type '{0}' in provided type. Expected '{1}' arguments, given '{2}'. + + + Invalid value '{0}' for unit-of-measure parameter '{1}' + + + Invalid value unit-of-measure parameter '{0}' + + + Property '{0}' on provided type '{1}' is neither readable nor writable as it has CanRead=false and CanWrite=false + + + A use of 'into' must be followed by the remainder of the computation + + + The operator '{0}' does not accept the use of 'into' + + + The definition of the custom operator '{0}' does not use a valid combination of attribute flags + + + This type definition may not have the 'CLIMutable' attribute. Only record types may have this attribute. + + + 'member val' definitions are only permitted in types with a primary constructor. Consider adding arguments to your type definition, e.g. 'type X(args) = ...'. + + + Property definitions may not be declared mutable. To indicate that this property can be set, use 'member val PropertyName = expr with get,set'. + + + To indicate that this property can be set, use 'member val PropertyName = expr with get,set'. + + + Type '{0}' is illegal because in byref<T>, T cannot contain byref types. + + + Type provider assembly '{0}' is not trusted and will not be loaded for security reasons. This may cause subsequent build errors. See the 'F# Tools' section of Visual Studio options for more information. + + + F# supports a maximum array rank of 4 + + + In queries, use the form 'for x in n .. m do ...' for ranging over integers + + + 'while' expressions may not be used in queries + + + 'try/finally' expressions may not be used in queries + + + 'use' expressions may not be used in queries + + + 'let!', 'use!' and 'do!' expressions may not be used in queries + + + 'return' and 'return!' may not be used in queries + + + This is not a known query operator. Query operators are identifiers such as 'select', 'where', 'sortBy', 'thenBy', 'groupBy', 'groupValBy', 'join', 'groupJoin', 'sumBy' and 'averageBy', defined using corresponding methods on the 'QueryBuilder' type. + + + 'try/with' expressions may not be used in queries + + + This 'let' definition may not be used in a query. Only simple value definitions may be used in queries. + + + Too many static parameters. Expected at most {0} parameters, but got {1} unnamed and {2} named parameters. + + + Invalid provided literal value '{0}' + + + The 'anycpu32bitpreferred' platform can only be used with EXE targets. You must use 'anycpu' instead. + + + This member, function or value declaration may not be declared 'inline' + + + The provider '{0}' returned a non-generated type '{1}' in the context of a set of generated types. Consider adjusting the type provider to only return generated types. + + + Arguments to query operators may require parentheses, e.g. 'where (x > y)' or 'groupBy (x.Length / 10)' + + + The 'anycpu32bitpreferred' platform flag may only be used with .NET Framework versions 4.5 and greater. + + + A quotation may not involve an assignment to or taking the address of a captured local variable + + + + 1 overload + + + + {0} overloads + + + Erased to + + + Unexpected token '{0}' or incomplete expression + + + Quotations cannot contain byref types + + + Cannot find code target for this attribute, possibly because the code after the attribute is incomplete. + + + Type name cannot be empty. + + + Problem reading assembly '{0}': {1} + + + Invalid provided field. Provided fields of erased provided types must be literals. + + + (loading description...) + + + (description unavailable...) + + + A type variable has been constrained by multiple different class types. A type variable may only have one class constraint. + + + 'match' expressions may not be used in queries + + + Infix operator member '{0}' has {1} initial argument(s). Expected a tuple of 3 arguments + + + The operator '{0}' cannot be resolved. Consider opening the module 'Microsoft.FSharp.Linq.NullableOperators'. + + + '{0}' must be followed by 'in'. Usage: {1}. + + + Neither 'member val' nor 'override val' definitions are permitted in object expressions. + + + Copy-and-update record expressions must include at least one field. + + + '_' cannot be used as field name + + + The provided types generated by this use of a type provider may not be used from other F# assemblies and should be marked internal or private. Consider using 'type internal TypeName = ...' or 'type private TypeName = ...'. + + + A property's getter and setter must have the same type. Property '{0}' has getter of type '{1}' but setter of type '{2}'. + + + Array method '{0}' is supplied by the runtime and cannot be directly used in code. For operations with array elements consider using family of GetArray/SetArray functions from LanguagePrimitives.IntrinsicFunctions module. + + \ No newline at end of file diff --git a/src/fsharp/FSharp.AbsIL/FSharp.AbsIL.fsproj b/src/fsharp/FSharp.AbsIL/FSharp.AbsIL.fsproj new file mode 100644 index 0000000..76af642 --- /dev/null +++ b/src/fsharp/FSharp.AbsIL/FSharp.AbsIL.fsproj @@ -0,0 +1,221 @@ + + + + + + $(MSBuildProjectDirectory)\..\.. + + + Debug + AnyCPU + Library + FSharp.AbsIL + EXTENSIONTYPING;COMPILER;INCLUDE_METADATA_READER;INCLUDE_METADATA_WRITER;EXTENSIBLE_DUMPER;TYPE_PROVIDER_SECURITY;$(DefineConstants) + $(NoWarn);44;62;9 + {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3} + true + 0x06800000 + $(OtherFlags) /warnon:1182 + v4.5 + + + + + bin\Debug + + + + + + + FSComp.txt + + + FSComp.fs + + + FSStrings.resx + + + assemblyinfo.FSharp.Compiler.dll.fs + + + sr.fsi + + + sr.fs + + + prim-lexing.fsi + + + prim-lexing.fs + + + prim-parsing.fsi + + + prim-parsing.fs + + + resizearray.fsi + + + resizearray.fs + + + HashMultiMap.fsi + + + HashMultiMap.fs + + + TaggedCollections.fsi + + + TaggedCollections.fs + + + FlatList.fs + + + illib.fs + + + filename.fsi + + + filename.fs + + + zmap.fsi + + + zmap.fs + + + zset.fsi + + + zset.fs + + + bytes.fsi + + + bytes.fs + + + ildiag.fsi + + + ildiag.fs + + + ReferenceResolution.fs + + + il.fsi + + + il.fs + + + ilx.fsi + + + ilx.fs + + + ilascii.fsi + + + ilascii.fs + + + ilprint.fsi + + + ilprint.fs + + + ilmorph.fsi + + + ilmorph.fs + + + ilsupp.fsi + + + ilsupp.fs + + + + + ilbinary.fsi + + + ilbinary.fs + + + lib.fs + + + range.fsi + + + range.fs + + + ErrorLogger.fs + + + InternalCollections.fsi + + + InternalCollections.fs + + + ilread.fsi + + + ilread.fs + + + ilwrite.fsi + + + ilwrite.fs + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/fsharp/FSharp.AbsIL/Makefile.in b/src/fsharp/FSharp.AbsIL/Makefile.in new file mode 100644 index 0000000..b19b3a1 --- /dev/null +++ b/src/fsharp/FSharp.AbsIL/Makefile.in @@ -0,0 +1,208 @@ +NAME=FSharp.Compiler +ASSEMBLY = $(NAME).dll +TOKEN=$(SIGN_TOKEN) + +srcdir := @abs_srcdir@/ + +include @abs_top_builddir@/config.make + +FSC=$(protodir)fsc-proto.exe + +FLAGS += \ + $(SIGN_FLAGS) \ + --target:library + +DEFINES += \ + --define:COMPILER \ + --define:INCLUDE_METADATA_READER \ + --define:INCLUDE_METADATA_WRITER + +DEFINES_4_0 += \ + --define:EXTENSIONTYPING + +REFERENCES += \ + -r:$(outdir)FSharp.Core.dll \ + -r:$(monolibdir)System.Drawing.dll \ + -r:$(monolibdir)System.Windows.Forms.dll + + +sources = \ + $(tmpdir)FSComp.fs \ + ../../assemblyinfo/assemblyinfo.FSharp.Compiler.dll.fs \ + ../../utils/sformat.fsi \ + ../../utils/sformat.fs \ + ../sr.fsi \ + ../sr.fs \ + ../../utils/prim-lexing.fsi \ + ../../utils/prim-lexing.fs \ + ../../utils/prim-parsing.fsi \ + ../../utils/prim-parsing.fs \ + ../../utils/resizearray.fsi \ + ../../utils/resizearray.fs \ + ../../utils/HashMultiMap.fsi \ + ../../utils/HashMultiMap.fs \ + ../../utils/TaggedCollections.fsi \ + ../../utils/TaggedCollections.fs \ + ../FlatList.fs \ + ../../absil/illib.fs \ + ../../utils/filename.fsi \ + ../../utils/filename.fs \ + ../../absil/zmap.fsi \ + ../../absil/zmap.fs \ + ../../absil/zset.fsi \ + ../../absil/zset.fs \ + ../../absil/bytes.fsi \ + ../../absil/bytes.fs \ + ../../absil/ildiag.fsi \ + ../../absil/ildiag.fs \ + ../ReferenceResolution.fs \ + ../../absil/il.fsi \ + ../../absil/il.fs \ + ../../absil/ilx.fsi \ + ../../absil/ilx.fs \ + ../../absil/ilascii.fsi \ + ../../absil/ilascii.fs \ + ../../absil/ilprint.fsi \ + ../../absil/ilprint.fs \ + ../../absil/ilmorph.fsi \ + ../../absil/ilmorph.fs \ + ../../absil/ilsupp.fsi \ + ../../absil/ilsupp.fs \ + $(tmpdir)ilpars.fs \ + $(tmpdir)illex.fs \ + ../../absil/ilbinary.fsi \ + ../../absil/ilbinary.fs \ + ../lib.fs \ + ../range.fsi \ + ../range.fs \ + ../ErrorLogger.fs \ + ../tainted.fsi \ + ../tainted.fs \ + ../InternalCollections.fsi \ + ../InternalCollections.fs \ + ../../absil/ilread.fsi \ + ../../absil/ilread.fs \ + ../../absil/ilwrite.fsi \ + ../../absil/ilwrite.fs \ + ../../absil/ilreflect.fs \ + ../../utils/CompilerLocationUtils.fs \ + ../PrettyNaming.fs \ + ../../ilx/ilxsettings.fs \ + ../../ilx/pubclo.fsi \ + ../../ilx/pubclo.fs \ + ../../ilx/cu_erase.fsi \ + ../../ilx/cu_erase.fs \ + ../InternalFileSystemUtils.fsi \ + ../InternalFileSystemUtils.fs \ + ../unilex.fsi \ + ../unilex.fs \ + ../layout.fsi \ + ../layout.fs \ + ../ast.fs \ + ../est.fsi \ + ../est.fs \ + $(tmpdir)pars.fs \ + ../lexhelp.fsi \ + ../lexhelp.fs \ + $(tmpdir)lex.fs \ + ../sreflect.fsi \ + ../sreflect.fs \ + ../QueueList.fs \ + ../tast.fs \ + ../env.fs \ + ../tastops.fsi \ + ../tastops.fs \ + ../pickle.fsi \ + ../pickle.fs \ + ../lexfilter.fs \ + ../import.fsi \ + ../import.fs \ + ../infos.fs \ + ../NicePrint.fs \ + ../augment.fsi \ + ../augment.fs \ + ../typrelns.fs \ + ../patcompile.fsi \ + ../patcompile.fs \ + ../outcome.fsi \ + ../outcome.fs \ + ../csolve.fsi \ + ../csolve.fs \ + ../formats.fsi \ + ../formats.fs \ + ../nameres.fsi \ + ../nameres.fs \ + ../unsolved.fs \ + ../creflect.fsi \ + ../creflect.fs \ + ../check.fsi \ + ../check.fs \ + ../tc.fsi \ + ../tc.fs \ + ../opt.fsi \ + ../opt.fs \ + ../detuple.fsi \ + ../detuple.fs \ + ../tlr.fsi \ + ../tlr.fs \ + ../lowertop.fs \ + ../ilxgen.fsi \ + ../ilxgen.fs \ + ../TraceCall.fs \ + ../build.fsi \ + ../build.fs \ + ../fscopts.fsi \ + ../fscopts.fs \ + ../vs/IncrementalBuild.fsi \ + ../vs/IncrementalBuild.fs \ + ../vs/Reactor.fsi \ + ../vs/Reactor.fs \ + ../vs/ServiceLexing.fsi \ + ../vs/ServiceLexing.fs \ + ../vs/ServiceConstants.fs \ + ../vs/ServiceParseTreeWalk.fs \ + ../vs/ServiceNavigation.fsi \ + ../vs/ServiceNavigation.fs \ + ../vs/ServiceParamInfoLocations.fsi \ + ../vs/ServiceParamInfoLocations.fs \ + ../vs/ServiceUntypedParse.fsi \ + ../vs/ServiceUntypedParse.fs \ + ../vs/ServiceDeclarations.fsi \ + ../vs/ServiceDeclarations.fs \ + ../vs/service.fsi \ + ../vs/service.fs \ + ../fsc.fs + +RESOURCES= \ + $(tmpdir)FSStrings.resources \ + $(tmpdir)FSComp.resources + +$(tmpdir)FSComp.fs $(tmpdir)FSComp.resources: ../FSComp.txt + mono $(MONO_OPTIONS) $(FSSRGEN) $< $(tmpdir)FSComp.fs $(tmpdir)FSComp.resx + resgen $(tmpdir)FSComp.resx $(tmpdir)FSComp.resources + +$(tmpdir)FSStrings.resources: ../FSStrings.resx + resgen $< $@ + +$(tmpdir)lex.fs: ../lex.fsl + mono $(MONO_OPTIONS) $(FSLEX) $< -o $@ --lexlib Internal.Utilities.Text.Lexing --unicode + +$(tmpdir)illex.fs: ../../absil/illex.fsl + mono $(MONO_OPTIONS) $(FSLEX) $< -o $@ --lexlib Internal.Utilities.Text.Lexing --unicode + +$(tmpdir)pars.fs: ../pars.fsy + mono $(MONO_OPTIONS) $(FSYACC) $< -o $@ --internal --open Microsoft.FSharp.Compiler --module Microsoft.FSharp.Compiler.Parser --lexlib Internal.Utilities.Text.Lexing --parslib Internal.Utilities.Text.Parsing | tee $@.report | grep "time" + +$(tmpdir)ilpars.fs: ../../absil/ilpars.fsy + mono $(MONO_OPTIONS) $(FSYACC) $< -o $@ --internal --module Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiParser --lexlib Internal.Utilities.Text.Lexing --parslib Internal.Utilities.Text.Parsing | tee $@.report | grep "time" + +include $(topdir)/src/fsharp/targets.make + +do-final: do-4-0 + +clean: clean-4-0 + +install: install-lib-4 install-lib-4-5 + + + diff --git a/src/fsharp/FSharp.AbsIL/illex.fs b/src/fsharp/FSharp.AbsIL/illex.fs new file mode 100644 index 0000000..3322b0e --- /dev/null +++ b/src/fsharp/FSharp.AbsIL/illex.fs @@ -0,0 +1,544 @@ +# 2 "..\..\absil\illex.fsl" + +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +module internal Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiLexer + +open Internal.Utilities +open Internal.Utilities.Collections +open Internal.Utilities.Text +open Internal.Utilities.Text.Lexing +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library + +open Microsoft.FSharp.Compiler.AbstractIL.Diagnostics +open Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiParser +open Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiConstants + + +let lexeme (lexbuf : LexBuffer) = new System.String(lexbuf.Lexeme) + +let unexpectedChar lexbuf = + dprintf "Unexpected character '%s'" (lexeme lexbuf); + raise Parsing.RecoverableParseError ;; + +// -------------------------------------------------------------------- +// Keywords +// -------------------------------------------------------------------- + +let keywords = + lazy [ "void",VOID; + "bool",BOOL; + "bytearray",BYTEARRAY; + "char",CHAR; + "class",CLASS; + "default",DEFAULT; + "explicit",EXPLICIT; + "float32",FLOAT32; + "float64",FLOAT64; + "instance",INSTANCE; + "int",INT; + "int16",INT16; + "int32",INT32; + "int64",INT64; + "int8",INT8; + "method",METHOD; + "native",NATIVE; + "object", OBJECT; + "string",STRING; + "uint",UINT; + "uint16",UINT16; + "uint32",UINT32; + "uint64",UINT64; + "uint8",UINT8; + "unmanaged",UNMANAGED; + "unsigned",UNSIGNED; + "value",VALUE; + "valuetype",VALUETYPE; + "vararg",VARARG ] + +// -------------------------------------------------------------------- +// Instructions +// -------------------------------------------------------------------- + +let kwdInstrTable = + lazy + (let t = HashMultiMap(1000, HashIdentity.Structural) + List.iter t.Add (Lazy.force keywords); + let addTable f l = List.iter (fun (x,i) -> t.Add (String.concat "." x,f i)) (Lazy.force l) + addTable (fun i -> INSTR_NONE i) NoArgInstrs; + addTable (fun i -> INSTR_I i) Int32Instrs; + addTable (fun i -> INSTR_I32_I32 i) Int32Int32Instrs; + addTable (fun i -> INSTR_I8 i) Int64Instrs; + addTable (fun i -> INSTR_R i) DoubleInstrs; + addTable (fun i -> INSTR_METHOD i) MethodSpecInstrs; + addTable (fun i -> INSTR_TYPE i) TypeInstrs; + addTable (fun i -> INSTR_INT_TYPE i) IntTypeInstrs; + addTable (fun i -> INSTR_VALUETYPE i) ValueTypeInstrs; + addTable (fun i -> INSTR_STRING i) StringInstrs; + addTable (fun i -> INSTR_TOK i) TokenInstrs; + t) + +let kwdOrInstr s = (Lazy.force kwdInstrTable).[s] (* words *) + +let eval = function + | '0' -> 0 | '1' -> 1 | '2' -> 2 | '3' -> 3 | '4' -> 4 | '5' -> 5 + | '6' -> 6 | '7' -> 7 | '8' -> 8 | '9' -> 9 + | 'A' -> 10 | 'B' -> 11 | 'C' -> 12 | 'D' -> 13 | 'E' -> 14 | 'F' -> 15 + | 'a' -> 10 | 'b' -> 11 | 'c' -> 12 | 'd' -> 13 | 'e' -> 14 | 'f' -> 15 + | _ -> failwith "bad hexbyte" + +let kwdOrInstrOrId s = if (Lazy.force kwdInstrTable).ContainsKey s then kwdOrInstr s else VAL_ID s + + +# 105 "illex.fs" +let trans : uint16[] array = + [| + (* State 0 *) + [| 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 32us; 32us; 33us; 33us; 32us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 32us; 4us; 33us; 33us; 31us; 33us; 5us; 33us; 6us; 7us; 3us; 14us; 1us; 23us; 2us; 10us; 15us; 16us; 16us; 16us; 16us; 16us; 16us; 16us; 16us; 16us; 13us; 33us; 11us; 33us; 12us; 31us; 31us; 17us; 17us; 17us; 17us; 17us; 18us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 8us; 33us; 9us; 33us; 31us; 31us; 19us; 20us; 21us; 22us; 17us; 17us; 31us; 31us; 30us; 31us; 31us; 27us; 26us; 28us; 31us; 31us; 31us; 25us; 24us; 31us; 29us; 31us; 31us; 31us; 31us; 31us; 33us; 33us; 33us; 33us; 33us; 128us; 31us; 129us; 31us; 130us; 31us; 131us; 31us; 132us; 31us; 133us; 31us; 134us; 31us; 135us; 31us; 136us; 31us; 137us; 31us; 138us; 31us; 139us; 31us; 140us; 31us; 141us; 31us; 142us; 31us; 143us; 31us; 144us; 31us; 145us; 31us; 146us; 31us; 147us; 31us; 148us; 31us; 149us; 31us; 150us; 31us; 151us; 31us; 152us; 31us; 153us; 31us; 154us; 31us; 155us; 31us; 156us; 31us; 157us; 31us; 158us; 31us; 159us; 31us; 160us; 31us; 161us; 31us; 162us; 31us; 163us; 31us; 164us; 31us; 165us; 31us; 166us; 31us; 167us; 31us; 168us; 31us; 169us; 31us; 170us; 31us; 171us; 31us; 172us; 31us; 173us; 31us; 174us; 31us; 175us; 31us; 176us; 31us; 177us; 31us; 178us; 31us; 179us; 31us; 180us; 31us; 181us; 31us; 182us; 31us; 183us; 31us; 184us; 31us; 185us; 31us; 186us; 31us; 187us; 31us; 188us; 31us; 189us; 31us; 190us; 31us; 191us; 31us; 192us; 31us; 193us; 31us; 194us; 31us; 195us; 31us; 196us; 31us; 197us; 31us; 198us; 31us; 199us; 31us; 200us; 31us; 201us; 31us; 202us; 31us; 203us; 31us; 204us; 31us; 205us; 31us; 206us; 31us; 207us; 31us; 208us; 31us; 209us; 31us; 210us; 31us; 211us; 31us; 212us; 31us; 213us; 31us; 214us; 31us; 215us; 31us; 216us; 31us; 217us; 31us; 218us; 31us; 219us; 31us; 220us; 31us; 221us; 31us; 222us; 31us; 223us; 31us; 224us; 31us; 225us; 31us; 226us; 31us; 227us; 31us; 228us; 31us; 229us; 31us; 230us; 31us; 231us; 31us; 232us; 31us; 233us; 31us; 234us; 31us; 235us; 31us; 236us; 31us; 237us; 31us; 238us; 31us; 239us; 31us; 240us; 31us; 241us; 31us; 242us; 31us; 243us; 31us; 244us; 31us; 245us; 31us; 246us; 31us; 247us; 31us; 248us; 31us; 249us; 31us; 250us; 31us; 251us; 31us; 252us; 31us; 253us; 31us; 254us; 31us; 255us; 31us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 34us; |]; + (* State 1 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 2 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 135us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 3 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 4 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 5 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 6 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 7 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 8 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 9 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 10 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 11 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 12 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 13 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 134us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 14 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 132us; 132us; 132us; 132us; 132us; 132us; 132us; 132us; 132us; 132us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 15 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 122us; 65535us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 123us; 123us; 123us; 123us; 124us; 123us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 123us; 123us; 123us; 123us; 124us; 123us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 129us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 16 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 122us; 65535us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 123us; 123us; 123us; 123us; 124us; 123us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 123us; 123us; 123us; 123us; 124us; 123us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 17 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 102us; 102us; 102us; 102us; 102us; 102us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 102us; 102us; 102us; 102us; 102us; 102us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 18 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 102us; 102us; 102us; 102us; 102us; 114us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 102us; 102us; 102us; 102us; 102us; 102us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 19 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 102us; 102us; 102us; 102us; 102us; 102us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 102us; 102us; 102us; 113us; 102us; 102us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 20 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 102us; 102us; 102us; 102us; 102us; 102us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 102us; 102us; 102us; 102us; 110us; 102us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 111us; 112us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 21 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 102us; 102us; 102us; 102us; 102us; 102us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 102us; 102us; 102us; 102us; 104us; 102us; 106us; 35us; 35us; 35us; 35us; 107us; 35us; 108us; 105us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 22 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 102us; 102us; 102us; 102us; 102us; 102us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 102us; 102us; 102us; 102us; 102us; 102us; 35us; 35us; 103us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 23 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 94us; 94us; 94us; 94us; 94us; 94us; 94us; 94us; 94us; 94us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 24 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 85us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 86us; 84us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 25 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 83us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 26 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 82us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 27 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 68us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 28 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 64us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 29 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 61us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 30 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 45us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 31 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 32 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 33 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 34 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 35 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 36 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 37 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 38us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 65535us; 65535us; 65535us; 65535us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 38us; 129us; 38us; 130us; 38us; 131us; 38us; 132us; 38us; 133us; 38us; 134us; 38us; 135us; 38us; 136us; 38us; 137us; 38us; 138us; 38us; 139us; 38us; 140us; 38us; 141us; 38us; 142us; 38us; 143us; 38us; 144us; 38us; 145us; 38us; 146us; 38us; 147us; 38us; 148us; 38us; 149us; 38us; 150us; 38us; 151us; 38us; 152us; 38us; 153us; 38us; 154us; 38us; 155us; 38us; 156us; 38us; 157us; 38us; 158us; 38us; 159us; 38us; 160us; 38us; 161us; 38us; 162us; 38us; 163us; 38us; 164us; 38us; 165us; 38us; 166us; 38us; 167us; 38us; 168us; 38us; 169us; 38us; 170us; 38us; 171us; 38us; 172us; 38us; 173us; 38us; 174us; 38us; 175us; 38us; 176us; 38us; 177us; 38us; 178us; 38us; 179us; 38us; 180us; 38us; 181us; 38us; 182us; 38us; 183us; 38us; 184us; 38us; 185us; 38us; 186us; 38us; 187us; 38us; 188us; 38us; 189us; 38us; 190us; 38us; 191us; 38us; 192us; 38us; 193us; 38us; 194us; 38us; 195us; 38us; 196us; 38us; 197us; 38us; 198us; 38us; 199us; 38us; 200us; 38us; 201us; 38us; 202us; 38us; 203us; 38us; 204us; 38us; 205us; 38us; 206us; 38us; 207us; 38us; 208us; 38us; 209us; 38us; 210us; 38us; 211us; 38us; 212us; 38us; 213us; 38us; 214us; 38us; 215us; 38us; 216us; 38us; 217us; 38us; 218us; 38us; 219us; 38us; 220us; 38us; 221us; 38us; 222us; 38us; 223us; 38us; 224us; 38us; 225us; 38us; 226us; 38us; 227us; 38us; 228us; 38us; 229us; 38us; 230us; 38us; 231us; 38us; 232us; 38us; 233us; 38us; 234us; 38us; 235us; 38us; 236us; 38us; 237us; 38us; 238us; 38us; 239us; 38us; 240us; 38us; 241us; 38us; 242us; 38us; 243us; 38us; 244us; 38us; 245us; 38us; 246us; 38us; 247us; 38us; 248us; 38us; 249us; 38us; 250us; 38us; 251us; 38us; 252us; 38us; 253us; 38us; 254us; 38us; 255us; 38us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 38 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 39us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 39us; 65535us; 65535us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 65535us; 65535us; 65535us; 65535us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 39us; 129us; 39us; 130us; 39us; 131us; 39us; 132us; 39us; 133us; 39us; 134us; 39us; 135us; 39us; 136us; 39us; 137us; 39us; 138us; 39us; 139us; 39us; 140us; 39us; 141us; 39us; 142us; 39us; 143us; 39us; 144us; 39us; 145us; 39us; 146us; 39us; 147us; 39us; 148us; 39us; 149us; 39us; 150us; 39us; 151us; 39us; 152us; 39us; 153us; 39us; 154us; 39us; 155us; 39us; 156us; 39us; 157us; 39us; 158us; 39us; 159us; 39us; 160us; 39us; 161us; 39us; 162us; 39us; 163us; 39us; 164us; 39us; 165us; 39us; 166us; 39us; 167us; 39us; 168us; 39us; 169us; 39us; 170us; 39us; 171us; 39us; 172us; 39us; 173us; 39us; 174us; 39us; 175us; 39us; 176us; 39us; 177us; 39us; 178us; 39us; 179us; 39us; 180us; 39us; 181us; 39us; 182us; 39us; 183us; 39us; 184us; 39us; 185us; 39us; 186us; 39us; 187us; 39us; 188us; 39us; 189us; 39us; 190us; 39us; 191us; 39us; 192us; 39us; 193us; 39us; 194us; 39us; 195us; 39us; 196us; 39us; 197us; 39us; 198us; 39us; 199us; 39us; 200us; 39us; 201us; 39us; 202us; 39us; 203us; 39us; 204us; 39us; 205us; 39us; 206us; 39us; 207us; 39us; 208us; 39us; 209us; 39us; 210us; 39us; 211us; 39us; 212us; 39us; 213us; 39us; 214us; 39us; 215us; 39us; 216us; 39us; 217us; 39us; 218us; 39us; 219us; 39us; 220us; 39us; 221us; 39us; 222us; 39us; 223us; 39us; 224us; 39us; 225us; 39us; 226us; 39us; 227us; 39us; 228us; 39us; 229us; 39us; 230us; 39us; 231us; 39us; 232us; 39us; 233us; 39us; 234us; 39us; 235us; 39us; 236us; 39us; 237us; 39us; 238us; 39us; 239us; 39us; 240us; 39us; 241us; 39us; 242us; 39us; 243us; 39us; 244us; 39us; 245us; 39us; 246us; 39us; 247us; 39us; 248us; 39us; 249us; 39us; 250us; 39us; 251us; 39us; 252us; 39us; 253us; 39us; 254us; 39us; 255us; 39us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 39 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 40us; 65535us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 65535us; 65535us; 65535us; 65535us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 41us; 129us; 41us; 130us; 41us; 131us; 41us; 132us; 41us; 133us; 41us; 134us; 41us; 135us; 41us; 136us; 41us; 137us; 41us; 138us; 41us; 139us; 41us; 140us; 41us; 141us; 41us; 142us; 41us; 143us; 41us; 144us; 41us; 145us; 41us; 146us; 41us; 147us; 41us; 148us; 41us; 149us; 41us; 150us; 41us; 151us; 41us; 152us; 41us; 153us; 41us; 154us; 41us; 155us; 41us; 156us; 41us; 157us; 41us; 158us; 41us; 159us; 41us; 160us; 41us; 161us; 41us; 162us; 41us; 163us; 41us; 164us; 41us; 165us; 41us; 166us; 41us; 167us; 41us; 168us; 41us; 169us; 41us; 170us; 41us; 171us; 41us; 172us; 41us; 173us; 41us; 174us; 41us; 175us; 41us; 176us; 41us; 177us; 41us; 178us; 41us; 179us; 41us; 180us; 41us; 181us; 41us; 182us; 41us; 183us; 41us; 184us; 41us; 185us; 41us; 186us; 41us; 187us; 41us; 188us; 41us; 189us; 41us; 190us; 41us; 191us; 41us; 192us; 41us; 193us; 41us; 194us; 41us; 195us; 41us; 196us; 41us; 197us; 41us; 198us; 41us; 199us; 41us; 200us; 41us; 201us; 41us; 202us; 41us; 203us; 41us; 204us; 41us; 205us; 41us; 206us; 41us; 207us; 41us; 208us; 41us; 209us; 41us; 210us; 41us; 211us; 41us; 212us; 41us; 213us; 41us; 214us; 41us; 215us; 41us; 216us; 41us; 217us; 41us; 218us; 41us; 219us; 41us; 220us; 41us; 221us; 41us; 222us; 41us; 223us; 41us; 224us; 41us; 225us; 41us; 226us; 41us; 227us; 41us; 228us; 41us; 229us; 41us; 230us; 41us; 231us; 41us; 232us; 41us; 233us; 41us; 234us; 41us; 235us; 41us; 236us; 41us; 237us; 41us; 238us; 41us; 239us; 41us; 240us; 41us; 241us; 41us; 242us; 41us; 243us; 41us; 244us; 41us; 245us; 41us; 246us; 41us; 247us; 41us; 248us; 41us; 249us; 41us; 250us; 41us; 251us; 41us; 252us; 41us; 253us; 41us; 254us; 41us; 255us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 40 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 42us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 65535us; 65535us; 65535us; 65535us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 42us; 129us; 42us; 130us; 42us; 131us; 42us; 132us; 42us; 133us; 42us; 134us; 42us; 135us; 42us; 136us; 42us; 137us; 42us; 138us; 42us; 139us; 42us; 140us; 42us; 141us; 42us; 142us; 42us; 143us; 42us; 144us; 42us; 145us; 42us; 146us; 42us; 147us; 42us; 148us; 42us; 149us; 42us; 150us; 42us; 151us; 42us; 152us; 42us; 153us; 42us; 154us; 42us; 155us; 42us; 156us; 42us; 157us; 42us; 158us; 42us; 159us; 42us; 160us; 42us; 161us; 42us; 162us; 42us; 163us; 42us; 164us; 42us; 165us; 42us; 166us; 42us; 167us; 42us; 168us; 42us; 169us; 42us; 170us; 42us; 171us; 42us; 172us; 42us; 173us; 42us; 174us; 42us; 175us; 42us; 176us; 42us; 177us; 42us; 178us; 42us; 179us; 42us; 180us; 42us; 181us; 42us; 182us; 42us; 183us; 42us; 184us; 42us; 185us; 42us; 186us; 42us; 187us; 42us; 188us; 42us; 189us; 42us; 190us; 42us; 191us; 42us; 192us; 42us; 193us; 42us; 194us; 42us; 195us; 42us; 196us; 42us; 197us; 42us; 198us; 42us; 199us; 42us; 200us; 42us; 201us; 42us; 202us; 42us; 203us; 42us; 204us; 42us; 205us; 42us; 206us; 42us; 207us; 42us; 208us; 42us; 209us; 42us; 210us; 42us; 211us; 42us; 212us; 42us; 213us; 42us; 214us; 42us; 215us; 42us; 216us; 42us; 217us; 42us; 218us; 42us; 219us; 42us; 220us; 42us; 221us; 42us; 222us; 42us; 223us; 42us; 224us; 42us; 225us; 42us; 226us; 42us; 227us; 42us; 228us; 42us; 229us; 42us; 230us; 42us; 231us; 42us; 232us; 42us; 233us; 42us; 234us; 42us; 235us; 42us; 236us; 42us; 237us; 42us; 238us; 42us; 239us; 42us; 240us; 42us; 241us; 42us; 242us; 42us; 243us; 42us; 244us; 42us; 245us; 42us; 246us; 42us; 247us; 42us; 248us; 42us; 249us; 42us; 250us; 42us; 251us; 42us; 252us; 42us; 253us; 42us; 254us; 42us; 255us; 42us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 41 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 40us; 65535us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 65535us; 65535us; 65535us; 65535us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 41us; 129us; 41us; 130us; 41us; 131us; 41us; 132us; 41us; 133us; 41us; 134us; 41us; 135us; 41us; 136us; 41us; 137us; 41us; 138us; 41us; 139us; 41us; 140us; 41us; 141us; 41us; 142us; 41us; 143us; 41us; 144us; 41us; 145us; 41us; 146us; 41us; 147us; 41us; 148us; 41us; 149us; 41us; 150us; 41us; 151us; 41us; 152us; 41us; 153us; 41us; 154us; 41us; 155us; 41us; 156us; 41us; 157us; 41us; 158us; 41us; 159us; 41us; 160us; 41us; 161us; 41us; 162us; 41us; 163us; 41us; 164us; 41us; 165us; 41us; 166us; 41us; 167us; 41us; 168us; 41us; 169us; 41us; 170us; 41us; 171us; 41us; 172us; 41us; 173us; 41us; 174us; 41us; 175us; 41us; 176us; 41us; 177us; 41us; 178us; 41us; 179us; 41us; 180us; 41us; 181us; 41us; 182us; 41us; 183us; 41us; 184us; 41us; 185us; 41us; 186us; 41us; 187us; 41us; 188us; 41us; 189us; 41us; 190us; 41us; 191us; 41us; 192us; 41us; 193us; 41us; 194us; 41us; 195us; 41us; 196us; 41us; 197us; 41us; 198us; 41us; 199us; 41us; 200us; 41us; 201us; 41us; 202us; 41us; 203us; 41us; 204us; 41us; 205us; 41us; 206us; 41us; 207us; 41us; 208us; 41us; 209us; 41us; 210us; 41us; 211us; 41us; 212us; 41us; 213us; 41us; 214us; 41us; 215us; 41us; 216us; 41us; 217us; 41us; 218us; 41us; 219us; 41us; 220us; 41us; 221us; 41us; 222us; 41us; 223us; 41us; 224us; 41us; 225us; 41us; 226us; 41us; 227us; 41us; 228us; 41us; 229us; 41us; 230us; 41us; 231us; 41us; 232us; 41us; 233us; 41us; 234us; 41us; 235us; 41us; 236us; 41us; 237us; 41us; 238us; 41us; 239us; 41us; 240us; 41us; 241us; 41us; 242us; 41us; 243us; 41us; 244us; 41us; 245us; 41us; 246us; 41us; 247us; 41us; 248us; 41us; 249us; 41us; 250us; 41us; 251us; 41us; 252us; 41us; 253us; 41us; 254us; 41us; 255us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 42 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 43us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 43us; 65535us; 65535us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 65535us; 65535us; 65535us; 65535us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 43us; 129us; 43us; 130us; 43us; 131us; 43us; 132us; 43us; 133us; 43us; 134us; 43us; 135us; 43us; 136us; 43us; 137us; 43us; 138us; 43us; 139us; 43us; 140us; 43us; 141us; 43us; 142us; 43us; 143us; 43us; 144us; 43us; 145us; 43us; 146us; 43us; 147us; 43us; 148us; 43us; 149us; 43us; 150us; 43us; 151us; 43us; 152us; 43us; 153us; 43us; 154us; 43us; 155us; 43us; 156us; 43us; 157us; 43us; 158us; 43us; 159us; 43us; 160us; 43us; 161us; 43us; 162us; 43us; 163us; 43us; 164us; 43us; 165us; 43us; 166us; 43us; 167us; 43us; 168us; 43us; 169us; 43us; 170us; 43us; 171us; 43us; 172us; 43us; 173us; 43us; 174us; 43us; 175us; 43us; 176us; 43us; 177us; 43us; 178us; 43us; 179us; 43us; 180us; 43us; 181us; 43us; 182us; 43us; 183us; 43us; 184us; 43us; 185us; 43us; 186us; 43us; 187us; 43us; 188us; 43us; 189us; 43us; 190us; 43us; 191us; 43us; 192us; 43us; 193us; 43us; 194us; 43us; 195us; 43us; 196us; 43us; 197us; 43us; 198us; 43us; 199us; 43us; 200us; 43us; 201us; 43us; 202us; 43us; 203us; 43us; 204us; 43us; 205us; 43us; 206us; 43us; 207us; 43us; 208us; 43us; 209us; 43us; 210us; 43us; 211us; 43us; 212us; 43us; 213us; 43us; 214us; 43us; 215us; 43us; 216us; 43us; 217us; 43us; 218us; 43us; 219us; 43us; 220us; 43us; 221us; 43us; 222us; 43us; 223us; 43us; 224us; 43us; 225us; 43us; 226us; 43us; 227us; 43us; 228us; 43us; 229us; 43us; 230us; 43us; 231us; 43us; 232us; 43us; 233us; 43us; 234us; 43us; 235us; 43us; 236us; 43us; 237us; 43us; 238us; 43us; 239us; 43us; 240us; 43us; 241us; 43us; 242us; 43us; 243us; 43us; 244us; 43us; 245us; 43us; 246us; 43us; 247us; 43us; 248us; 43us; 249us; 43us; 250us; 43us; 251us; 43us; 252us; 43us; 253us; 43us; 254us; 43us; 255us; 43us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 43 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 40us; 65535us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 65535us; 65535us; 65535us; 65535us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 44us; 129us; 44us; 130us; 44us; 131us; 44us; 132us; 44us; 133us; 44us; 134us; 44us; 135us; 44us; 136us; 44us; 137us; 44us; 138us; 44us; 139us; 44us; 140us; 44us; 141us; 44us; 142us; 44us; 143us; 44us; 144us; 44us; 145us; 44us; 146us; 44us; 147us; 44us; 148us; 44us; 149us; 44us; 150us; 44us; 151us; 44us; 152us; 44us; 153us; 44us; 154us; 44us; 155us; 44us; 156us; 44us; 157us; 44us; 158us; 44us; 159us; 44us; 160us; 44us; 161us; 44us; 162us; 44us; 163us; 44us; 164us; 44us; 165us; 44us; 166us; 44us; 167us; 44us; 168us; 44us; 169us; 44us; 170us; 44us; 171us; 44us; 172us; 44us; 173us; 44us; 174us; 44us; 175us; 44us; 176us; 44us; 177us; 44us; 178us; 44us; 179us; 44us; 180us; 44us; 181us; 44us; 182us; 44us; 183us; 44us; 184us; 44us; 185us; 44us; 186us; 44us; 187us; 44us; 188us; 44us; 189us; 44us; 190us; 44us; 191us; 44us; 192us; 44us; 193us; 44us; 194us; 44us; 195us; 44us; 196us; 44us; 197us; 44us; 198us; 44us; 199us; 44us; 200us; 44us; 201us; 44us; 202us; 44us; 203us; 44us; 204us; 44us; 205us; 44us; 206us; 44us; 207us; 44us; 208us; 44us; 209us; 44us; 210us; 44us; 211us; 44us; 212us; 44us; 213us; 44us; 214us; 44us; 215us; 44us; 216us; 44us; 217us; 44us; 218us; 44us; 219us; 44us; 220us; 44us; 221us; 44us; 222us; 44us; 223us; 44us; 224us; 44us; 225us; 44us; 226us; 44us; 227us; 44us; 228us; 44us; 229us; 44us; 230us; 44us; 231us; 44us; 232us; 44us; 233us; 44us; 234us; 44us; 235us; 44us; 236us; 44us; 237us; 44us; 238us; 44us; 239us; 44us; 240us; 44us; 241us; 44us; 242us; 44us; 243us; 44us; 244us; 44us; 245us; 44us; 246us; 44us; 247us; 44us; 248us; 44us; 249us; 44us; 250us; 44us; 251us; 44us; 252us; 44us; 253us; 44us; 254us; 44us; 255us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 44 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 40us; 65535us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 65535us; 65535us; 65535us; 65535us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 44us; 129us; 44us; 130us; 44us; 131us; 44us; 132us; 44us; 133us; 44us; 134us; 44us; 135us; 44us; 136us; 44us; 137us; 44us; 138us; 44us; 139us; 44us; 140us; 44us; 141us; 44us; 142us; 44us; 143us; 44us; 144us; 44us; 145us; 44us; 146us; 44us; 147us; 44us; 148us; 44us; 149us; 44us; 150us; 44us; 151us; 44us; 152us; 44us; 153us; 44us; 154us; 44us; 155us; 44us; 156us; 44us; 157us; 44us; 158us; 44us; 159us; 44us; 160us; 44us; 161us; 44us; 162us; 44us; 163us; 44us; 164us; 44us; 165us; 44us; 166us; 44us; 167us; 44us; 168us; 44us; 169us; 44us; 170us; 44us; 171us; 44us; 172us; 44us; 173us; 44us; 174us; 44us; 175us; 44us; 176us; 44us; 177us; 44us; 178us; 44us; 179us; 44us; 180us; 44us; 181us; 44us; 182us; 44us; 183us; 44us; 184us; 44us; 185us; 44us; 186us; 44us; 187us; 44us; 188us; 44us; 189us; 44us; 190us; 44us; 191us; 44us; 192us; 44us; 193us; 44us; 194us; 44us; 195us; 44us; 196us; 44us; 197us; 44us; 198us; 44us; 199us; 44us; 200us; 44us; 201us; 44us; 202us; 44us; 203us; 44us; 204us; 44us; 205us; 44us; 206us; 44us; 207us; 44us; 208us; 44us; 209us; 44us; 210us; 44us; 211us; 44us; 212us; 44us; 213us; 44us; 214us; 44us; 215us; 44us; 216us; 44us; 217us; 44us; 218us; 44us; 219us; 44us; 220us; 44us; 221us; 44us; 222us; 44us; 223us; 44us; 224us; 44us; 225us; 44us; 226us; 44us; 227us; 44us; 228us; 44us; 229us; 44us; 230us; 44us; 231us; 44us; 232us; 44us; 233us; 44us; 234us; 44us; 235us; 44us; 236us; 44us; 237us; 44us; 238us; 44us; 239us; 44us; 240us; 44us; 241us; 44us; 242us; 44us; 243us; 44us; 244us; 44us; 245us; 44us; 246us; 44us; 247us; 44us; 248us; 44us; 249us; 44us; 250us; 44us; 251us; 44us; 252us; 44us; 253us; 44us; 254us; 44us; 255us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 45 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 46us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 46 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 47us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 47 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 48us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 48 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 49us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 49 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 50 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 51us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 51 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 38us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 52us; 65535us; 52us; 52us; 52us; 52us; 52us; 52us; 52us; 52us; 52us; 52us; 65535us; 65535us; 65535us; 65535us; 65535us; 38us; 38us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 65535us; 65535us; 65535us; 65535us; 38us; 38us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 38us; 129us; 38us; 130us; 38us; 131us; 38us; 132us; 38us; 133us; 38us; 134us; 38us; 135us; 38us; 136us; 38us; 137us; 38us; 138us; 38us; 139us; 38us; 140us; 38us; 141us; 38us; 142us; 38us; 143us; 38us; 144us; 38us; 145us; 38us; 146us; 38us; 147us; 38us; 148us; 38us; 149us; 38us; 150us; 38us; 151us; 38us; 152us; 38us; 153us; 38us; 154us; 38us; 155us; 38us; 156us; 38us; 157us; 38us; 158us; 38us; 159us; 38us; 160us; 38us; 161us; 38us; 162us; 38us; 163us; 38us; 164us; 38us; 165us; 38us; 166us; 38us; 167us; 38us; 168us; 38us; 169us; 38us; 170us; 38us; 171us; 38us; 172us; 38us; 173us; 38us; 174us; 38us; 175us; 38us; 176us; 38us; 177us; 38us; 178us; 38us; 179us; 38us; 180us; 38us; 181us; 38us; 182us; 38us; 183us; 38us; 184us; 38us; 185us; 38us; 186us; 38us; 187us; 38us; 188us; 38us; 189us; 38us; 190us; 38us; 191us; 38us; 192us; 38us; 193us; 38us; 194us; 38us; 195us; 38us; 196us; 38us; 197us; 38us; 198us; 38us; 199us; 38us; 200us; 38us; 201us; 38us; 202us; 38us; 203us; 38us; 204us; 38us; 205us; 38us; 206us; 38us; 207us; 38us; 208us; 38us; 209us; 38us; 210us; 38us; 211us; 38us; 212us; 38us; 213us; 38us; 214us; 38us; 215us; 38us; 216us; 38us; 217us; 38us; 218us; 38us; 219us; 38us; 220us; 38us; 221us; 38us; 222us; 38us; 223us; 38us; 224us; 38us; 225us; 38us; 226us; 38us; 227us; 38us; 228us; 38us; 229us; 38us; 230us; 38us; 231us; 38us; 232us; 38us; 233us; 38us; 234us; 38us; 235us; 38us; 236us; 38us; 237us; 38us; 238us; 38us; 239us; 38us; 240us; 38us; 241us; 38us; 242us; 38us; 243us; 38us; 244us; 38us; 245us; 38us; 246us; 38us; 247us; 38us; 248us; 38us; 249us; 38us; 250us; 38us; 251us; 38us; 252us; 38us; 253us; 38us; 254us; 38us; 255us; 38us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 52 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 53 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 39us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 39us; 54us; 65535us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 39us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 65535us; 65535us; 65535us; 65535us; 39us; 39us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 39us; 129us; 39us; 130us; 39us; 131us; 39us; 132us; 39us; 133us; 39us; 134us; 39us; 135us; 39us; 136us; 39us; 137us; 39us; 138us; 39us; 139us; 39us; 140us; 39us; 141us; 39us; 142us; 39us; 143us; 39us; 144us; 39us; 145us; 39us; 146us; 39us; 147us; 39us; 148us; 39us; 149us; 39us; 150us; 39us; 151us; 39us; 152us; 39us; 153us; 39us; 154us; 39us; 155us; 39us; 156us; 39us; 157us; 39us; 158us; 39us; 159us; 39us; 160us; 39us; 161us; 39us; 162us; 39us; 163us; 39us; 164us; 39us; 165us; 39us; 166us; 39us; 167us; 39us; 168us; 39us; 169us; 39us; 170us; 39us; 171us; 39us; 172us; 39us; 173us; 39us; 174us; 39us; 175us; 39us; 176us; 39us; 177us; 39us; 178us; 39us; 179us; 39us; 180us; 39us; 181us; 39us; 182us; 39us; 183us; 39us; 184us; 39us; 185us; 39us; 186us; 39us; 187us; 39us; 188us; 39us; 189us; 39us; 190us; 39us; 191us; 39us; 192us; 39us; 193us; 39us; 194us; 39us; 195us; 39us; 196us; 39us; 197us; 39us; 198us; 39us; 199us; 39us; 200us; 39us; 201us; 39us; 202us; 39us; 203us; 39us; 204us; 39us; 205us; 39us; 206us; 39us; 207us; 39us; 208us; 39us; 209us; 39us; 210us; 39us; 211us; 39us; 212us; 39us; 213us; 39us; 214us; 39us; 215us; 39us; 216us; 39us; 217us; 39us; 218us; 39us; 219us; 39us; 220us; 39us; 221us; 39us; 222us; 39us; 223us; 39us; 224us; 39us; 225us; 39us; 226us; 39us; 227us; 39us; 228us; 39us; 229us; 39us; 230us; 39us; 231us; 39us; 232us; 39us; 233us; 39us; 234us; 39us; 235us; 39us; 236us; 39us; 237us; 39us; 238us; 39us; 239us; 39us; 240us; 39us; 241us; 39us; 242us; 39us; 243us; 39us; 244us; 39us; 245us; 39us; 246us; 39us; 247us; 39us; 248us; 39us; 249us; 39us; 250us; 39us; 251us; 39us; 252us; 39us; 253us; 39us; 254us; 39us; 255us; 39us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 54 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 55 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 56us; 65535us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 65535us; 65535us; 65535us; 65535us; 41us; 41us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 41us; 129us; 41us; 130us; 41us; 131us; 41us; 132us; 41us; 133us; 41us; 134us; 41us; 135us; 41us; 136us; 41us; 137us; 41us; 138us; 41us; 139us; 41us; 140us; 41us; 141us; 41us; 142us; 41us; 143us; 41us; 144us; 41us; 145us; 41us; 146us; 41us; 147us; 41us; 148us; 41us; 149us; 41us; 150us; 41us; 151us; 41us; 152us; 41us; 153us; 41us; 154us; 41us; 155us; 41us; 156us; 41us; 157us; 41us; 158us; 41us; 159us; 41us; 160us; 41us; 161us; 41us; 162us; 41us; 163us; 41us; 164us; 41us; 165us; 41us; 166us; 41us; 167us; 41us; 168us; 41us; 169us; 41us; 170us; 41us; 171us; 41us; 172us; 41us; 173us; 41us; 174us; 41us; 175us; 41us; 176us; 41us; 177us; 41us; 178us; 41us; 179us; 41us; 180us; 41us; 181us; 41us; 182us; 41us; 183us; 41us; 184us; 41us; 185us; 41us; 186us; 41us; 187us; 41us; 188us; 41us; 189us; 41us; 190us; 41us; 191us; 41us; 192us; 41us; 193us; 41us; 194us; 41us; 195us; 41us; 196us; 41us; 197us; 41us; 198us; 41us; 199us; 41us; 200us; 41us; 201us; 41us; 202us; 41us; 203us; 41us; 204us; 41us; 205us; 41us; 206us; 41us; 207us; 41us; 208us; 41us; 209us; 41us; 210us; 41us; 211us; 41us; 212us; 41us; 213us; 41us; 214us; 41us; 215us; 41us; 216us; 41us; 217us; 41us; 218us; 41us; 219us; 41us; 220us; 41us; 221us; 41us; 222us; 41us; 223us; 41us; 224us; 41us; 225us; 41us; 226us; 41us; 227us; 41us; 228us; 41us; 229us; 41us; 230us; 41us; 231us; 41us; 232us; 41us; 233us; 41us; 234us; 41us; 235us; 41us; 236us; 41us; 237us; 41us; 238us; 41us; 239us; 41us; 240us; 41us; 241us; 41us; 242us; 41us; 243us; 41us; 244us; 41us; 245us; 41us; 246us; 41us; 247us; 41us; 248us; 41us; 249us; 41us; 250us; 41us; 251us; 41us; 252us; 41us; 253us; 41us; 254us; 41us; 255us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 56 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 42us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 42us; 42us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 65535us; 65535us; 65535us; 65535us; 42us; 42us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 42us; 129us; 42us; 130us; 42us; 131us; 42us; 132us; 42us; 133us; 42us; 134us; 42us; 135us; 42us; 136us; 42us; 137us; 42us; 138us; 42us; 139us; 42us; 140us; 42us; 141us; 42us; 142us; 42us; 143us; 42us; 144us; 42us; 145us; 42us; 146us; 42us; 147us; 42us; 148us; 42us; 149us; 42us; 150us; 42us; 151us; 42us; 152us; 42us; 153us; 42us; 154us; 42us; 155us; 42us; 156us; 42us; 157us; 42us; 158us; 42us; 159us; 42us; 160us; 42us; 161us; 42us; 162us; 42us; 163us; 42us; 164us; 42us; 165us; 42us; 166us; 42us; 167us; 42us; 168us; 42us; 169us; 42us; 170us; 42us; 171us; 42us; 172us; 42us; 173us; 42us; 174us; 42us; 175us; 42us; 176us; 42us; 177us; 42us; 178us; 42us; 179us; 42us; 180us; 42us; 181us; 42us; 182us; 42us; 183us; 42us; 184us; 42us; 185us; 42us; 186us; 42us; 187us; 42us; 188us; 42us; 189us; 42us; 190us; 42us; 191us; 42us; 192us; 42us; 193us; 42us; 194us; 42us; 195us; 42us; 196us; 42us; 197us; 42us; 198us; 42us; 199us; 42us; 200us; 42us; 201us; 42us; 202us; 42us; 203us; 42us; 204us; 42us; 205us; 42us; 206us; 42us; 207us; 42us; 208us; 42us; 209us; 42us; 210us; 42us; 211us; 42us; 212us; 42us; 213us; 42us; 214us; 42us; 215us; 42us; 216us; 42us; 217us; 42us; 218us; 42us; 219us; 42us; 220us; 42us; 221us; 42us; 222us; 42us; 223us; 42us; 224us; 42us; 225us; 42us; 226us; 42us; 227us; 42us; 228us; 42us; 229us; 42us; 230us; 42us; 231us; 42us; 232us; 42us; 233us; 42us; 234us; 42us; 235us; 42us; 236us; 42us; 237us; 42us; 238us; 42us; 239us; 42us; 240us; 42us; 241us; 42us; 242us; 42us; 243us; 42us; 244us; 42us; 245us; 42us; 246us; 42us; 247us; 42us; 248us; 42us; 249us; 42us; 250us; 42us; 251us; 42us; 252us; 42us; 253us; 42us; 254us; 42us; 255us; 42us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 57 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 56us; 65535us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 65535us; 65535us; 65535us; 65535us; 41us; 41us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 41us; 129us; 41us; 130us; 41us; 131us; 41us; 132us; 41us; 133us; 41us; 134us; 41us; 135us; 41us; 136us; 41us; 137us; 41us; 138us; 41us; 139us; 41us; 140us; 41us; 141us; 41us; 142us; 41us; 143us; 41us; 144us; 41us; 145us; 41us; 146us; 41us; 147us; 41us; 148us; 41us; 149us; 41us; 150us; 41us; 151us; 41us; 152us; 41us; 153us; 41us; 154us; 41us; 155us; 41us; 156us; 41us; 157us; 41us; 158us; 41us; 159us; 41us; 160us; 41us; 161us; 41us; 162us; 41us; 163us; 41us; 164us; 41us; 165us; 41us; 166us; 41us; 167us; 41us; 168us; 41us; 169us; 41us; 170us; 41us; 171us; 41us; 172us; 41us; 173us; 41us; 174us; 41us; 175us; 41us; 176us; 41us; 177us; 41us; 178us; 41us; 179us; 41us; 180us; 41us; 181us; 41us; 182us; 41us; 183us; 41us; 184us; 41us; 185us; 41us; 186us; 41us; 187us; 41us; 188us; 41us; 189us; 41us; 190us; 41us; 191us; 41us; 192us; 41us; 193us; 41us; 194us; 41us; 195us; 41us; 196us; 41us; 197us; 41us; 198us; 41us; 199us; 41us; 200us; 41us; 201us; 41us; 202us; 41us; 203us; 41us; 204us; 41us; 205us; 41us; 206us; 41us; 207us; 41us; 208us; 41us; 209us; 41us; 210us; 41us; 211us; 41us; 212us; 41us; 213us; 41us; 214us; 41us; 215us; 41us; 216us; 41us; 217us; 41us; 218us; 41us; 219us; 41us; 220us; 41us; 221us; 41us; 222us; 41us; 223us; 41us; 224us; 41us; 225us; 41us; 226us; 41us; 227us; 41us; 228us; 41us; 229us; 41us; 230us; 41us; 231us; 41us; 232us; 41us; 233us; 41us; 234us; 41us; 235us; 41us; 236us; 41us; 237us; 41us; 238us; 41us; 239us; 41us; 240us; 41us; 241us; 41us; 242us; 41us; 243us; 41us; 244us; 41us; 245us; 41us; 246us; 41us; 247us; 41us; 248us; 41us; 249us; 41us; 250us; 41us; 251us; 41us; 252us; 41us; 253us; 41us; 254us; 41us; 255us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 58 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 43us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 43us; 54us; 65535us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 43us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 65535us; 65535us; 65535us; 65535us; 43us; 43us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 43us; 129us; 43us; 130us; 43us; 131us; 43us; 132us; 43us; 133us; 43us; 134us; 43us; 135us; 43us; 136us; 43us; 137us; 43us; 138us; 43us; 139us; 43us; 140us; 43us; 141us; 43us; 142us; 43us; 143us; 43us; 144us; 43us; 145us; 43us; 146us; 43us; 147us; 43us; 148us; 43us; 149us; 43us; 150us; 43us; 151us; 43us; 152us; 43us; 153us; 43us; 154us; 43us; 155us; 43us; 156us; 43us; 157us; 43us; 158us; 43us; 159us; 43us; 160us; 43us; 161us; 43us; 162us; 43us; 163us; 43us; 164us; 43us; 165us; 43us; 166us; 43us; 167us; 43us; 168us; 43us; 169us; 43us; 170us; 43us; 171us; 43us; 172us; 43us; 173us; 43us; 174us; 43us; 175us; 43us; 176us; 43us; 177us; 43us; 178us; 43us; 179us; 43us; 180us; 43us; 181us; 43us; 182us; 43us; 183us; 43us; 184us; 43us; 185us; 43us; 186us; 43us; 187us; 43us; 188us; 43us; 189us; 43us; 190us; 43us; 191us; 43us; 192us; 43us; 193us; 43us; 194us; 43us; 195us; 43us; 196us; 43us; 197us; 43us; 198us; 43us; 199us; 43us; 200us; 43us; 201us; 43us; 202us; 43us; 203us; 43us; 204us; 43us; 205us; 43us; 206us; 43us; 207us; 43us; 208us; 43us; 209us; 43us; 210us; 43us; 211us; 43us; 212us; 43us; 213us; 43us; 214us; 43us; 215us; 43us; 216us; 43us; 217us; 43us; 218us; 43us; 219us; 43us; 220us; 43us; 221us; 43us; 222us; 43us; 223us; 43us; 224us; 43us; 225us; 43us; 226us; 43us; 227us; 43us; 228us; 43us; 229us; 43us; 230us; 43us; 231us; 43us; 232us; 43us; 233us; 43us; 234us; 43us; 235us; 43us; 236us; 43us; 237us; 43us; 238us; 43us; 239us; 43us; 240us; 43us; 241us; 43us; 242us; 43us; 243us; 43us; 244us; 43us; 245us; 43us; 246us; 43us; 247us; 43us; 248us; 43us; 249us; 43us; 250us; 43us; 251us; 43us; 252us; 43us; 253us; 43us; 254us; 43us; 255us; 43us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 59 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 56us; 65535us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 65535us; 65535us; 65535us; 65535us; 44us; 44us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 44us; 129us; 44us; 130us; 44us; 131us; 44us; 132us; 44us; 133us; 44us; 134us; 44us; 135us; 44us; 136us; 44us; 137us; 44us; 138us; 44us; 139us; 44us; 140us; 44us; 141us; 44us; 142us; 44us; 143us; 44us; 144us; 44us; 145us; 44us; 146us; 44us; 147us; 44us; 148us; 44us; 149us; 44us; 150us; 44us; 151us; 44us; 152us; 44us; 153us; 44us; 154us; 44us; 155us; 44us; 156us; 44us; 157us; 44us; 158us; 44us; 159us; 44us; 160us; 44us; 161us; 44us; 162us; 44us; 163us; 44us; 164us; 44us; 165us; 44us; 166us; 44us; 167us; 44us; 168us; 44us; 169us; 44us; 170us; 44us; 171us; 44us; 172us; 44us; 173us; 44us; 174us; 44us; 175us; 44us; 176us; 44us; 177us; 44us; 178us; 44us; 179us; 44us; 180us; 44us; 181us; 44us; 182us; 44us; 183us; 44us; 184us; 44us; 185us; 44us; 186us; 44us; 187us; 44us; 188us; 44us; 189us; 44us; 190us; 44us; 191us; 44us; 192us; 44us; 193us; 44us; 194us; 44us; 195us; 44us; 196us; 44us; 197us; 44us; 198us; 44us; 199us; 44us; 200us; 44us; 201us; 44us; 202us; 44us; 203us; 44us; 204us; 44us; 205us; 44us; 206us; 44us; 207us; 44us; 208us; 44us; 209us; 44us; 210us; 44us; 211us; 44us; 212us; 44us; 213us; 44us; 214us; 44us; 215us; 44us; 216us; 44us; 217us; 44us; 218us; 44us; 219us; 44us; 220us; 44us; 221us; 44us; 222us; 44us; 223us; 44us; 224us; 44us; 225us; 44us; 226us; 44us; 227us; 44us; 228us; 44us; 229us; 44us; 230us; 44us; 231us; 44us; 232us; 44us; 233us; 44us; 234us; 44us; 235us; 44us; 236us; 44us; 237us; 44us; 238us; 44us; 239us; 44us; 240us; 44us; 241us; 44us; 242us; 44us; 243us; 44us; 244us; 44us; 245us; 44us; 246us; 44us; 247us; 44us; 248us; 44us; 249us; 44us; 250us; 44us; 251us; 44us; 252us; 44us; 253us; 44us; 254us; 44us; 255us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 60 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 56us; 65535us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 65535us; 65535us; 65535us; 65535us; 44us; 44us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 44us; 129us; 44us; 130us; 44us; 131us; 44us; 132us; 44us; 133us; 44us; 134us; 44us; 135us; 44us; 136us; 44us; 137us; 44us; 138us; 44us; 139us; 44us; 140us; 44us; 141us; 44us; 142us; 44us; 143us; 44us; 144us; 44us; 145us; 44us; 146us; 44us; 147us; 44us; 148us; 44us; 149us; 44us; 150us; 44us; 151us; 44us; 152us; 44us; 153us; 44us; 154us; 44us; 155us; 44us; 156us; 44us; 157us; 44us; 158us; 44us; 159us; 44us; 160us; 44us; 161us; 44us; 162us; 44us; 163us; 44us; 164us; 44us; 165us; 44us; 166us; 44us; 167us; 44us; 168us; 44us; 169us; 44us; 170us; 44us; 171us; 44us; 172us; 44us; 173us; 44us; 174us; 44us; 175us; 44us; 176us; 44us; 177us; 44us; 178us; 44us; 179us; 44us; 180us; 44us; 181us; 44us; 182us; 44us; 183us; 44us; 184us; 44us; 185us; 44us; 186us; 44us; 187us; 44us; 188us; 44us; 189us; 44us; 190us; 44us; 191us; 44us; 192us; 44us; 193us; 44us; 194us; 44us; 195us; 44us; 196us; 44us; 197us; 44us; 198us; 44us; 199us; 44us; 200us; 44us; 201us; 44us; 202us; 44us; 203us; 44us; 204us; 44us; 205us; 44us; 206us; 44us; 207us; 44us; 208us; 44us; 209us; 44us; 210us; 44us; 211us; 44us; 212us; 44us; 213us; 44us; 214us; 44us; 215us; 44us; 216us; 44us; 217us; 44us; 218us; 44us; 219us; 44us; 220us; 44us; 221us; 44us; 222us; 44us; 223us; 44us; 224us; 44us; 225us; 44us; 226us; 44us; 227us; 44us; 228us; 44us; 229us; 44us; 230us; 44us; 231us; 44us; 232us; 44us; 233us; 44us; 234us; 44us; 235us; 44us; 236us; 44us; 237us; 44us; 238us; 44us; 239us; 44us; 240us; 44us; 241us; 44us; 242us; 44us; 243us; 44us; 244us; 44us; 245us; 44us; 246us; 44us; 247us; 44us; 248us; 44us; 249us; 44us; 250us; 44us; 251us; 44us; 252us; 44us; 253us; 44us; 254us; 44us; 255us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 61 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 62us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 62 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 63us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 63 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 64 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 65 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 66us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 66 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 67us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 67 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 68 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 69us; 36us; 36us; 36us; 72us; 36us; 36us; 36us; 71us; 36us; 36us; 70us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 69 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 80us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 70 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 78us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 77us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 71 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 76us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 72 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 73us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 73 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 74us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 74 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 75us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 75 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 51us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 76 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 77 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 79us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 78 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 79 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 80 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 81us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 81 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 82 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 83 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 84 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 85 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 86 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 87us; 36us; 36us; 36us; 89us; 36us; 36us; 36us; 88us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 87 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 93us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 88 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 92us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 89 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 90us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 90 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 91us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 91 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 92 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 93 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 94 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 97us; 65535us; 95us; 95us; 95us; 95us; 95us; 95us; 95us; 95us; 95us; 95us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 95 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 97us; 65535us; 95us; 95us; 95us; 95us; 95us; 95us; 95us; 95us; 95us; 95us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 96 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 100us; 65535us; 100us; 65535us; 65535us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 97 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 98 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 99 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 101us; 101us; 101us; 101us; 101us; 101us; 101us; 101us; 101us; 101us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 100 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 101 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 101us; 101us; 101us; 101us; 101us; 101us; 101us; 101us; 101us; 101us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 102 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 103 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 104 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 105 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 109us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 106 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 107 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 108 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 109 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 110 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 111 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 112 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 113 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 114 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 115us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 115 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 116us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 116 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 117us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 117 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 118us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 118 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 119us; 119us; 119us; 119us; 119us; 119us; 119us; 119us; 119us; 119us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 119us; 119us; 119us; 119us; 119us; 119us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 119us; 119us; 119us; 119us; 119us; 119us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 119 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 120us; 120us; 120us; 120us; 120us; 120us; 120us; 120us; 120us; 120us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 120us; 120us; 120us; 120us; 120us; 120us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 120us; 120us; 120us; 120us; 120us; 120us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 120 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 121 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 97us; 65535us; 127us; 127us; 127us; 127us; 127us; 127us; 127us; 127us; 127us; 127us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 122 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 125us; 65535us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 123 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 124 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 100us; 65535us; 100us; 65535us; 65535us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 125 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 126us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 126 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 127 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 122us; 65535us; 128us; 128us; 128us; 128us; 128us; 128us; 128us; 128us; 128us; 128us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 128 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 122us; 65535us; 128us; 128us; 128us; 128us; 128us; 128us; 128us; 128us; 128us; 128us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 129 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 130us; 130us; 130us; 130us; 130us; 130us; 130us; 130us; 130us; 130us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 130us; 130us; 130us; 130us; 130us; 130us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 130us; 130us; 130us; 130us; 130us; 130us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 130 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 131us; 131us; 131us; 131us; 131us; 131us; 131us; 131us; 131us; 131us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 131us; 131us; 131us; 131us; 131us; 131us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 131us; 131us; 131us; 131us; 131us; 131us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 131 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 131us; 131us; 131us; 131us; 131us; 131us; 131us; 131us; 131us; 131us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 131us; 131us; 131us; 131us; 131us; 131us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 131us; 131us; 131us; 131us; 131us; 131us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 132 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 97us; 65535us; 133us; 133us; 133us; 133us; 133us; 133us; 133us; 133us; 133us; 133us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 133 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 97us; 65535us; 133us; 133us; 133us; 133us; 133us; 133us; 133us; 133us; 133us; 133us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 134 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 135 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 136us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 136 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + |] +let actions : uint16[] = [|65535us; 0us; 1us; 2us; 3us; 4us; 5us; 6us; 7us; 8us; 9us; 10us; 11us; 26us; 14us; 15us; 15us; 23us; 23us; 23us; 23us; 23us; 23us; 26us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 25us; 26us; 27us; 23us; 23us; 65535us; 65535us; 24us; 65535us; 24us; 65535us; 24us; 24us; 23us; 23us; 23us; 23us; 23us; 23us; 65535us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 20us; 20us; 65535us; 21us; 21us; 21us; 65535us; 21us; 17us; 23us; 17us; 23us; 23us; 23us; 23us; 23us; 17us; 23us; 23us; 17us; 17us; 23us; 23us; 23us; 23us; 23us; 19us; 17us; 21us; 17us; 17us; 65535us; 16us; 15us; 15us; 65535us; 18us; 18us; 21us; 21us; 13us; 65535us; 12us; |] +let _fslex_tables = Internal.Utilities.Text.Lexing.UnicodeTables.Create(trans,actions) +let rec _fslex_dummy () = _fslex_dummy() +(* Rule token *) +and token (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_token 0 lexbuf +(* Rule token *) +and _fslex_token _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 110 "..\..\absil\illex.fsl" + COMMA +# 394 "illex.fs" + ) + | 1 -> ( +# 111 "..\..\absil\illex.fsl" + DOT +# 399 "illex.fs" + ) + | 2 -> ( +# 112 "..\..\absil\illex.fsl" + STAR +# 404 "illex.fs" + ) + | 3 -> ( +# 113 "..\..\absil\illex.fsl" + BANG +# 409 "illex.fs" + ) + | 4 -> ( +# 114 "..\..\absil\illex.fsl" + AMP +# 414 "illex.fs" + ) + | 5 -> ( +# 115 "..\..\absil\illex.fsl" + LPAREN +# 419 "illex.fs" + ) + | 6 -> ( +# 116 "..\..\absil\illex.fsl" + RPAREN +# 424 "illex.fs" + ) + | 7 -> ( +# 117 "..\..\absil\illex.fsl" + LBRACK +# 429 "illex.fs" + ) + | 8 -> ( +# 118 "..\..\absil\illex.fsl" + RBRACK +# 434 "illex.fs" + ) + | 9 -> ( +# 119 "..\..\absil\illex.fsl" + SLASH +# 439 "illex.fs" + ) + | 10 -> ( +# 120 "..\..\absil\illex.fsl" + LESS +# 444 "illex.fs" + ) + | 11 -> ( +# 121 "..\..\absil\illex.fsl" + GREATER +# 449 "illex.fs" + ) + | 12 -> ( +# 122 "..\..\absil\illex.fsl" + ELIPSES +# 454 "illex.fs" + ) + | 13 -> ( +# 123 "..\..\absil\illex.fsl" + DCOLON +# 459 "illex.fs" + ) + | 14 -> ( +# 124 "..\..\absil\illex.fsl" + PLUS +# 464 "illex.fs" + ) + | 15 -> ( +# 126 "..\..\absil\illex.fsl" + VAL_INT64(int64(lexeme lexbuf)) +# 469 "illex.fs" + ) + | 16 -> ( +# 135 "..\..\absil\illex.fsl" + let b = lexeme lexbuf in + VAL_INT32_ELIPSES(int32(String.sub b 0 (String.length b - 3))) +# 475 "illex.fs" + ) + | 17 -> ( +# 138 "..\..\absil\illex.fsl" + let c1 = String.get (lexeme lexbuf) 0 in + let c2 = String.get (lexeme lexbuf) 1 in + if c1 >= '0' && c1 <= '9' && c2 >= '0' && c2 <= '9' then + VAL_INT64(int64 (10*eval c1 + eval c2) ) + else VAL_ID(lexeme lexbuf) +# 484 "illex.fs" + ) + | 18 -> ( +# 144 "..\..\absil\illex.fsl" + VAL_INT64(int64(lexeme lexbuf)) +# 489 "illex.fs" + ) + | 19 -> ( +# 146 "..\..\absil\illex.fsl" + let c1 = (lexeme lexbuf).[6] in + let c2 = (lexeme lexbuf).[7] in + if c1 >= '0' && c1 <= '9' && c2 >= '0' && c2 <= '9' then + VAL_INT64(int64 (10*eval c1 + eval c2)) + else VAL_ID(lexeme lexbuf) +# 498 "illex.fs" + ) + | 20 -> ( +# 153 "..\..\absil\illex.fsl" + VAL_INT64(int64(lexeme lexbuf)) +# 503 "illex.fs" + ) + | 21 -> ( +# 155 "..\..\absil\illex.fsl" + VAL_FLOAT64( (float (lexeme lexbuf)) ) +# 508 "illex.fs" + ) + | 22 -> ( +# 158 "..\..\absil\illex.fsl" + let s = (lexeme lexbuf) in kwdOrInstr s +# 513 "illex.fs" + ) + | 23 -> ( +# 160 "..\..\absil\illex.fsl" + kwdOrInstrOrId (lexeme lexbuf) +# 518 "illex.fs" + ) + | 24 -> ( +# 163 "..\..\absil\illex.fsl" + VAL_DOTTEDNAME(lexeme lexbuf) +# 523 "illex.fs" + ) + | 25 -> ( +# 166 "..\..\absil\illex.fsl" + token lexbuf +# 528 "illex.fs" + ) + | 26 -> ( +# 168 "..\..\absil\illex.fsl" + unexpectedChar lexbuf +# 533 "illex.fs" + ) + | 27 -> ( +# 170 "..\..\absil\illex.fsl" + EOF +# 538 "illex.fs" + ) + | _ -> failwith "token" + +# 172 "..\..\absil\illex.fsl" + +# 3000000 "illex.fs" diff --git a/src/fsharp/FSharp.AbsIL/illex.fsl b/src/fsharp/FSharp.AbsIL/illex.fsl new file mode 100644 index 0000000..e51e2e7 --- /dev/null +++ b/src/fsharp/FSharp.AbsIL/illex.fsl @@ -0,0 +1,171 @@ + +{ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +module internal Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiLexer + +open Internal.Utilities +open Internal.Utilities.Collections +open Internal.Utilities.Text +open Internal.Utilities.Text.Lexing +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library + +open Microsoft.FSharp.Compiler.AbstractIL.Diagnostics +open Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiParser +open Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiConstants + + +let lexeme (lexbuf : LexBuffer) = new System.String(lexbuf.Lexeme) + +let unexpectedChar lexbuf = + dprintf "Unexpected character '%s'" (lexeme lexbuf); + raise Parsing.RecoverableParseError ;; + +// -------------------------------------------------------------------- +// Keywords +// -------------------------------------------------------------------- + +let keywords = + lazy [ "void",VOID; + "bool",BOOL; + "bytearray",BYTEARRAY; + "char",CHAR; + "class",CLASS; + "default",DEFAULT; + "explicit",EXPLICIT; + "float32",FLOAT32; + "float64",FLOAT64; + "instance",INSTANCE; + "int",INT; + "int16",INT16; + "int32",INT32; + "int64",INT64; + "int8",INT8; + "method",METHOD; + "native",NATIVE; + "object", OBJECT; + "string",STRING; + "uint",UINT; + "uint16",UINT16; + "uint32",UINT32; + "uint64",UINT64; + "uint8",UINT8; + "unmanaged",UNMANAGED; + "unsigned",UNSIGNED; + "value",VALUE; + "valuetype",VALUETYPE; + "vararg",VARARG ] + +// -------------------------------------------------------------------- +// Instructions +// -------------------------------------------------------------------- + +let kwdInstrTable = + lazy + (let t = HashMultiMap(1000, HashIdentity.Structural) + List.iter t.Add (Lazy.force keywords); + let addTable f l = List.iter (fun (x,i) -> t.Add (String.concat "." x,f i)) (Lazy.force l) + addTable (fun i -> INSTR_NONE i) NoArgInstrs; + addTable (fun i -> INSTR_I i) Int32Instrs; + addTable (fun i -> INSTR_I32_I32 i) Int32Int32Instrs; + addTable (fun i -> INSTR_I8 i) Int64Instrs; + addTable (fun i -> INSTR_R i) DoubleInstrs; + addTable (fun i -> INSTR_METHOD i) MethodSpecInstrs; + addTable (fun i -> INSTR_TYPE i) TypeInstrs; + addTable (fun i -> INSTR_INT_TYPE i) IntTypeInstrs; + addTable (fun i -> INSTR_VALUETYPE i) ValueTypeInstrs; + addTable (fun i -> INSTR_STRING i) StringInstrs; + addTable (fun i -> INSTR_TOK i) TokenInstrs; + t) + +let kwdOrInstr s = (Lazy.force kwdInstrTable).[s] (* words *) + +let eval = function + | '0' -> 0 | '1' -> 1 | '2' -> 2 | '3' -> 3 | '4' -> 4 | '5' -> 5 + | '6' -> 6 | '7' -> 7 | '8' -> 8 | '9' -> 9 + | 'A' -> 10 | 'B' -> 11 | 'C' -> 12 | 'D' -> 13 | 'E' -> 14 | 'F' -> 15 + | 'a' -> 10 | 'b' -> 11 | 'c' -> 12 | 'd' -> 13 | 'e' -> 14 | 'f' -> 15 + | _ -> failwith "bad hexbyte" + +let kwdOrInstrOrId s = if (Lazy.force kwdInstrTable).ContainsKey s then kwdOrInstr s else VAL_ID s + +} + +// -------------------------------------------------------------------- +// The Rules +// -------------------------------------------------------------------- +rule token = parse + | "," { COMMA } + | "." { DOT } + | "*" { STAR } + | "!" { BANG } + | "&" { AMP } + | "(" { LPAREN } + | ")" { RPAREN } + | "[" { LBRACK } + | "]" { RBRACK } + | "/" { SLASH } + | "<" { LESS } + | ">" { GREATER } + | "..." { ELIPSES } + | "::" { DCOLON } + | "+" { PLUS } + | (['0'-'9']) | (['0'-'9']['0'-'9']['0'-'9']+) + { VAL_INT64(int64(lexeme lexbuf)) } + + (* We need to be able to parse all of *) + (* ldc.r8 0. *) + (* float64(-657435.) *) + (* and int32[0...,0...] *) + (* The problem is telling an integer-followed-by-ellipses from a floating-point-nubmer-followed-by-dots *) + + | ((['0'-'9']) | (['0'-'9']['0'-'9']['0'-'9']+)) "..." + { let b = lexeme lexbuf in + VAL_INT32_ELIPSES(int32(String.sub b 0 (String.length b - 3))) } + | ['0'-'9' 'A'-'F' 'a'-'f' ] ['0'-'9' 'A'-'F' 'a'-'f' ] + { let c1 = String.get (lexeme lexbuf) 0 in + let c2 = String.get (lexeme lexbuf) 1 in + if c1 >= '0' && c1 <= '9' && c2 >= '0' && c2 <= '9' then + VAL_INT64(int64 (10*eval c1 + eval c2) ) + else VAL_ID(lexeme lexbuf) } + | '0' 'x' ['0'-'9' 'a'-'f' 'A'-'F']+ + { VAL_INT64(int64(lexeme lexbuf)) } + | "FFFFFF" ['0'-'9' 'A'-'F' 'a'-'f' ] ['0'-'9' 'A'-'F' 'a'-'f' ] + { let c1 = (lexeme lexbuf).[6] in + let c2 = (lexeme lexbuf).[7] in + if c1 >= '0' && c1 <= '9' && c2 >= '0' && c2 <= '9' then + VAL_INT64(int64 (10*eval c1 + eval c2)) + else VAL_ID(lexeme lexbuf) } + + | '-' ['0'-'9']+ + { VAL_INT64(int64(lexeme lexbuf)) } + | ('+'|'-')? ['0'-'9']+ ('.' ['0' - '9']*)? (('E'|'e') ('-'|'+')? ['0' - '9']+)? + { VAL_FLOAT64( (float (lexeme lexbuf)) ) } + + | ("conv"|"cgt"|"clt"|"ceq"|"add"|"sub"|"div"|"rem"|"mul"|"beq"|"bne"|"cne"|"ldarga"|"ldloca"|"ldind"|"newarr"|"shr"|"starg"|"stind"|"ldelem"|"ldelema"|"ldlen"|"stelem"|"unbox"|"box"|"initobj") '.' ['a'-'z' 'A'-'Z' '0'-'9' '.']+ + { let s = (lexeme lexbuf) in kwdOrInstr s } + | [ '`' '\128'-'\255' '@' '?' '$' 'a'-'z' 'A'-'Z' '_'] [ '`' '\128'-'\255' '$' 'a'-'z' 'A'-'Z' '0'-'9' '-' '_' '@' '$' ] * + { kwdOrInstrOrId (lexeme lexbuf) } + | [ '`' '\128'-'\255' '@' '?' '$' 'a'-'z' 'A'-'Z' '_'] [ '`' '\128'-'\255' '$' 'a'-'z' 'A'-'Z' '0'-'9' '-' '_' '@' '$' ]+ + ('.' [ '`' '\128'-'\255' '@' '?' '$' 'a'-'z' 'A'-'Z' '_'] [ '`' '\128'-'\255' '$' 'a'-'z' 'A'-'Z' '0'-'9' '-' '_' '@' '$' ] +)+ + { VAL_DOTTEDNAME(lexeme lexbuf) } + + | [' ' '\t' '\r' '\n'] + { token lexbuf } + | _ + { unexpectedChar lexbuf } + | eof + { EOF } + diff --git a/src/fsharp/FSharp.AbsIL/ilpars.fs b/src/fsharp/FSharp.AbsIL/ilpars.fs new file mode 100644 index 0000000..ba4ba2c --- /dev/null +++ b/src/fsharp/FSharp.AbsIL/ilpars.fs @@ -0,0 +1,1755 @@ +// Implementation file for parser generated by fsyacc +module internal Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiParser +#nowarn "64";; // turn off warnings that type variables used in production annotations are instantiated to concrete type +open Microsoft.FSharp.Compiler.AbstractIL +open Internal.Utilities.Text.Lexing +open Internal.Utilities.Text.Parsing.ParseHelpers +# 1 "..\..\absil\ilpars.fsy" + +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +#nowarn "1182" // the generated code often has unused variable "parseState" + +open Internal.Utilities +open Internal.Utilities.Text + +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiConstants +open Microsoft.FSharp.Compiler.AbstractIL.Diagnostics +open Microsoft.FSharp.Compiler.AbstractIL.Extensions.ILX.Types +open Microsoft.FSharp.Compiler.AbstractIL.IL +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library + + +let pfailwith s = + stderr.WriteLine ("*** error: "+s); + raise Parsing.RecoverableParseError + +/// vararg sentinels +type SigArg = SigArg of (string option * ILType) | Sentinel + +let decodeVarargs args = + let rec normals = function + | [] -> ([],None) + | Sentinel :: t -> ([],Some (ILList.ofList (varargs t))) + | SigArg (_,p)::t -> let (n,r) = normals t in (p::n, r) + and varargs = function + | [] -> [] + | SigArg (_,ty):: t -> let l = varargs t in ty::l + | Sentinel :: t -> pfailwith "two sentinels in vararg call" + normals args + + +type ResolvedAtMethodSpecScope<'T> = + ResolvedAtMethodSpecScope of (ILGenericParameterDefs -> 'T) + +let noMethodSpecScope x = ResolvedAtMethodSpecScope (fun _cgparams -> x) +let resolveMethodSpecScope (ResolvedAtMethodSpecScope f) x = f x +let resolveMethodSpecScopeThen (ResolvedAtMethodSpecScope f) g = + ResolvedAtMethodSpecScope (fun x -> resolveMethodSpecScope (g(f x)) x) + +let resolveFormalMethodSpecScope tspeco obj = + match tspeco with + None -> resolveMethodSpecScope obj mkILEmptyGenericParams + | Some (tspec:ILTypeSpec) -> resolveMethodSpecScope obj (mkILFormalTyparsRaw tspec.GenericArgs) + +let resolveCurrentMethodSpecScope obj = + resolveMethodSpecScope obj mkILEmptyGenericParams + + +let findMscorlibAssemblyRef() = + match (!parseILGlobals).mscorlibScopeRef with + | ILScopeRef.Assembly aref -> aref + | _ -> pfailwith "mscorlibScopeRef not set to valid assembly reference in parseILGlobals" + +let findAssemblyRef nm = + if nm = "mscorlib" then findMscorlibAssemblyRef() else + pfailwith ("Undefined assembly ref '" + nm + "'") + + +# 81 "ilpars.fs" +// This type is the type of tokens accepted by the parser +type token = + | VOID + | VARARG + | VALUETYPE + | VALUE + | UNSIGNED + | UNMANAGED + | UINT8 + | UINT64 + | UINT32 + | UINT16 + | UINT + | STRING + | STAR + | SLASH + | RPAREN + | RBRACK + | PLUS + | OBJECT + | NATIVE + | METHOD + | LPAREN + | LESS + | LBRACK + | INT8 + | INT64 + | INT32 + | INT16 + | INT + | INSTANCE + | GREATER + | FLOAT64 + | FLOAT32 + | FIELD + | EXPLICIT + | EOF + | ELIPSES + | DOT + | DEFAULT + | DCOLON + | COMMA + | CLASS + | CHAR + | BYTEARRAY + | BOOL + | BANG + | AMP + | VAL_SQSTRING of (string) + | VAL_QSTRING of (string) + | VAL_DOTTEDNAME of (string) + | VAL_ID of (string) + | VAL_HEXBYTE of (int) + | INSTR_VALUETYPE of (ValueTypeInstr) + | INSTR_INT_TYPE of (IntTypeInstr) + | INSTR_TYPE of (TypeInstr) + | INSTR_TOK of (TokenInstr) + | INSTR_STRING of (StringInstr) + | INSTR_NONE of (NoArgInstr) + | INSTR_METHOD of (MethodSpecInstr) + | INSTR_R of (DoubleInstr) + | INSTR_I8 of (Int64Instr) + | INSTR_I32_I32 of (Int32Int32Instr) + | INSTR_I of (Int32Instr) + | VAL_FLOAT64 of (double) + | VAL_INT32_ELIPSES of (int32) + | VAL_INT64 of (int64) +// This type is used to give symbolic names to token indexes, useful for error messages +type tokenId = + | TOKEN_VOID + | TOKEN_VARARG + | TOKEN_VALUETYPE + | TOKEN_VALUE + | TOKEN_UNSIGNED + | TOKEN_UNMANAGED + | TOKEN_UINT8 + | TOKEN_UINT64 + | TOKEN_UINT32 + | TOKEN_UINT16 + | TOKEN_UINT + | TOKEN_STRING + | TOKEN_STAR + | TOKEN_SLASH + | TOKEN_RPAREN + | TOKEN_RBRACK + | TOKEN_PLUS + | TOKEN_OBJECT + | TOKEN_NATIVE + | TOKEN_METHOD + | TOKEN_LPAREN + | TOKEN_LESS + | TOKEN_LBRACK + | TOKEN_INT8 + | TOKEN_INT64 + | TOKEN_INT32 + | TOKEN_INT16 + | TOKEN_INT + | TOKEN_INSTANCE + | TOKEN_GREATER + | TOKEN_FLOAT64 + | TOKEN_FLOAT32 + | TOKEN_FIELD + | TOKEN_EXPLICIT + | TOKEN_EOF + | TOKEN_ELIPSES + | TOKEN_DOT + | TOKEN_DEFAULT + | TOKEN_DCOLON + | TOKEN_COMMA + | TOKEN_CLASS + | TOKEN_CHAR + | TOKEN_BYTEARRAY + | TOKEN_BOOL + | TOKEN_BANG + | TOKEN_AMP + | TOKEN_VAL_SQSTRING + | TOKEN_VAL_QSTRING + | TOKEN_VAL_DOTTEDNAME + | TOKEN_VAL_ID + | TOKEN_VAL_HEXBYTE + | TOKEN_INSTR_VALUETYPE + | TOKEN_INSTR_INT_TYPE + | TOKEN_INSTR_TYPE + | TOKEN_INSTR_TOK + | TOKEN_INSTR_STRING + | TOKEN_INSTR_NONE + | TOKEN_INSTR_METHOD + | TOKEN_INSTR_R + | TOKEN_INSTR_I8 + | TOKEN_INSTR_I32_I32 + | TOKEN_INSTR_I + | TOKEN_VAL_FLOAT64 + | TOKEN_VAL_INT32_ELIPSES + | TOKEN_VAL_INT64 + | TOKEN_end_of_input + | TOKEN_error +// This type is used to give symbolic names to token indexes, useful for error messages +type nonTerminalId = + | NONTERM__startilInstrs + | NONTERM__startilType + | NONTERM_ilType + | NONTERM_ilInstrs + | NONTERM_compQstring + | NONTERM_methodName + | NONTERM_instrs2 + | NONTERM_methodSpecMaybeArrayMethod + | NONTERM_instr + | NONTERM_sigArgs0 + | NONTERM_sigArgs1 + | NONTERM_sigArgs1a + | NONTERM_sigArg + | NONTERM_opt_id + | NONTERM_name1 + | NONTERM_className + | NONTERM_slashedName + | NONTERM_typeNameInst + | NONTERM_typeName + | NONTERM_typSpec + | NONTERM_callConv + | NONTERM_callKind + | NONTERM_typ + | NONTERM_bounds1 + | NONTERM_bound + | NONTERM_id + | NONTERM_int32 + | NONTERM_int64 + | NONTERM_float64 + | NONTERM_opt_actual_tyargs + | NONTERM_actual_tyargs + | NONTERM_actualTypSpecs + +// This function maps tokens to integers indexes +let tagOfToken (t:token) = + match t with + | VOID -> 0 + | VARARG -> 1 + | VALUETYPE -> 2 + | VALUE -> 3 + | UNSIGNED -> 4 + | UNMANAGED -> 5 + | UINT8 -> 6 + | UINT64 -> 7 + | UINT32 -> 8 + | UINT16 -> 9 + | UINT -> 10 + | STRING -> 11 + | STAR -> 12 + | SLASH -> 13 + | RPAREN -> 14 + | RBRACK -> 15 + | PLUS -> 16 + | OBJECT -> 17 + | NATIVE -> 18 + | METHOD -> 19 + | LPAREN -> 20 + | LESS -> 21 + | LBRACK -> 22 + | INT8 -> 23 + | INT64 -> 24 + | INT32 -> 25 + | INT16 -> 26 + | INT -> 27 + | INSTANCE -> 28 + | GREATER -> 29 + | FLOAT64 -> 30 + | FLOAT32 -> 31 + | FIELD -> 32 + | EXPLICIT -> 33 + | EOF -> 34 + | ELIPSES -> 35 + | DOT -> 36 + | DEFAULT -> 37 + | DCOLON -> 38 + | COMMA -> 39 + | CLASS -> 40 + | CHAR -> 41 + | BYTEARRAY -> 42 + | BOOL -> 43 + | BANG -> 44 + | AMP -> 45 + | VAL_SQSTRING _ -> 46 + | VAL_QSTRING _ -> 47 + | VAL_DOTTEDNAME _ -> 48 + | VAL_ID _ -> 49 + | VAL_HEXBYTE _ -> 50 + | INSTR_VALUETYPE _ -> 51 + | INSTR_INT_TYPE _ -> 52 + | INSTR_TYPE _ -> 53 + | INSTR_TOK _ -> 54 + | INSTR_STRING _ -> 55 + | INSTR_NONE _ -> 56 + | INSTR_METHOD _ -> 57 + | INSTR_R _ -> 58 + | INSTR_I8 _ -> 59 + | INSTR_I32_I32 _ -> 60 + | INSTR_I _ -> 61 + | VAL_FLOAT64 _ -> 62 + | VAL_INT32_ELIPSES _ -> 63 + | VAL_INT64 _ -> 64 + +// This function maps integers indexes to symbolic token ids +let tokenTagToTokenId (tokenIdx:int) = + match tokenIdx with + | 0 -> TOKEN_VOID + | 1 -> TOKEN_VARARG + | 2 -> TOKEN_VALUETYPE + | 3 -> TOKEN_VALUE + | 4 -> TOKEN_UNSIGNED + | 5 -> TOKEN_UNMANAGED + | 6 -> TOKEN_UINT8 + | 7 -> TOKEN_UINT64 + | 8 -> TOKEN_UINT32 + | 9 -> TOKEN_UINT16 + | 10 -> TOKEN_UINT + | 11 -> TOKEN_STRING + | 12 -> TOKEN_STAR + | 13 -> TOKEN_SLASH + | 14 -> TOKEN_RPAREN + | 15 -> TOKEN_RBRACK + | 16 -> TOKEN_PLUS + | 17 -> TOKEN_OBJECT + | 18 -> TOKEN_NATIVE + | 19 -> TOKEN_METHOD + | 20 -> TOKEN_LPAREN + | 21 -> TOKEN_LESS + | 22 -> TOKEN_LBRACK + | 23 -> TOKEN_INT8 + | 24 -> TOKEN_INT64 + | 25 -> TOKEN_INT32 + | 26 -> TOKEN_INT16 + | 27 -> TOKEN_INT + | 28 -> TOKEN_INSTANCE + | 29 -> TOKEN_GREATER + | 30 -> TOKEN_FLOAT64 + | 31 -> TOKEN_FLOAT32 + | 32 -> TOKEN_FIELD + | 33 -> TOKEN_EXPLICIT + | 34 -> TOKEN_EOF + | 35 -> TOKEN_ELIPSES + | 36 -> TOKEN_DOT + | 37 -> TOKEN_DEFAULT + | 38 -> TOKEN_DCOLON + | 39 -> TOKEN_COMMA + | 40 -> TOKEN_CLASS + | 41 -> TOKEN_CHAR + | 42 -> TOKEN_BYTEARRAY + | 43 -> TOKEN_BOOL + | 44 -> TOKEN_BANG + | 45 -> TOKEN_AMP + | 46 -> TOKEN_VAL_SQSTRING + | 47 -> TOKEN_VAL_QSTRING + | 48 -> TOKEN_VAL_DOTTEDNAME + | 49 -> TOKEN_VAL_ID + | 50 -> TOKEN_VAL_HEXBYTE + | 51 -> TOKEN_INSTR_VALUETYPE + | 52 -> TOKEN_INSTR_INT_TYPE + | 53 -> TOKEN_INSTR_TYPE + | 54 -> TOKEN_INSTR_TOK + | 55 -> TOKEN_INSTR_STRING + | 56 -> TOKEN_INSTR_NONE + | 57 -> TOKEN_INSTR_METHOD + | 58 -> TOKEN_INSTR_R + | 59 -> TOKEN_INSTR_I8 + | 60 -> TOKEN_INSTR_I32_I32 + | 61 -> TOKEN_INSTR_I + | 62 -> TOKEN_VAL_FLOAT64 + | 63 -> TOKEN_VAL_INT32_ELIPSES + | 64 -> TOKEN_VAL_INT64 + | 67 -> TOKEN_end_of_input + | 65 -> TOKEN_error + | _ -> failwith "tokenTagToTokenId: bad token" + +/// This function maps production indexes returned in syntax errors to strings representing the non terminal that would be produced by that production +let prodIdxToNonTerminal (prodIdx:int) = + match prodIdx with + | 0 -> NONTERM__startilInstrs + | 1 -> NONTERM__startilType + | 2 -> NONTERM_ilType + | 3 -> NONTERM_ilInstrs + | 4 -> NONTERM_compQstring + | 5 -> NONTERM_compQstring + | 6 -> NONTERM_methodName + | 7 -> NONTERM_instrs2 + | 8 -> NONTERM_instrs2 + | 9 -> NONTERM_methodSpecMaybeArrayMethod + | 10 -> NONTERM_instr + | 11 -> NONTERM_instr + | 12 -> NONTERM_instr + | 13 -> NONTERM_instr + | 14 -> NONTERM_instr + | 15 -> NONTERM_instr + | 16 -> NONTERM_instr + | 17 -> NONTERM_instr + | 18 -> NONTERM_instr + | 19 -> NONTERM_instr + | 20 -> NONTERM_instr + | 21 -> NONTERM_sigArgs0 + | 22 -> NONTERM_sigArgs0 + | 23 -> NONTERM_sigArgs1 + | 24 -> NONTERM_sigArgs1a + | 25 -> NONTERM_sigArgs1a + | 26 -> NONTERM_sigArg + | 27 -> NONTERM_opt_id + | 28 -> NONTERM_opt_id + | 29 -> NONTERM_name1 + | 30 -> NONTERM_name1 + | 31 -> NONTERM_name1 + | 32 -> NONTERM_className + | 33 -> NONTERM_className + | 34 -> NONTERM_slashedName + | 35 -> NONTERM_slashedName + | 36 -> NONTERM_typeNameInst + | 37 -> NONTERM_typeName + | 38 -> NONTERM_typSpec + | 39 -> NONTERM_typSpec + | 40 -> NONTERM_typSpec + | 41 -> NONTERM_callConv + | 42 -> NONTERM_callConv + | 43 -> NONTERM_callConv + | 44 -> NONTERM_callKind + | 45 -> NONTERM_callKind + | 46 -> NONTERM_callKind + | 47 -> NONTERM_typ + | 48 -> NONTERM_typ + | 49 -> NONTERM_typ + | 50 -> NONTERM_typ + | 51 -> NONTERM_typ + | 52 -> NONTERM_typ + | 53 -> NONTERM_typ + | 54 -> NONTERM_typ + | 55 -> NONTERM_typ + | 56 -> NONTERM_typ + | 57 -> NONTERM_typ + | 58 -> NONTERM_typ + | 59 -> NONTERM_typ + | 60 -> NONTERM_typ + | 61 -> NONTERM_typ + | 62 -> NONTERM_typ + | 63 -> NONTERM_typ + | 64 -> NONTERM_typ + | 65 -> NONTERM_typ + | 66 -> NONTERM_typ + | 67 -> NONTERM_typ + | 68 -> NONTERM_typ + | 69 -> NONTERM_typ + | 70 -> NONTERM_typ + | 71 -> NONTERM_typ + | 72 -> NONTERM_typ + | 73 -> NONTERM_typ + | 74 -> NONTERM_typ + | 75 -> NONTERM_typ + | 76 -> NONTERM_typ + | 77 -> NONTERM_bounds1 + | 78 -> NONTERM_bounds1 + | 79 -> NONTERM_bound + | 80 -> NONTERM_bound + | 81 -> NONTERM_bound + | 82 -> NONTERM_bound + | 83 -> NONTERM_bound + | 84 -> NONTERM_bound + | 85 -> NONTERM_id + | 86 -> NONTERM_id + | 87 -> NONTERM_int32 + | 88 -> NONTERM_int64 + | 89 -> NONTERM_float64 + | 90 -> NONTERM_float64 + | 91 -> NONTERM_opt_actual_tyargs + | 92 -> NONTERM_opt_actual_tyargs + | 93 -> NONTERM_actual_tyargs + | 94 -> NONTERM_actualTypSpecs + | 95 -> NONTERM_actualTypSpecs + | _ -> failwith "prodIdxToNonTerminal: bad production index" + +let _fsyacc_endOfInputTag = 67 +let _fsyacc_tagOfErrorTerminal = 65 + +// This function gets the name of a token as a string +let token_to_string (t:token) = + match t with + | VOID -> "VOID" + | VARARG -> "VARARG" + | VALUETYPE -> "VALUETYPE" + | VALUE -> "VALUE" + | UNSIGNED -> "UNSIGNED" + | UNMANAGED -> "UNMANAGED" + | UINT8 -> "UINT8" + | UINT64 -> "UINT64" + | UINT32 -> "UINT32" + | UINT16 -> "UINT16" + | UINT -> "UINT" + | STRING -> "STRING" + | STAR -> "STAR" + | SLASH -> "SLASH" + | RPAREN -> "RPAREN" + | RBRACK -> "RBRACK" + | PLUS -> "PLUS" + | OBJECT -> "OBJECT" + | NATIVE -> "NATIVE" + | METHOD -> "METHOD" + | LPAREN -> "LPAREN" + | LESS -> "LESS" + | LBRACK -> "LBRACK" + | INT8 -> "INT8" + | INT64 -> "INT64" + | INT32 -> "INT32" + | INT16 -> "INT16" + | INT -> "INT" + | INSTANCE -> "INSTANCE" + | GREATER -> "GREATER" + | FLOAT64 -> "FLOAT64" + | FLOAT32 -> "FLOAT32" + | FIELD -> "FIELD" + | EXPLICIT -> "EXPLICIT" + | EOF -> "EOF" + | ELIPSES -> "ELIPSES" + | DOT -> "DOT" + | DEFAULT -> "DEFAULT" + | DCOLON -> "DCOLON" + | COMMA -> "COMMA" + | CLASS -> "CLASS" + | CHAR -> "CHAR" + | BYTEARRAY -> "BYTEARRAY" + | BOOL -> "BOOL" + | BANG -> "BANG" + | AMP -> "AMP" + | VAL_SQSTRING _ -> "VAL_SQSTRING" + | VAL_QSTRING _ -> "VAL_QSTRING" + | VAL_DOTTEDNAME _ -> "VAL_DOTTEDNAME" + | VAL_ID _ -> "VAL_ID" + | VAL_HEXBYTE _ -> "VAL_HEXBYTE" + | INSTR_VALUETYPE _ -> "INSTR_VALUETYPE" + | INSTR_INT_TYPE _ -> "INSTR_INT_TYPE" + | INSTR_TYPE _ -> "INSTR_TYPE" + | INSTR_TOK _ -> "INSTR_TOK" + | INSTR_STRING _ -> "INSTR_STRING" + | INSTR_NONE _ -> "INSTR_NONE" + | INSTR_METHOD _ -> "INSTR_METHOD" + | INSTR_R _ -> "INSTR_R" + | INSTR_I8 _ -> "INSTR_I8" + | INSTR_I32_I32 _ -> "INSTR_I32_I32" + | INSTR_I _ -> "INSTR_I" + | VAL_FLOAT64 _ -> "VAL_FLOAT64" + | VAL_INT32_ELIPSES _ -> "VAL_INT32_ELIPSES" + | VAL_INT64 _ -> "VAL_INT64" + +// This function gets the data carried by a token as an object +let _fsyacc_dataOfToken (t:token) = + match t with + | VOID -> (null : System.Object) + | VARARG -> (null : System.Object) + | VALUETYPE -> (null : System.Object) + | VALUE -> (null : System.Object) + | UNSIGNED -> (null : System.Object) + | UNMANAGED -> (null : System.Object) + | UINT8 -> (null : System.Object) + | UINT64 -> (null : System.Object) + | UINT32 -> (null : System.Object) + | UINT16 -> (null : System.Object) + | UINT -> (null : System.Object) + | STRING -> (null : System.Object) + | STAR -> (null : System.Object) + | SLASH -> (null : System.Object) + | RPAREN -> (null : System.Object) + | RBRACK -> (null : System.Object) + | PLUS -> (null : System.Object) + | OBJECT -> (null : System.Object) + | NATIVE -> (null : System.Object) + | METHOD -> (null : System.Object) + | LPAREN -> (null : System.Object) + | LESS -> (null : System.Object) + | LBRACK -> (null : System.Object) + | INT8 -> (null : System.Object) + | INT64 -> (null : System.Object) + | INT32 -> (null : System.Object) + | INT16 -> (null : System.Object) + | INT -> (null : System.Object) + | INSTANCE -> (null : System.Object) + | GREATER -> (null : System.Object) + | FLOAT64 -> (null : System.Object) + | FLOAT32 -> (null : System.Object) + | FIELD -> (null : System.Object) + | EXPLICIT -> (null : System.Object) + | EOF -> (null : System.Object) + | ELIPSES -> (null : System.Object) + | DOT -> (null : System.Object) + | DEFAULT -> (null : System.Object) + | DCOLON -> (null : System.Object) + | COMMA -> (null : System.Object) + | CLASS -> (null : System.Object) + | CHAR -> (null : System.Object) + | BYTEARRAY -> (null : System.Object) + | BOOL -> (null : System.Object) + | BANG -> (null : System.Object) + | AMP -> (null : System.Object) + | VAL_SQSTRING _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | VAL_QSTRING _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | VAL_DOTTEDNAME _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | VAL_ID _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | VAL_HEXBYTE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_VALUETYPE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_INT_TYPE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_TYPE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_TOK _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_STRING _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_NONE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_METHOD _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_R _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_I8 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_I32_I32 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_I _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | VAL_FLOAT64 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | VAL_INT32_ELIPSES _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | VAL_INT64 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x +let _fsyacc_gotos = [| 0us; 65535us; 0us; 65535us; 1us; 65535us; 2us; 3us; 1us; 65535us; 0us; 1us; 0us; 65535us; 1us; 65535us; 14us; 15us; 2us; 65535us; 0us; 6us; 9us; 10us; 1us; 65535us; 31us; 32us; 2us; 65535us; 0us; 9us; 9us; 9us; 1us; 65535us; 17us; 18us; 1us; 65535us; 17us; 42us; 1us; 65535us; 17us; 43us; 2us; 65535us; 17us; 44us; 45us; 46us; 1us; 65535us; 47us; 48us; 15us; 65535us; 12us; 53us; 14us; 8us; 33us; 53us; 36us; 53us; 38us; 53us; 40us; 53us; 56us; 52us; 57us; 52us; 58us; 53us; 61us; 53us; 80us; 53us; 83us; 53us; 85us; 53us; 136us; 53us; 140us; 53us; 10us; 65535us; 12us; 65us; 33us; 65us; 36us; 65us; 38us; 65us; 40us; 65us; 80us; 63us; 83us; 63us; 85us; 63us; 136us; 65us; 140us; 65us; 12us; 65535us; 12us; 60us; 33us; 60us; 36us; 60us; 38us; 60us; 40us; 60us; 58us; 59us; 61us; 62us; 80us; 60us; 83us; 60us; 85us; 60us; 136us; 60us; 140us; 60us; 3us; 65535us; 80us; 81us; 83us; 84us; 85us; 86us; 7us; 65535us; 12us; 66us; 33us; 66us; 36us; 66us; 38us; 66us; 40us; 66us; 136us; 66us; 140us; 66us; 7us; 65535us; 12us; 13us; 33us; 34us; 36us; 37us; 38us; 39us; 40us; 41us; 136us; 139us; 140us; 141us; 1us; 65535us; 31us; 11us; 3us; 65535us; 31us; 75us; 71us; 72us; 73us; 74us; 12us; 65535us; 2us; 4us; 11us; 12us; 12us; 67us; 17us; 47us; 33us; 67us; 36us; 67us; 38us; 67us; 40us; 67us; 45us; 47us; 68us; 69us; 136us; 67us; 140us; 67us; 2us; 65535us; 57us; 89us; 87us; 89us; 3us; 65535us; 57us; 118us; 87us; 118us; 119us; 120us; 17us; 65535us; 12us; 50us; 14us; 50us; 33us; 50us; 36us; 50us; 38us; 50us; 40us; 50us; 47us; 49us; 54us; 55us; 56us; 50us; 57us; 50us; 58us; 50us; 61us; 50us; 80us; 50us; 83us; 50us; 85us; 50us; 136us; 50us; 140us; 50us; 10us; 65535us; 21us; 22us; 23us; 24us; 24us; 25us; 35us; 36us; 57us; 121us; 87us; 121us; 116us; 117us; 119us; 121us; 122us; 123us; 124us; 125us; 3us; 65535us; 26us; 27us; 28us; 30us; 132us; 133us; 1us; 65535us; 28us; 29us; 2us; 65535us; 15us; 16us; 63us; 64us; 2us; 65535us; 15us; 135us; 63us; 135us; 1us; 65535us; 136us; 137us; |] +let _fsyacc_sparseGotoTableRowOffsets = [|0us; 1us; 2us; 4us; 6us; 7us; 9us; 12us; 14us; 17us; 19us; 21us; 23us; 26us; 28us; 44us; 55us; 68us; 72us; 80us; 88us; 90us; 94us; 107us; 110us; 114us; 132us; 143us; 147us; 149us; 152us; 155us; |] +let _fsyacc_stateToProdIdxsTableElements = [| 1us; 0us; 1us; 0us; 1us; 1us; 1us; 1us; 5us; 2us; 52us; 53us; 54us; 55us; 1us; 2us; 1us; 3us; 1us; 3us; 2us; 6us; 31us; 1us; 7us; 1us; 7us; 1us; 9us; 5us; 9us; 52us; 53us; 54us; 55us; 1us; 9us; 1us; 9us; 1us; 9us; 1us; 9us; 1us; 9us; 1us; 9us; 1us; 9us; 1us; 10us; 1us; 11us; 1us; 11us; 1us; 12us; 1us; 12us; 1us; 12us; 1us; 13us; 1us; 13us; 2us; 14us; 15us; 1us; 14us; 1us; 15us; 1us; 16us; 1us; 16us; 1us; 17us; 1us; 17us; 1us; 18us; 1us; 18us; 1us; 18us; 1us; 19us; 1us; 19us; 1us; 20us; 1us; 20us; 1us; 22us; 2us; 23us; 25us; 1us; 24us; 1us; 25us; 1us; 25us; 5us; 26us; 52us; 53us; 54us; 55us; 1us; 26us; 1us; 28us; 1us; 29us; 1us; 30us; 2us; 31us; 32us; 3us; 31us; 34us; 35us; 1us; 31us; 1us; 31us; 1us; 32us; 3us; 32us; 52us; 53us; 1us; 32us; 1us; 32us; 1us; 33us; 1us; 35us; 1us; 35us; 1us; 36us; 1us; 36us; 1us; 37us; 1us; 38us; 5us; 39us; 52us; 53us; 54us; 55us; 1us; 40us; 5us; 40us; 52us; 53us; 54us; 55us; 1us; 40us; 1us; 41us; 1us; 41us; 1us; 42us; 1us; 42us; 1us; 43us; 1us; 45us; 1us; 46us; 1us; 47us; 1us; 48us; 1us; 49us; 1us; 49us; 1us; 50us; 1us; 50us; 1us; 50us; 1us; 51us; 1us; 51us; 2us; 52us; 53us; 1us; 52us; 2us; 53us; 78us; 1us; 53us; 1us; 54us; 1us; 55us; 1us; 56us; 1us; 57us; 1us; 58us; 1us; 59us; 1us; 60us; 1us; 61us; 1us; 62us; 1us; 63us; 1us; 64us; 4us; 65us; 66us; 67us; 68us; 1us; 65us; 1us; 66us; 1us; 67us; 1us; 68us; 1us; 69us; 1us; 70us; 1us; 71us; 1us; 72us; 3us; 73us; 74us; 75us; 1us; 73us; 1us; 74us; 1us; 74us; 1us; 75us; 1us; 76us; 1us; 76us; 1us; 77us; 1us; 78us; 1us; 78us; 3us; 80us; 81us; 82us; 2us; 81us; 82us; 1us; 81us; 2us; 83us; 84us; 1us; 83us; 1us; 85us; 1us; 86us; 1us; 87us; 1us; 88us; 1us; 89us; 1us; 90us; 1us; 90us; 1us; 90us; 1us; 90us; 1us; 92us; 1us; 93us; 2us; 93us; 95us; 1us; 93us; 1us; 94us; 1us; 95us; 1us; 95us; |] +let _fsyacc_stateToProdIdxsTableRowOffsets = [|0us; 2us; 4us; 6us; 8us; 14us; 16us; 18us; 20us; 23us; 25us; 27us; 29us; 35us; 37us; 39us; 41us; 43us; 45us; 47us; 49us; 51us; 53us; 55us; 57us; 59us; 61us; 63us; 65us; 68us; 70us; 72us; 74us; 76us; 78us; 80us; 82us; 84us; 86us; 88us; 90us; 92us; 94us; 96us; 99us; 101us; 103us; 105us; 111us; 113us; 115us; 117us; 119us; 122us; 126us; 128us; 130us; 132us; 136us; 138us; 140us; 142us; 144us; 146us; 148us; 150us; 152us; 154us; 160us; 162us; 168us; 170us; 172us; 174us; 176us; 178us; 180us; 182us; 184us; 186us; 188us; 190us; 192us; 194us; 196us; 198us; 200us; 202us; 205us; 207us; 210us; 212us; 214us; 216us; 218us; 220us; 222us; 224us; 226us; 228us; 230us; 232us; 234us; 239us; 241us; 243us; 245us; 247us; 249us; 251us; 253us; 255us; 259us; 261us; 263us; 265us; 267us; 269us; 271us; 273us; 275us; 277us; 281us; 284us; 286us; 289us; 291us; 293us; 295us; 297us; 299us; 301us; 303us; 305us; 307us; 309us; 311us; 313us; 316us; 318us; 320us; 322us; |] +let _fsyacc_action_rows = 142 +let _fsyacc_actionTableElements = [|10us; 16392us; 51us; 38us; 52us; 35us; 53us; 33us; 54us; 40us; 56us; 20us; 57us; 31us; 58us; 28us; 59us; 26us; 60us; 23us; 61us; 21us; 0us; 49152us; 21us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 0us; 49152us; 4us; 32768us; 12us; 92us; 22us; 87us; 34us; 5us; 45us; 91us; 0us; 16386us; 1us; 32768us; 34us; 7us; 0us; 16387us; 1us; 16390us; 36us; 54us; 10us; 16392us; 51us; 38us; 52us; 35us; 53us; 33us; 54us; 40us; 56us; 20us; 57us; 31us; 58us; 28us; 59us; 26us; 60us; 23us; 61us; 21us; 0us; 16391us; 21us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 28us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 12us; 92us; 17us; 79us; 18us; 111us; 20us; 68us; 22us; 57us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 45us; 91us; 46us; 127us; 48us; 51us; 49us; 126us; 1us; 32768us; 38us; 14us; 3us; 32768us; 46us; 127us; 48us; 51us; 49us; 126us; 1us; 16475us; 21us; 136us; 1us; 32768us; 20us; 17us; 21us; 16405us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 1us; 32768us; 14us; 19us; 0us; 16393us; 0us; 16394us; 1us; 32768us; 64us; 128us; 0us; 16395us; 1us; 32768us; 64us; 128us; 1us; 32768us; 64us; 128us; 0us; 16396us; 1us; 32768us; 64us; 129us; 0us; 16397us; 3us; 32768us; 30us; 131us; 62us; 130us; 64us; 129us; 0us; 16398us; 0us; 16399us; 4us; 16428us; 1us; 77us; 28us; 71us; 33us; 73us; 37us; 76us; 0us; 16400us; 26us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 20us; 68us; 22us; 56us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 46us; 127us; 48us; 51us; 49us; 126us; 0us; 16401us; 1us; 32768us; 64us; 128us; 26us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 20us; 68us; 22us; 56us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 46us; 127us; 48us; 51us; 49us; 126us; 0us; 16402us; 26us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 20us; 68us; 22us; 56us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 46us; 127us; 48us; 51us; 49us; 126us; 0us; 16403us; 26us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 20us; 68us; 22us; 56us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 46us; 127us; 48us; 51us; 49us; 126us; 0us; 16404us; 0us; 16406us; 1us; 16407us; 39us; 45us; 0us; 16408us; 21us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 0us; 16409us; 5us; 16411us; 12us; 92us; 22us; 87us; 45us; 91us; 46us; 127us; 49us; 126us; 0us; 16410us; 0us; 16412us; 0us; 16413us; 0us; 16414us; 2us; 32768us; 15us; 58us; 36us; 54us; 2us; 16418us; 13us; 61us; 36us; 54us; 2us; 32768us; 46us; 127us; 49us; 126us; 0us; 16415us; 3us; 32768us; 46us; 127us; 48us; 51us; 49us; 126us; 6us; 16463us; 15us; 88us; 46us; 127us; 48us; 51us; 49us; 126us; 63us; 124us; 64us; 128us; 3us; 32768us; 46us; 127us; 48us; 51us; 49us; 126us; 0us; 16416us; 0us; 16417us; 3us; 32768us; 46us; 127us; 48us; 51us; 49us; 126us; 0us; 16419us; 1us; 16475us; 21us; 136us; 0us; 16420us; 0us; 16421us; 0us; 16422us; 3us; 16423us; 12us; 92us; 22us; 87us; 45us; 91us; 21us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 4us; 32768us; 12us; 92us; 14us; 70us; 22us; 87us; 45us; 91us; 0us; 16424us; 2us; 16428us; 1us; 77us; 37us; 76us; 0us; 16425us; 2us; 16428us; 1us; 77us; 37us; 76us; 0us; 16426us; 0us; 16427us; 0us; 16429us; 0us; 16430us; 0us; 16431us; 0us; 16432us; 4us; 32768us; 22us; 56us; 46us; 127us; 48us; 51us; 49us; 126us; 0us; 16433us; 1us; 32768us; 40us; 83us; 4us; 32768us; 22us; 56us; 46us; 127us; 48us; 51us; 49us; 126us; 0us; 16434us; 4us; 32768us; 22us; 56us; 46us; 127us; 48us; 51us; 49us; 126us; 0us; 16435us; 3us; 16463us; 15us; 88us; 63us; 124us; 64us; 128us; 0us; 16436us; 2us; 32768us; 15us; 90us; 39us; 119us; 0us; 16437us; 0us; 16438us; 0us; 16439us; 0us; 16440us; 0us; 16441us; 0us; 16442us; 0us; 16443us; 0us; 16444us; 0us; 16445us; 0us; 16446us; 0us; 16447us; 0us; 16448us; 4us; 32768us; 23us; 103us; 24us; 106us; 25us; 105us; 26us; 104us; 0us; 16449us; 0us; 16450us; 0us; 16451us; 0us; 16452us; 0us; 16453us; 0us; 16454us; 0us; 16455us; 0us; 16456us; 3us; 32768us; 4us; 113us; 10us; 115us; 27us; 112us; 0us; 16457us; 1us; 32768us; 27us; 114us; 0us; 16458us; 0us; 16459us; 1us; 32768us; 64us; 128us; 0us; 16460us; 0us; 16461us; 2us; 16463us; 63us; 124us; 64us; 128us; 0us; 16462us; 1us; 16464us; 35us; 122us; 1us; 16466us; 64us; 128us; 0us; 16465us; 1us; 16468us; 64us; 128us; 0us; 16467us; 0us; 16469us; 0us; 16470us; 0us; 16471us; 0us; 16472us; 0us; 16473us; 1us; 32768us; 20us; 132us; 1us; 32768us; 64us; 129us; 1us; 32768us; 14us; 134us; 0us; 16474us; 0us; 16476us; 26us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 20us; 68us; 22us; 56us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 46us; 127us; 48us; 51us; 49us; 126us; 2us; 32768us; 29us; 138us; 39us; 140us; 0us; 16477us; 0us; 16478us; 26us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 20us; 68us; 22us; 56us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 46us; 127us; 48us; 51us; 49us; 126us; 0us; 16479us; |] +let _fsyacc_actionTableRowOffsets = [|0us; 11us; 12us; 34us; 35us; 40us; 41us; 43us; 44us; 46us; 57us; 58us; 80us; 109us; 111us; 115us; 117us; 119us; 141us; 143us; 144us; 145us; 147us; 148us; 150us; 152us; 153us; 155us; 156us; 160us; 161us; 162us; 167us; 168us; 195us; 196us; 198us; 225us; 226us; 253us; 254us; 281us; 282us; 283us; 285us; 286us; 308us; 309us; 315us; 316us; 317us; 318us; 319us; 322us; 325us; 328us; 329us; 333us; 340us; 344us; 345us; 346us; 350us; 351us; 353us; 354us; 355us; 356us; 360us; 382us; 387us; 388us; 391us; 392us; 395us; 396us; 397us; 398us; 399us; 400us; 401us; 406us; 407us; 409us; 414us; 415us; 420us; 421us; 425us; 426us; 429us; 430us; 431us; 432us; 433us; 434us; 435us; 436us; 437us; 438us; 439us; 440us; 441us; 446us; 447us; 448us; 449us; 450us; 451us; 452us; 453us; 454us; 458us; 459us; 461us; 462us; 463us; 465us; 466us; 467us; 470us; 471us; 473us; 475us; 476us; 478us; 479us; 480us; 481us; 482us; 483us; 484us; 486us; 488us; 490us; 491us; 492us; 519us; 522us; 523us; 524us; 551us; |] +let _fsyacc_reductionSymbolCounts = [|1us; 1us; 2us; 2us; 1us; 3us; 1us; 2us; 0us; 9us; 1us; 2us; 3us; 2us; 2us; 2us; 2us; 2us; 3us; 2us; 2us; 0us; 1us; 1us; 1us; 3us; 2us; 0us; 1us; 1us; 1us; 3us; 4us; 1us; 1us; 3us; 2us; 1us; 1us; 1us; 3us; 2us; 2us; 1us; 0us; 1us; 1us; 1us; 1us; 2us; 3us; 2us; 3us; 4us; 2us; 2us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 2us; 2us; 2us; 2us; 1us; 1us; 1us; 1us; 2us; 3us; 2us; 2us; 1us; 3us; 0us; 1us; 3us; 2us; 2us; 1us; 1us; 1us; 1us; 1us; 1us; 4us; 0us; 1us; 3us; 1us; 3us; |] +let _fsyacc_productionToNonTerminalTable = [|0us; 1us; 2us; 3us; 4us; 4us; 5us; 6us; 6us; 7us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 9us; 9us; 10us; 11us; 11us; 12us; 13us; 13us; 14us; 14us; 14us; 15us; 15us; 16us; 16us; 17us; 18us; 19us; 19us; 19us; 20us; 20us; 20us; 21us; 21us; 21us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 23us; 23us; 24us; 24us; 24us; 24us; 24us; 24us; 25us; 25us; 26us; 27us; 28us; 28us; 29us; 29us; 30us; 31us; 31us; |] +let _fsyacc_immediateActions = [|65535us; 49152us; 65535us; 49152us; 65535us; 16386us; 65535us; 16387us; 65535us; 65535us; 16391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16393us; 16394us; 65535us; 16395us; 65535us; 65535us; 16396us; 65535us; 16397us; 65535us; 16398us; 16399us; 65535us; 16400us; 65535us; 16401us; 65535us; 65535us; 16402us; 65535us; 16403us; 65535us; 16404us; 16406us; 65535us; 16408us; 65535us; 16409us; 65535us; 16410us; 16412us; 16413us; 16414us; 65535us; 65535us; 65535us; 16415us; 65535us; 65535us; 65535us; 16416us; 16417us; 65535us; 16419us; 65535us; 16420us; 16421us; 16422us; 65535us; 65535us; 65535us; 16424us; 65535us; 16425us; 65535us; 16426us; 16427us; 16429us; 16430us; 16431us; 16432us; 65535us; 16433us; 65535us; 65535us; 16434us; 65535us; 16435us; 65535us; 16436us; 65535us; 16437us; 16438us; 16439us; 16440us; 16441us; 16442us; 16443us; 16444us; 16445us; 16446us; 16447us; 16448us; 65535us; 16449us; 16450us; 16451us; 16452us; 16453us; 16454us; 16455us; 16456us; 65535us; 16457us; 65535us; 16458us; 16459us; 65535us; 16460us; 16461us; 65535us; 16462us; 65535us; 65535us; 16465us; 65535us; 16467us; 16469us; 16470us; 16471us; 16472us; 16473us; 65535us; 65535us; 65535us; 16474us; 16476us; 65535us; 65535us; 16477us; 16478us; 65535us; 16479us; |] +let _fsyacc_reductions () = [| +# 646 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILInstr array)) in + Microsoft.FSharp.Core.Operators.box + ( + ( + raise (Internal.Utilities.Text.Parsing.Accept(Microsoft.FSharp.Core.Operators.box _1)) + ) + : '_startilInstrs)); +# 655 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( + raise (Internal.Utilities.Text.Parsing.Accept(Microsoft.FSharp.Core.Operators.box _1)) + ) + : '_startilType)); +# 664 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType ResolvedAtMethodSpecScope)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 156 "..\..\absil\ilpars.fsy" + resolveMethodSpecScope _1 [] + ) +# 156 "..\..\absil\ilpars.fsy" + : ILType)); +# 675 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'instrs2)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 160 "..\..\absil\ilpars.fsy" + Array.ofList _1 + ) +# 160 "..\..\absil\ilpars.fsy" + : ILInstr array)); +# 686 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 164 "..\..\absil\ilpars.fsy" + _1 + ) +# 164 "..\..\absil\ilpars.fsy" + : 'compQstring)); +# 697 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'compQstring)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 165 "..\..\absil\ilpars.fsy" + _1 + _3 + ) +# 165 "..\..\absil\ilpars.fsy" + : 'compQstring)); +# 709 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 167 "..\..\absil\ilpars.fsy" + _1 + ) +# 167 "..\..\absil\ilpars.fsy" + : 'methodName)); +# 720 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'instr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'instrs2)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 171 "..\..\absil\ilpars.fsy" + _1 :: _2 + ) +# 171 "..\..\absil\ilpars.fsy" + : 'instrs2)); +# 732 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 172 "..\..\absil\ilpars.fsy" + [] + ) +# 172 "..\..\absil\ilpars.fsy" + : 'instrs2)); +# 742 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'callConv)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : ILType ResolvedAtMethodSpecScope)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typSpec)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'methodName)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_actual_tyargs)) in + let _8 = (let data = parseState.GetInput(8) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigArgs0)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 178 "..\..\absil\ilpars.fsy" + let callee_class_typ : ILType = resolveCurrentMethodSpecScope _3 + let gscope = (if isILArrTy callee_class_typ then None else Some callee_class_typ.TypeSpec) + let argtys_n_varargs = resolveFormalMethodSpecScope gscope _8 + let (argtys,varargs) = decodeVarargs argtys_n_varargs + let minst = resolveCurrentMethodSpecScope _6 + let callee_retty = resolveFormalMethodSpecScope gscope _2 + (callee_class_typ, _1, _5, argtys, callee_retty, minst), varargs + ) +# 178 "..\..\absil\ilpars.fsy" + : 'methodSpecMaybeArrayMethod)); +# 764 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : NoArgInstr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 188 "..\..\absil\ilpars.fsy" + (_1 ()) + ) +# 188 "..\..\absil\ilpars.fsy" + : 'instr)); +# 775 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Int32Instr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 190 "..\..\absil\ilpars.fsy" + (_1 _2) + ) +# 190 "..\..\absil\ilpars.fsy" + : 'instr)); +# 787 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Int32Int32Instr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 192 "..\..\absil\ilpars.fsy" + (_1 (_2,_3)) + ) +# 192 "..\..\absil\ilpars.fsy" + : 'instr)); +# 800 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Int64Instr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int64)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 194 "..\..\absil\ilpars.fsy" + (_1 _2) + ) +# 194 "..\..\absil\ilpars.fsy" + : 'instr)); +# 812 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : DoubleInstr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'float64)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 196 "..\..\absil\ilpars.fsy" + (_1 (ILConst.R8 _2)) + ) +# 196 "..\..\absil\ilpars.fsy" + : 'instr)); +# 824 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : DoubleInstr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int64)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 198 "..\..\absil\ilpars.fsy" + (_1 (ILConst.R8 (float _2))) + ) +# 198 "..\..\absil\ilpars.fsy" + : 'instr)); +# 836 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : MethodSpecInstr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'methodSpecMaybeArrayMethod)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 200 "..\..\absil\ilpars.fsy" + + let ((encl_typ, _cc, nm, _argtys, _retty, _minst) as data),varargs = _2 + if isILArrTy encl_typ then + let (shape,ty) = destILArrTy encl_typ + match nm with + | "Get" -> I_ldelem_any(shape,ty) + | "Set" -> I_stelem_any(shape,ty) + | "Address" -> I_ldelema(NormalAddress,false,shape,ty) + | ".ctor" -> I_newarr(shape,ty) + | _ -> failwith "bad method on array type" + else + _1 (mkILMethSpecInTy data, varargs) + ) +# 200 "..\..\absil\ilpars.fsy" + : 'instr)); +# 859 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : TypeInstr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 213 "..\..\absil\ilpars.fsy" + _1 (resolveCurrentMethodSpecScope _2) + ) +# 213 "..\..\absil\ilpars.fsy" + : 'instr)); +# 871 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : IntTypeInstr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 215 "..\..\absil\ilpars.fsy" + _1 ( _2,resolveCurrentMethodSpecScope _3) + ) +# 215 "..\..\absil\ilpars.fsy" + : 'instr)); +# 884 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ValueTypeInstr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 217 "..\..\absil\ilpars.fsy" + _1 (resolveCurrentMethodSpecScope _2) + ) +# 217 "..\..\absil\ilpars.fsy" + : 'instr)); +# 896 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : TokenInstr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 219 "..\..\absil\ilpars.fsy" + (_1 (ILToken.ILType (resolveCurrentMethodSpecScope _2))) + ) +# 219 "..\..\absil\ilpars.fsy" + : 'instr)); +# 908 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 226 "..\..\absil\ilpars.fsy" + noMethodSpecScope [] + ) +# 226 "..\..\absil\ilpars.fsy" + : 'sigArgs0)); +# 918 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigArgs1)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 227 "..\..\absil\ilpars.fsy" + _1 + ) +# 227 "..\..\absil\ilpars.fsy" + : 'sigArgs0)); +# 929 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigArgs1a)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 231 "..\..\absil\ilpars.fsy" + ResolvedAtMethodSpecScope (fun c -> List.map (fun obj -> resolveMethodSpecScope obj c) (List.rev _1)) + ) +# 231 "..\..\absil\ilpars.fsy" + : 'sigArgs1)); +# 940 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigArg)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 235 "..\..\absil\ilpars.fsy" + [_1] + ) +# 235 "..\..\absil\ilpars.fsy" + : 'sigArgs1a)); +# 951 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigArgs1a)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigArg)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 237 "..\..\absil\ilpars.fsy" + _3:: _1 + ) +# 237 "..\..\absil\ilpars.fsy" + : 'sigArgs1a)); +# 963 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType ResolvedAtMethodSpecScope)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_id)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 241 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _1 (fun ty -> + noMethodSpecScope (SigArg(_2, ty))) + ) +# 241 "..\..\absil\ilpars.fsy" + : 'sigArg)); +# 976 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 246 "..\..\absil\ilpars.fsy" + None + ) +# 246 "..\..\absil\ilpars.fsy" + : 'opt_id)); +# 986 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'id)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 246 "..\..\absil\ilpars.fsy" + Some _1 + ) +# 246 "..\..\absil\ilpars.fsy" + : 'opt_id)); +# 997 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'id)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 254 "..\..\absil\ilpars.fsy" + _1 + ) +# 254 "..\..\absil\ilpars.fsy" + : string)); +# 1008 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 256 "..\..\absil\ilpars.fsy" + _1 + ) +# 256 "..\..\absil\ilpars.fsy" + : string)); +# 1019 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'id)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 258 "..\..\absil\ilpars.fsy" + _1 + "." + _3 + ) +# 258 "..\..\absil\ilpars.fsy" + : string)); +# 1031 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'slashedName)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 262 "..\..\absil\ilpars.fsy" + let (enc,nm) = _4 + let aref = findAssemblyRef _2 + ILScopeRef.Assembly aref, enc, nm + ) +# 262 "..\..\absil\ilpars.fsy" + : 'className)); +# 1045 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'slashedName)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 266 "..\..\absil\ilpars.fsy" + let enc, nm = _1 in (ILScopeRef.Local, enc, nm) + ) +# 266 "..\..\absil\ilpars.fsy" + : 'className)); +# 1056 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 270 "..\..\absil\ilpars.fsy" + ([],_1) + ) +# 270 "..\..\absil\ilpars.fsy" + : 'slashedName)); +# 1067 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'slashedName)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 272 "..\..\absil\ilpars.fsy" + let (enc,nm) = _3 in (_1::enc, nm) + ) +# 272 "..\..\absil\ilpars.fsy" + : 'slashedName)); +# 1079 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'className)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_actual_tyargs)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 276 "..\..\absil\ilpars.fsy" + let (a,b,c) = _1 + resolveMethodSpecScopeThen _2 (fun inst -> + noMethodSpecScope ( (mkILTySpec ( (mkILNestedTyRef (a,b,c)), inst)))) + ) +# 276 "..\..\absil\ilpars.fsy" + : 'typeNameInst)); +# 1093 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'className)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 283 "..\..\absil\ilpars.fsy" + let (a,b,c) = _1 + noMethodSpecScope ( (mkILTySpec ( (mkILNestedTyRef (a,b,c)), []))) + ) +# 283 "..\..\absil\ilpars.fsy" + : 'typeName)); +# 1105 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeName)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 289 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _1 (fun tref -> + noMethodSpecScope (mkILBoxedType tref)) + ) +# 289 "..\..\absil\ilpars.fsy" + : 'typSpec)); +# 1117 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType ResolvedAtMethodSpecScope)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 292 "..\..\absil\ilpars.fsy" + _1 + ) +# 292 "..\..\absil\ilpars.fsy" + : 'typSpec)); +# 1128 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : ILType ResolvedAtMethodSpecScope)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 294 "..\..\absil\ilpars.fsy" + _2 + ) +# 294 "..\..\absil\ilpars.fsy" + : 'typSpec)); +# 1139 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'callKind)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 299 "..\..\absil\ilpars.fsy" + Callconv (ILThisConvention.Instance,_2) + ) +# 299 "..\..\absil\ilpars.fsy" + : 'callConv)); +# 1150 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'callKind)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 301 "..\..\absil\ilpars.fsy" + Callconv (ILThisConvention.InstanceExplicit,_2) + ) +# 301 "..\..\absil\ilpars.fsy" + : 'callConv)); +# 1161 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'callKind)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 303 "..\..\absil\ilpars.fsy" + Callconv (ILThisConvention.Static,_1) + ) +# 303 "..\..\absil\ilpars.fsy" + : 'callConv)); +# 1172 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 307 "..\..\absil\ilpars.fsy" + ILArgConvention.Default + ) +# 307 "..\..\absil\ilpars.fsy" + : 'callKind)); +# 1182 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 309 "..\..\absil\ilpars.fsy" + ILArgConvention.Default + ) +# 309 "..\..\absil\ilpars.fsy" + : 'callKind)); +# 1192 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 311 "..\..\absil\ilpars.fsy" + ILArgConvention.VarArg + ) +# 311 "..\..\absil\ilpars.fsy" + : 'callKind)); +# 1202 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 320 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_String + ) +# 320 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1212 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 322 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_Object + ) +# 322 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1222 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeNameInst)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 324 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _2 (fun tspec -> + noMethodSpecScope (mkILBoxedType tspec)) + ) +# 324 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1234 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeNameInst)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 327 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _3 (fun tspec -> + noMethodSpecScope (ILType.Value tspec)) + ) +# 327 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1246 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeNameInst)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 330 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _2 (fun tspec -> + noMethodSpecScope (ILType.Value tspec)) + ) +# 330 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1258 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType ResolvedAtMethodSpecScope)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 333 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _1 (fun ty -> noMethodSpecScope (mkILArr1DTy ty)) + ) +# 333 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1269 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType ResolvedAtMethodSpecScope)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'bounds1)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 335 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _1 (fun ty -> noMethodSpecScope (mkILArrTy (ty,ILArrayShape _3))) + ) +# 335 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1281 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType ResolvedAtMethodSpecScope)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 337 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _1 (fun ty -> noMethodSpecScope (ILType.Byref ty)) + ) +# 337 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1292 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType ResolvedAtMethodSpecScope)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 339 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _1 (fun ty -> noMethodSpecScope (ILType.Ptr ty)) + ) +# 339 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1303 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 341 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_char + ) +# 341 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1313 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 343 "..\..\absil\ilpars.fsy" + noMethodSpecScope ILType.Void + ) +# 343 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1323 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 345 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_bool + ) +# 345 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1333 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 347 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_int8 + ) +# 347 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1343 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 349 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_int16 + ) +# 349 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1353 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 351 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_int32 + ) +# 351 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1363 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 353 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_int64 + ) +# 353 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1373 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 355 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_float32 + ) +# 355 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1383 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 357 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_float64 + ) +# 357 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1393 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 359 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_uint8 + ) +# 359 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1403 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 361 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_uint16 + ) +# 361 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1413 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 363 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_uint32 + ) +# 363 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1423 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 365 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_uint64 + ) +# 365 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1433 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 367 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_uint8 + ) +# 367 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1443 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 369 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_uint16 + ) +# 369 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1453 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 371 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_uint32 + ) +# 371 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1463 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 373 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_uint64 + ) +# 373 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1473 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 375 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_IntPtr + ) +# 375 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1483 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 377 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_UIntPtr + ) +# 377 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1493 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 379 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_UIntPtr + ) +# 379 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1503 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 382 "..\..\absil\ilpars.fsy" + noMethodSpecScope (ILType.TypeVar (uint16 ( _2))) + ) +# 382 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1514 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'bound)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 387 "..\..\absil\ilpars.fsy" + [_1] + ) +# 387 "..\..\absil\ilpars.fsy" + : 'bounds1)); +# 1525 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'bounds1)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'bound)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 389 "..\..\absil\ilpars.fsy" + _1 @ [_3] + ) +# 389 "..\..\absil\ilpars.fsy" + : 'bounds1)); +# 1537 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 393 "..\..\absil\ilpars.fsy" + (None, None) + ) +# 393 "..\..\absil\ilpars.fsy" + : 'bound)); +# 1547 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 395 "..\..\absil\ilpars.fsy" + (None, Some _1) + ) +# 395 "..\..\absil\ilpars.fsy" + : 'bound)); +# 1558 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 397 "..\..\absil\ilpars.fsy" + (Some _1, Some (_3 - _1 + 1)) + ) +# 397 "..\..\absil\ilpars.fsy" + : 'bound)); +# 1570 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 399 "..\..\absil\ilpars.fsy" + (Some _1, None) + ) +# 399 "..\..\absil\ilpars.fsy" + : 'bound)); +# 1581 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int32)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 406 "..\..\absil\ilpars.fsy" + (Some _1, Some (_2 - _1 + 1)) + ) +# 406 "..\..\absil\ilpars.fsy" + : 'bound)); +# 1593 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int32)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 408 "..\..\absil\ilpars.fsy" + (Some _1, None) + ) +# 408 "..\..\absil\ilpars.fsy" + : 'bound)); +# 1604 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 412 "..\..\absil\ilpars.fsy" + _1 + ) +# 412 "..\..\absil\ilpars.fsy" + : 'id)); +# 1615 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 414 "..\..\absil\ilpars.fsy" + _1 + ) +# 414 "..\..\absil\ilpars.fsy" + : 'id)); +# 1626 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int64)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 418 "..\..\absil\ilpars.fsy" + int32 _1 + ) +# 418 "..\..\absil\ilpars.fsy" + : 'int32)); +# 1637 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int64)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 422 "..\..\absil\ilpars.fsy" + _1 + ) +# 422 "..\..\absil\ilpars.fsy" + : 'int64)); +# 1648 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : double)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 426 "..\..\absil\ilpars.fsy" + _1 + ) +# 426 "..\..\absil\ilpars.fsy" + : 'float64)); +# 1659 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'int64)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 428 "..\..\absil\ilpars.fsy" + System.BitConverter.Int64BitsToDouble _3 + ) +# 428 "..\..\absil\ilpars.fsy" + : 'float64)); +# 1670 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 432 "..\..\absil\ilpars.fsy" + noMethodSpecScope [] + ) +# 432 "..\..\absil\ilpars.fsy" + : 'opt_actual_tyargs)); +# 1680 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'actual_tyargs)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 434 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _1 (fun res -> + noMethodSpecScope res) + ) +# 434 "..\..\absil\ilpars.fsy" + : 'opt_actual_tyargs)); +# 1692 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'actualTypSpecs)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 439 "..\..\absil\ilpars.fsy" + _2 + ) +# 439 "..\..\absil\ilpars.fsy" + : 'actual_tyargs)); +# 1703 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 443 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _1 (fun res -> + noMethodSpecScope [ res]) + ) +# 443 "..\..\absil\ilpars.fsy" + : 'actualTypSpecs)); +# 1715 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'actualTypSpecs)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 446 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _1 (fun x -> + resolveMethodSpecScopeThen _3 (fun y -> + noMethodSpecScope (x @ [ y]))) + ) +# 446 "..\..\absil\ilpars.fsy" + : 'actualTypSpecs)); +|] +# 1730 "ilpars.fs" +let tables () : Internal.Utilities.Text.Parsing.Tables<_> = + { reductions= _fsyacc_reductions (); + endOfInputTag = _fsyacc_endOfInputTag; + tagOfToken = tagOfToken; + dataOfToken = _fsyacc_dataOfToken; + actionTableElements = _fsyacc_actionTableElements; + actionTableRowOffsets = _fsyacc_actionTableRowOffsets; + stateToProdIdxsTableElements = _fsyacc_stateToProdIdxsTableElements; + stateToProdIdxsTableRowOffsets = _fsyacc_stateToProdIdxsTableRowOffsets; + reductionSymbolCounts = _fsyacc_reductionSymbolCounts; + immediateActions = _fsyacc_immediateActions; + gotos = _fsyacc_gotos; + sparseGotoTableRowOffsets = _fsyacc_sparseGotoTableRowOffsets; + tagOfErrorTerminal = _fsyacc_tagOfErrorTerminal; + parseError = (fun (ctxt:Internal.Utilities.Text.Parsing.ParseErrorContext<_>) -> + match parse_error_rich with + | Some f -> f ctxt + | None -> parse_error ctxt.Message); + numTerminals = 68; + productionToNonTerminalTable = _fsyacc_productionToNonTerminalTable } +let engine lexer lexbuf startState = (tables ()).Interpret(lexer, lexbuf, startState) +let ilInstrs lexer lexbuf : ILInstr array = + Microsoft.FSharp.Core.Operators.unbox ((tables ()).Interpret(lexer, lexbuf, 0)) +let ilType lexer lexbuf : ILType = + Microsoft.FSharp.Core.Operators.unbox ((tables ()).Interpret(lexer, lexbuf, 2)) diff --git a/src/fsharp/FSharp.AbsIL/ilpars.fsi b/src/fsharp/FSharp.AbsIL/ilpars.fsi new file mode 100644 index 0000000..98890fe --- /dev/null +++ b/src/fsharp/FSharp.AbsIL/ilpars.fsi @@ -0,0 +1,183 @@ +// Signature file for parser generated by fsyacc +module internal Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiParser +open Microsoft.FSharp.Compiler.AbstractIL +type token = + | VOID + | VARARG + | VALUETYPE + | VALUE + | UNSIGNED + | UNMANAGED + | UINT8 + | UINT64 + | UINT32 + | UINT16 + | UINT + | STRING + | STAR + | SLASH + | RPAREN + | RBRACK + | PLUS + | OBJECT + | NATIVE + | METHOD + | LPAREN + | LESS + | LBRACK + | INT8 + | INT64 + | INT32 + | INT16 + | INT + | INSTANCE + | GREATER + | FLOAT64 + | FLOAT32 + | FIELD + | EXPLICIT + | EOF + | ELIPSES + | DOT + | DEFAULT + | DCOLON + | COMMA + | CLASS + | CHAR + | BYTEARRAY + | BOOL + | BANG + | AMP + | VAL_SQSTRING of (string) + | VAL_QSTRING of (string) + | VAL_DOTTEDNAME of (string) + | VAL_ID of (string) + | VAL_HEXBYTE of (int) + | INSTR_VALUETYPE of (ValueTypeInstr) + | INSTR_INT_TYPE of (IntTypeInstr) + | INSTR_TYPE of (TypeInstr) + | INSTR_TOK of (TokenInstr) + | INSTR_STRING of (StringInstr) + | INSTR_NONE of (NoArgInstr) + | INSTR_METHOD of (MethodSpecInstr) + | INSTR_R of (DoubleInstr) + | INSTR_I8 of (Int64Instr) + | INSTR_I32_I32 of (Int32Int32Instr) + | INSTR_I of (Int32Instr) + | VAL_FLOAT64 of (double) + | VAL_INT32_ELIPSES of (int32) + | VAL_INT64 of (int64) +type tokenId = + | TOKEN_VOID + | TOKEN_VARARG + | TOKEN_VALUETYPE + | TOKEN_VALUE + | TOKEN_UNSIGNED + | TOKEN_UNMANAGED + | TOKEN_UINT8 + | TOKEN_UINT64 + | TOKEN_UINT32 + | TOKEN_UINT16 + | TOKEN_UINT + | TOKEN_STRING + | TOKEN_STAR + | TOKEN_SLASH + | TOKEN_RPAREN + | TOKEN_RBRACK + | TOKEN_PLUS + | TOKEN_OBJECT + | TOKEN_NATIVE + | TOKEN_METHOD + | TOKEN_LPAREN + | TOKEN_LESS + | TOKEN_LBRACK + | TOKEN_INT8 + | TOKEN_INT64 + | TOKEN_INT32 + | TOKEN_INT16 + | TOKEN_INT + | TOKEN_INSTANCE + | TOKEN_GREATER + | TOKEN_FLOAT64 + | TOKEN_FLOAT32 + | TOKEN_FIELD + | TOKEN_EXPLICIT + | TOKEN_EOF + | TOKEN_ELIPSES + | TOKEN_DOT + | TOKEN_DEFAULT + | TOKEN_DCOLON + | TOKEN_COMMA + | TOKEN_CLASS + | TOKEN_CHAR + | TOKEN_BYTEARRAY + | TOKEN_BOOL + | TOKEN_BANG + | TOKEN_AMP + | TOKEN_VAL_SQSTRING + | TOKEN_VAL_QSTRING + | TOKEN_VAL_DOTTEDNAME + | TOKEN_VAL_ID + | TOKEN_VAL_HEXBYTE + | TOKEN_INSTR_VALUETYPE + | TOKEN_INSTR_INT_TYPE + | TOKEN_INSTR_TYPE + | TOKEN_INSTR_TOK + | TOKEN_INSTR_STRING + | TOKEN_INSTR_NONE + | TOKEN_INSTR_METHOD + | TOKEN_INSTR_R + | TOKEN_INSTR_I8 + | TOKEN_INSTR_I32_I32 + | TOKEN_INSTR_I + | TOKEN_VAL_FLOAT64 + | TOKEN_VAL_INT32_ELIPSES + | TOKEN_VAL_INT64 + | TOKEN_end_of_input + | TOKEN_error +type nonTerminalId = + | NONTERM__startilInstrs + | NONTERM__startilType + | NONTERM_ilType + | NONTERM_ilInstrs + | NONTERM_compQstring + | NONTERM_methodName + | NONTERM_instrs2 + | NONTERM_methodSpecMaybeArrayMethod + | NONTERM_instr + | NONTERM_sigArgs0 + | NONTERM_sigArgs1 + | NONTERM_sigArgs1a + | NONTERM_sigArg + | NONTERM_opt_id + | NONTERM_name1 + | NONTERM_className + | NONTERM_slashedName + | NONTERM_typeNameInst + | NONTERM_typeName + | NONTERM_typSpec + | NONTERM_callConv + | NONTERM_callKind + | NONTERM_typ + | NONTERM_bounds1 + | NONTERM_bound + | NONTERM_id + | NONTERM_int32 + | NONTERM_int64 + | NONTERM_float64 + | NONTERM_opt_actual_tyargs + | NONTERM_actual_tyargs + | NONTERM_actualTypSpecs +/// This function maps integers indexes to symbolic token ids +val tagOfToken: token -> int + +/// This function maps integers indexes to symbolic token ids +val tokenTagToTokenId: int -> tokenId + +/// This function maps production indexes returned in syntax errors to strings representing the non terminal that would be produced by that production +val prodIdxToNonTerminal: int -> nonTerminalId + +/// This function gets the name of a token as a string +val token_to_string: token -> string +val ilInstrs : (Internal.Utilities.Text.Lexing.LexBuffer<'cty> -> token) -> Internal.Utilities.Text.Lexing.LexBuffer<'cty> -> (ILInstr array) +val ilType : (Internal.Utilities.Text.Lexing.LexBuffer<'cty> -> token) -> Internal.Utilities.Text.Lexing.LexBuffer<'cty> -> (ILType) diff --git a/src/fsharp/FSharp.AbsIL/ilpars.fsy b/src/fsharp/FSharp.AbsIL/ilpars.fsy new file mode 100644 index 0000000..71545cc --- /dev/null +++ b/src/fsharp/FSharp.AbsIL/ilpars.fsy @@ -0,0 +1,449 @@ +%{ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +#nowarn "1182" // the generated code often has unused variable "parseState" + +open Internal.Utilities +open Internal.Utilities.Text + +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiConstants +open Microsoft.FSharp.Compiler.AbstractIL.Diagnostics +open Microsoft.FSharp.Compiler.AbstractIL.Extensions.ILX.Types +open Microsoft.FSharp.Compiler.AbstractIL.IL +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library + + +let pfailwith s = + stderr.WriteLine ("*** error: "+s); + raise Parsing.RecoverableParseError + +/// vararg sentinels +type SigArg = SigArg of (string option * ILType) | Sentinel + +let decodeVarargs args = + let rec normals = function + | [] -> ([],None) + | Sentinel :: t -> ([],Some (ILList.ofList (varargs t))) + | SigArg (_,p)::t -> let (n,r) = normals t in (p::n, r) + and varargs = function + | [] -> [] + | SigArg (_,ty):: t -> let l = varargs t in ty::l + | Sentinel :: t -> pfailwith "two sentinels in vararg call" + normals args + + +type ResolvedAtMethodSpecScope<'T> = + ResolvedAtMethodSpecScope of (ILGenericParameterDefs -> 'T) + +let noMethodSpecScope x = ResolvedAtMethodSpecScope (fun _cgparams -> x) +let resolveMethodSpecScope (ResolvedAtMethodSpecScope f) x = f x +let resolveMethodSpecScopeThen (ResolvedAtMethodSpecScope f) g = + ResolvedAtMethodSpecScope (fun x -> resolveMethodSpecScope (g(f x)) x) + +let resolveFormalMethodSpecScope tspeco obj = + match tspeco with + None -> resolveMethodSpecScope obj mkILEmptyGenericParams + | Some (tspec:ILTypeSpec) -> resolveMethodSpecScope obj (mkILFormalTyparsRaw tspec.GenericArgs) + +let resolveCurrentMethodSpecScope obj = + resolveMethodSpecScope obj mkILEmptyGenericParams + + +let findMscorlibAssemblyRef() = + match (!parseILGlobals).mscorlibScopeRef with + | ILScopeRef.Assembly aref -> aref + | _ -> pfailwith "mscorlibScopeRef not set to valid assembly reference in parseILGlobals" + +let findAssemblyRef nm = + if nm = "mscorlib" then findMscorlibAssemblyRef() else + pfailwith ("Undefined assembly ref '" + nm + "'") + +%} + +/*----------------------------------------------------------------------- + * The YACC Grammar + *----------------------------------------------------------------------*/ + +%token VAL_INT64 /* 342534523534534 0x34FA434644554 */ +%token VAL_INT32_ELIPSES /* 342534523534534... */ +%token VAL_FLOAT64 /* -334234 24E-34 */ +%token INSTR_I +%token INSTR_I32_I32 +%token INSTR_I8 +%token INSTR_R +%token INSTR_METHOD +%token INSTR_NONE +%token INSTR_STRING +%token INSTR_TOK +%token INSTR_TYPE +%token INSTR_INT_TYPE +%token INSTR_VALUETYPE +%token VAL_HEXBYTE /* 05 1A FA */ +%token VAL_ID /* testing343 */ +%token VAL_DOTTEDNAME /* testing343.abd */ +%token VAL_QSTRING /* "Hello World\n" */ +%token VAL_SQSTRING /* 'Hello World\n' */ +%token AMP +%token BANG +%token BOOL +%token BYTEARRAY +%token CHAR +%token CLASS +%token COMMA +%token DCOLON +%token DEFAULT +%token DOT +%token ELIPSES +%token EOF +%token EXPLICIT +%token FIELD +%token FLOAT32 +%token FLOAT64 +%token GREATER +%token INSTANCE +%token INT +%token INT16 +%token INT32 +%token INT64 +%token INT8 +%token LBRACK +%token LESS +%token LPAREN +%token METHOD +%token NATIVE +%token OBJECT +%token PLUS +%token RBRACK +%token RPAREN +%token SLASH +%token STAR +%token STRING +%token UINT +%token UINT16 +%token UINT32 +%token UINT64 +%token UINT8 +%token UNMANAGED +%token UNSIGNED +%token VALUE +%token VALUETYPE +%token VARARG +%token VOID + +%type name1 +%type typ +%type ilInstrs +%type ilType +%start ilInstrs ilType + +/**************************************************************************/ +%% + +/* ENTRYPOINT */ +ilType: typ EOF + { resolveMethodSpecScope $1 [] } + +/* ENTRYPOINT */ +ilInstrs: instrs2 EOF + { Array.ofList $1 } + + +compQstring: + VAL_QSTRING { $1 } + | compQstring PLUS VAL_QSTRING { $1 + $3 } + +methodName: name1 { $1 } + +instrs2: + | instr instrs2 + { $1 :: $2 } + | { [] } + + + +methodSpecMaybeArrayMethod: + callConv typ typSpec DCOLON methodName opt_actual_tyargs LPAREN sigArgs0 RPAREN + { let callee_class_typ : ILType = resolveCurrentMethodSpecScope $3 + let gscope = (if isILArrTy callee_class_typ then None else Some callee_class_typ.TypeSpec) + let argtys_n_varargs = resolveFormalMethodSpecScope gscope $8 + let (argtys,varargs) = decodeVarargs argtys_n_varargs + let minst = resolveCurrentMethodSpecScope $6 + let callee_retty = resolveFormalMethodSpecScope gscope $2 + (callee_class_typ, $1, $5, argtys, callee_retty, minst), varargs } + +instr: + INSTR_NONE + { ($1 ()) } + | INSTR_I int32 + { ($1 $2) } + | INSTR_I32_I32 int32 int32 + { ($1 ($2,$3)) } + | INSTR_I8 int64 + { ($1 $2) } + | INSTR_R float64 + { ($1 (ILConst.R8 $2)) } + | INSTR_R int64 + { ($1 (ILConst.R8 (float $2))) } + | INSTR_METHOD methodSpecMaybeArrayMethod + { + let ((encl_typ, _cc, nm, _argtys, _retty, _minst) as data),varargs = $2 + if isILArrTy encl_typ then + let (shape,ty) = destILArrTy encl_typ + match nm with + | "Get" -> I_ldelem_any(shape,ty) + | "Set" -> I_stelem_any(shape,ty) + | "Address" -> I_ldelema(NormalAddress,false,shape,ty) + | ".ctor" -> I_newarr(shape,ty) + | _ -> failwith "bad method on array type" + else + $1 (mkILMethSpecInTy data, varargs) } + | INSTR_TYPE typSpec + { $1 (resolveCurrentMethodSpecScope $2) } + | INSTR_INT_TYPE int32 typSpec + { $1 ( $2,resolveCurrentMethodSpecScope $3) } + | INSTR_VALUETYPE typSpec + { $1 (resolveCurrentMethodSpecScope $2) } + | INSTR_TOK typSpec + { ($1 (ILToken.ILType (resolveCurrentMethodSpecScope $2))) } + +/*----------------------------------------------- + * Formal signatures of methods etc. + *---------------------------------------------*/ + +sigArgs0: + { noMethodSpecScope [] } + | sigArgs1 { $1 } + +sigArgs1: + sigArgs1a + { ResolvedAtMethodSpecScope (fun c -> List.map (fun obj -> resolveMethodSpecScope obj c) (List.rev $1)) } + +sigArgs1a: + sigArg + { [$1] } + | sigArgs1a COMMA sigArg + { $3:: $1 } + +sigArg: + | typ opt_id + { resolveMethodSpecScopeThen $1 (fun ty -> + noMethodSpecScope (SigArg($2, ty))) } + + + +opt_id: { None } | id { Some $1 } + + +/*----------------------------------------------- + * Type names + *---------------------------------------------*/ +name1: + | id + { $1 } + | VAL_DOTTEDNAME + { $1 } + | name1 DOT id + { $1 + "." + $3 } + +className: + LBRACK name1 RBRACK slashedName + { let (enc,nm) = $4 + let aref = findAssemblyRef $2 + ILScopeRef.Assembly aref, enc, nm } + | slashedName + { let enc, nm = $1 in (ILScopeRef.Local, enc, nm) } + +slashedName: + name1 + { ([],$1) } + | name1 SLASH slashedName + { let (enc,nm) = $3 in ($1::enc, nm) } + +typeNameInst: + className opt_actual_tyargs + { let (a,b,c) = $1 + resolveMethodSpecScopeThen $2 (fun inst -> + noMethodSpecScope ( (mkILTySpec ( (mkILNestedTyRef (a,b,c)), inst)))) } + + +typeName: + className + { let (a,b,c) = $1 + noMethodSpecScope ( (mkILTySpec ( (mkILNestedTyRef (a,b,c)), []))) } + + +typSpec: + typeName + { resolveMethodSpecScopeThen $1 (fun tref -> + noMethodSpecScope (mkILBoxedType tref)) } + | typ + { $1 } + | LPAREN typ RPAREN + { $2 } + + +callConv: + INSTANCE callKind + { Callconv (ILThisConvention.Instance,$2) } + | EXPLICIT callKind + { Callconv (ILThisConvention.InstanceExplicit,$2) } + | callKind + { Callconv (ILThisConvention.Static,$1) } + +callKind: + /* EMPTY */ + { ILArgConvention.Default } + | DEFAULT + { ILArgConvention.Default } + | VARARG + { ILArgConvention.VarArg } + +/*----------------------------------------------- + * The full algebra of types, typically producing results + * awaiting further info about how to fix up type + * variable numbers etc. + *---------------------------------------------*/ + +typ: STRING + { noMethodSpecScope (!parseILGlobals).typ_String } + | OBJECT + { noMethodSpecScope (!parseILGlobals).typ_Object } + | CLASS typeNameInst + { resolveMethodSpecScopeThen $2 (fun tspec -> + noMethodSpecScope (mkILBoxedType tspec)) } + | VALUE CLASS typeNameInst + { resolveMethodSpecScopeThen $3 (fun tspec -> + noMethodSpecScope (ILType.Value tspec)) } + | VALUETYPE typeNameInst + { resolveMethodSpecScopeThen $2 (fun tspec -> + noMethodSpecScope (ILType.Value tspec)) } + | typ LBRACK RBRACK + { resolveMethodSpecScopeThen $1 (fun ty -> noMethodSpecScope (mkILArr1DTy ty)) } + | typ LBRACK bounds1 RBRACK + { resolveMethodSpecScopeThen $1 (fun ty -> noMethodSpecScope (mkILArrTy (ty,ILArrayShape $3))) } + | typ AMP + { resolveMethodSpecScopeThen $1 (fun ty -> noMethodSpecScope (ILType.Byref ty)) } + | typ STAR + { resolveMethodSpecScopeThen $1 (fun ty -> noMethodSpecScope (ILType.Ptr ty)) } + | CHAR + { noMethodSpecScope (!parseILGlobals).typ_char } + | VOID + { noMethodSpecScope ILType.Void } + | BOOL + { noMethodSpecScope (!parseILGlobals).typ_bool } + | INT8 + { noMethodSpecScope (!parseILGlobals).typ_int8 } + | INT16 + { noMethodSpecScope (!parseILGlobals).typ_int16 } + | INT32 + { noMethodSpecScope (!parseILGlobals).typ_int32 } + | INT64 + { noMethodSpecScope (!parseILGlobals).typ_int64 } + | FLOAT32 + { noMethodSpecScope (!parseILGlobals).typ_float32 } + | FLOAT64 + { noMethodSpecScope (!parseILGlobals).typ_float64 } + | UNSIGNED INT8 + { noMethodSpecScope (!parseILGlobals).typ_uint8 } + | UNSIGNED INT16 + { noMethodSpecScope (!parseILGlobals).typ_uint16 } + | UNSIGNED INT32 + { noMethodSpecScope (!parseILGlobals).typ_uint32 } + | UNSIGNED INT64 + { noMethodSpecScope (!parseILGlobals).typ_uint64 } + | UINT8 + { noMethodSpecScope (!parseILGlobals).typ_uint8 } + | UINT16 + { noMethodSpecScope (!parseILGlobals).typ_uint16 } + | UINT32 + { noMethodSpecScope (!parseILGlobals).typ_uint32 } + | UINT64 + { noMethodSpecScope (!parseILGlobals).typ_uint64 } + | NATIVE INT + { noMethodSpecScope (!parseILGlobals).typ_IntPtr } + | NATIVE UNSIGNED INT + { noMethodSpecScope (!parseILGlobals).typ_UIntPtr } + | NATIVE UINT + { noMethodSpecScope (!parseILGlobals).typ_UIntPtr } + + | BANG int32 + { noMethodSpecScope (ILType.TypeVar (uint16 ( $2))) } + + +bounds1: + bound + { [$1] } + | bounds1 COMMA bound + { $1 @ [$3] } + +bound: + /*EMPTY*/ + { (None, None) } + | int32 + { (None, Some $1) } + | int32 ELIPSES int32 + { (Some $1, Some ($3 - $1 + 1)) } + | int32 ELIPSES + { (Some $1, None) } +/* We need to be able to parse all of */ +/* ldc.r8 0. */ +/* float64(-657435.) */ +/* and int32[0...,0...] */ +/* The problem is telling an integer-followed-by-ellipses from a floating-point-nubmer-followed-by-dots */ + | VAL_INT32_ELIPSES int32 + { (Some $1, Some ($2 - $1 + 1)) } + | VAL_INT32_ELIPSES + { (Some $1, None) } + +id: + VAL_ID + { $1 } + | VAL_SQSTRING + { $1 } + +int32: + VAL_INT64 + { int32 $1 } + +int64: + VAL_INT64 + { $1 } + +float64: + VAL_FLOAT64 + { $1 } + | FLOAT64 LPAREN int64 RPAREN + { System.BitConverter.Int64BitsToDouble $3 } + +opt_actual_tyargs: + /* EMPTY */ + { noMethodSpecScope [] } + | actual_tyargs + { resolveMethodSpecScopeThen $1 (fun res -> + noMethodSpecScope res) } + +actual_tyargs: + LESS actualTypSpecs GREATER + { $2 } + +actualTypSpecs: + typSpec + { resolveMethodSpecScopeThen $1 (fun res -> + noMethodSpecScope [ res]) } + | actualTypSpecs COMMA typSpec + { resolveMethodSpecScopeThen $1 (fun x -> + resolveMethodSpecScopeThen $3 (fun y -> + noMethodSpecScope (x @ [ y]))) } + diff --git a/src/fsharp/FSharp.AbsIL/lex.fs b/src/fsharp/FSharp.AbsIL/lex.fs new file mode 100644 index 0000000..8363e3c --- /dev/null +++ b/src/fsharp/FSharp.AbsIL/lex.fs @@ -0,0 +1,2986 @@ +# 1 "..\lex.fsl" + + +module internal Microsoft.FSharp.Compiler.Lexer + +//---------------------------------------------------------------------------- +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +//------------------------------------------------------------------------ +// The Lexer. Some of the complication arises from the fact it is +// reused by the Visual Studio mode to do partial lexing reporting +// whitespace etc. +//----------------------------------------------------------------------- + +open System +open System.Globalization +open System.Text +open Internal.Utilities + +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library +open Microsoft.FSharp.Compiler + +open Microsoft.FSharp.Compiler.Range +open Microsoft.FSharp.Compiler.Ast +open Microsoft.FSharp.Compiler.ErrorLogger +open Microsoft.FSharp.Compiler.Parser +open Microsoft.FSharp.Compiler.Lexhelp +open Microsoft.FSharp.Compiler.Lib +open Internal.Utilities.Text.Lexing + +let lexeme (lexbuf : UnicodeLexing.Lexbuf) = UnicodeLexing.Lexbuf.LexemeString lexbuf + +let trimBoth (s:string) n m = s.Substring(n, s.Length - (n+m)) +let lexemeTrimBoth lexbuf n m = trimBoth (lexeme lexbuf) n m +let lexemeTrimRight lexbuf n = lexemeTrimBoth lexbuf 0 n +let lexemeTrimLeft lexbuf n = lexemeTrimBoth lexbuf n 0 + +let fail args (lexbuf:UnicodeLexing.Lexbuf) msg dflt = + let m = lexbuf.LexemeRange + args.errorLogger.ErrorR(Error(msg,m)); + dflt + +//-------------------------- +// Integer parsing + +// Parsing integers is common in bootstrap runs (parsing +// the parser tables, no doubt). So this is an optimized +// version of the F# core library parsing code with the call to "Trim" +// removed, which appears in profiling runs as a small but significant cost. + +let getSign32 (s:string) (p:byref) l = + if (l >= p + 1 && s.[p] = '-') + then p <- p + 1; -1 + else 1 + +let isOXB c = +#if FX_NO_TO_LOWER_INVARIANT + let c = Char.ToLower c +#else + let c = Char.ToLowerInvariant c +#endif + c = 'x' || c = 'o' || c = 'b' + +let is0OXB (s:string) p l = + l >= p + 2 && s.[p] = '0' && isOXB s.[p+1] +let get0OXB (s:string) (p:byref) l = + if is0OXB s p l +#if FX_NO_TO_LOWER_INVARIANT + then let r = Char.ToLower s.[p+1] in p <- p + 2; r +#else + then let r = Char.ToLowerInvariant s.[p+1] in p <- p + 2; r +#endif + else 'd' + +let formatError() = raise (new System.FormatException(SR.GetString("bad format string"))) + +let parseBinaryUInt64 (s:string) p l = + let rec parse n acc = if n < l then parse (n+1) (acc * 2UL + (match s.[n] with '0' -> 0UL | '1' -> 1UL | _ -> formatError())) else acc + parse p 0UL + +let parseOctalUInt64 (s:string) p l = + let rec parse n acc = if n < l then parse (n+1) (acc * 8UL + (let c = s.[n] in if c >= '0' && c <= '7' then Convert.ToUInt64 c - Convert.ToUInt64 '0' else formatError())) else acc + parse p 0UL + +let parseInt32 (s:string) = + let l = s.Length + let mutable p = 0 + let sign = getSign32 s &p l + let specifier = get0OXB s &p l + match Char.ToLower(specifier,CultureInfo.InvariantCulture) with + | 'x' -> sign * (int32 (Convert.ToUInt32(UInt64.Parse(s.Substring(p), NumberStyles.AllowHexSpecifier,CultureInfo.InvariantCulture)))) + | 'b' -> sign * (int32 (Convert.ToUInt32(parseBinaryUInt64 s p l))) + | 'o' -> sign * (int32 (Convert.ToUInt32(parseOctalUInt64 s p l))) + | _ -> Int32.Parse(s, NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture) + +let lexemeTrimRightToInt32 args lexbuf n = + try parseInt32 (lexemeTrimRight lexbuf n) + with _ -> fail args lexbuf (FSComp.SR.lexOutsideIntegerRange()) 0 + +//-------------------------- +// Checks + +let checkExprOp (lexbuf:UnicodeLexing.Lexbuf) = + if String.contains (lexeme lexbuf) ':' then + deprecatedWithError (FSComp.SR.lexCharNotAllowedInOperatorNames(":")) lexbuf.LexemeRange; + if String.contains (lexeme lexbuf) '$' then + deprecatedWithError (FSComp.SR.lexCharNotAllowedInOperatorNames("$")) lexbuf.LexemeRange + +let unexpectedChar lexbuf = + LEX_FAILURE (FSComp.SR.lexUnexpectedChar(lexeme lexbuf)) + +let startString args (lexbuf: UnicodeLexing.Lexbuf) = + let buf = ByteBuffer.Create 100 + let m = lexbuf.LexemeRange + let startp = lexbuf.StartPos + let fin = (fun _m2 b s -> + // Adjust the start-of-token mark back to the true start of the token + lexbuf.StartPos <- startp; + if b then + if Lexhelp.stringBufferIsBytes buf then + BYTEARRAY (Lexhelp.stringBufferAsBytes buf) + else ( + fail args lexbuf (FSComp.SR.lexByteArrayCannotEncode()) (); + BYTEARRAY (Lexhelp.stringBufferAsBytes buf) + ) + else + STRING (System.Text.Encoding.Unicode.GetString(s,0,s.Length))) + buf,fin,m + +// Utility functions for processing XML documentation + +let trySaveXmlDoc lexbuf (buff:option) = + match buff with + | None -> () + | Some sb -> LexbufLocalXmlDocStore.SaveXmlDocLine (lexbuf, sb.ToString(), posOfLexPosition lexbuf.StartPos) + +let tryAppendXmlDoc (buff:option) (s:string) = + match buff with + | None -> () + | Some sb -> ignore(sb.Append s) + +// Utilities for parsing #if/#else/#endif + +let shouldStartLine args lexbuf (m:range) err tok = + if (m.StartColumn <> 0) then fail args lexbuf err tok + else tok + +let extractIdentFromHashIf (lexed:string) = + // Skip the '#if' token, then trim whitespace, then find the end of the identifier + let lexed = lexed.Trim() + let trimIf = lexed.Substring(3).Trim() + let identEnd = trimIf.IndexOfAny([| ' '; '\t'; '/' |]) + let identEnd = (if identEnd = -1 then trimIf.Length else identEnd) + trimIf.Substring(0, identEnd) + +# 166 "lex.fs" +let trans : uint16[] array = + [| + (* State 0 *) + [| 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 2us; 5us; 5us; 3us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 1us; 5us; 5us; 5us; 5us; 5us; 4us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 6us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 7us; |]; + (* State 1 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 2 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 3 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 30us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 4 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 10us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 5 *) + [| 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; |]; + (* State 6 *) + [| 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 9us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; |]; + (* State 7 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 8 *) + [| 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; |]; + (* State 9 *) + [| 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; |]; + (* State 10 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 11us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 11 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 12us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 12 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 13us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 13 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 14us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 14 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 15us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 15 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 16 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 17us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 18us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 17 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 25us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 18 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 19us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 19 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 20us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 20 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 21us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 21 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 22us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 22 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 23us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 23 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 24us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 24 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 25 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 26us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 26 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 27us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 27 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 28us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 28 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 29us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 29 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 30 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 31 *) + [| 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 36us; 37us; 41us; 41us; 38us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 36us; 41us; 32us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 35us; 34us; 34us; 34us; 34us; 34us; 34us; 34us; 34us; 34us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 41us; 41us; 41us; 41us; 33us; 41us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 41us; 41us; 41us; 41us; 41us; 33us; 33us; 33us; 33us; 33us; 41us; 41us; 41us; 34us; 33us; 41us; 41us; 41us; 41us; 41us; 41us; 40us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 39us; |]; + (* State 32 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 55us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 33 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 54us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 65535us; 65535us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 34 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 35 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 47us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 46us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 45us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 47us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 46us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 45us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 36 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 43us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 43us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 37 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 38 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 42us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 39 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 40 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 41 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 42 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 43 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 43us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 43us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 44 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 45 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 52us; 52us; 52us; 52us; 52us; 52us; 52us; 52us; 52us; 52us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 52us; 52us; 52us; 52us; 52us; 52us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 52us; 52us; 52us; 52us; 52us; 52us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 46 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 50us; 50us; 50us; 50us; 50us; 50us; 50us; 50us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 47 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 48us; 48us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 48 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 49us; 49us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 49 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 49us; 49us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 50 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 51us; 51us; 51us; 51us; 51us; 51us; 51us; 51us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 51 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 51us; 51us; 51us; 51us; 51us; 51us; 51us; 51us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 52 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 53us; 53us; 53us; 53us; 53us; 53us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 53us; 53us; 53us; 53us; 53us; 53us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 53 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 53us; 53us; 53us; 53us; 53us; 53us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 53us; 53us; 53us; 53us; 53us; 53us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 54 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 54us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 65535us; 65535us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 55 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 56us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 56 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 57 *) + [| 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 62us; 63us; 67us; 67us; 64us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 62us; 67us; 58us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 61us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 67us; 67us; 67us; 67us; 59us; 67us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 67us; 67us; 67us; 67us; 67us; 59us; 59us; 59us; 59us; 59us; 67us; 67us; 67us; 60us; 59us; 67us; 67us; 67us; 67us; 67us; 67us; 66us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 65us; |]; + (* State 58 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 81us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 59 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 80us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 65535us; 65535us; 65535us; 65535us; 80us; 65535us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 65535us; 65535us; 65535us; 65535us; 65535us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 65535us; 80us; 80us; 65535us; 65535us; 65535us; 65535us; 65535us; 80us; 65535us; 65535us; 80us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 60 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 70us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 61 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 73us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 72us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 71us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 73us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 72us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 71us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 70us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 62 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 69us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 69us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 63 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 64 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 68us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 65 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 66 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 67us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 67 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 68 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 69 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 69us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 69us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 70 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 70us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 71 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 78us; 78us; 78us; 78us; 78us; 78us; 78us; 78us; 78us; 78us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 78us; 78us; 78us; 78us; 78us; 78us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 78us; 78us; 78us; 78us; 78us; 78us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 72 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 76us; 76us; 76us; 76us; 76us; 76us; 76us; 76us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 73 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 74us; 74us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 74 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 75us; 75us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 75 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 75us; 75us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 76 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 77us; 77us; 77us; 77us; 77us; 77us; 77us; 77us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 77 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 77us; 77us; 77us; 77us; 77us; 77us; 77us; 77us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 78 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 79us; 79us; 79us; 79us; 79us; 79us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 79us; 79us; 79us; 79us; 79us; 79us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 79 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 79us; 79us; 79us; 79us; 79us; 79us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 79us; 79us; 79us; 79us; 79us; 79us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 80 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 80us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 65535us; 65535us; 65535us; 65535us; 80us; 65535us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 65535us; 65535us; 65535us; 65535us; 65535us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 65535us; 80us; 80us; 65535us; 65535us; 65535us; 65535us; 65535us; 80us; 65535us; 65535us; 80us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 81 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 82 *) + [| 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 87us; 89us; 93us; 93us; 90us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 87us; 93us; 88us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 86us; 85us; 85us; 85us; 85us; 85us; 85us; 85us; 85us; 85us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 93us; 83us; 93us; 93us; 84us; 93us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 93us; 93us; 93us; 93us; 93us; 84us; 84us; 84us; 84us; 84us; 93us; 93us; 93us; 85us; 84us; 93us; 93us; 93us; 93us; 93us; 93us; 92us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 91us; |]; + (* State 83 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 107us; 65535us; 65535us; 108us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 65535us; 65535us; 65535us; 65535us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 110us; 110us; 110us; 110us; 110us; 110us; 110us; 110us; 110us; 110us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 113us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 65535us; 65535us; 65535us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 65535us; 65535us; 65535us; 109us; 65535us; 109us; 112us; 109us; 65535us; 111us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 110us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 84 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 106us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 65535us; 65535us; 65535us; 65535us; 106us; 65535us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 65535us; 65535us; 65535us; 65535us; 65535us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 65535us; 106us; 106us; 65535us; 65535us; 65535us; 65535us; 65535us; 106us; 65535us; 65535us; 106us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 85 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 86 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 99us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 98us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 97us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 99us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 98us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 97us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 87 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 95us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 95us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 88 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 89 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 90 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 94us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 91 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 92 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 93us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 93 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 94 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 95 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 95us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 95us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 96 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 97 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 104us; 104us; 104us; 104us; 104us; 104us; 104us; 104us; 104us; 104us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 104us; 104us; 104us; 104us; 104us; 104us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 104us; 104us; 104us; 104us; 104us; 104us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 98 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 99 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 100us; 100us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 100 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 101us; 101us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 101 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 101us; 101us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 102 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 103us; 103us; 103us; 103us; 103us; 103us; 103us; 103us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 103 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 103us; 103us; 103us; 103us; 103us; 103us; 103us; 103us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 104 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 105us; 105us; 105us; 105us; 105us; 105us; 105us; 105us; 105us; 105us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 105us; 105us; 105us; 105us; 105us; 105us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 105us; 105us; 105us; 105us; 105us; 105us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 105 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 105us; 105us; 105us; 105us; 105us; 105us; 105us; 105us; 105us; 105us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 105us; 105us; 105us; 105us; 105us; 105us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 105us; 105us; 105us; 105us; 105us; 105us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 106 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 106us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 65535us; 65535us; 65535us; 65535us; 106us; 65535us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 65535us; 65535us; 65535us; 65535us; 65535us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 65535us; 106us; 106us; 65535us; 65535us; 65535us; 65535us; 65535us; 106us; 65535us; 65535us; 106us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 107 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 126us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 126us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 108 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 107us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 109 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 110 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 125us; 125us; 125us; 125us; 125us; 125us; 125us; 125us; 125us; 125us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 125us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 111 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 124us; 124us; 124us; 124us; 124us; 124us; 124us; 124us; 124us; 124us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 124us; 124us; 124us; 124us; 124us; 124us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 124us; 124us; 124us; 124us; 124us; 124us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 112 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 121us; 121us; 121us; 121us; 121us; 121us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 121us; 121us; 121us; 121us; 121us; 121us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 113 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 114us; 114us; 114us; 114us; 114us; 114us; 114us; 114us; 114us; 114us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 114us; 114us; 114us; 114us; 114us; 114us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 114us; 114us; 114us; 114us; 114us; 114us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 114 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 115us; 115us; 115us; 115us; 115us; 115us; 115us; 115us; 115us; 115us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 115us; 115us; 115us; 115us; 115us; 115us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 115us; 115us; 115us; 115us; 115us; 115us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 115 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 116us; 116us; 116us; 116us; 116us; 116us; 116us; 116us; 116us; 116us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 116us; 116us; 116us; 116us; 116us; 116us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 116us; 116us; 116us; 116us; 116us; 116us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 116 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 117us; 117us; 117us; 117us; 117us; 117us; 117us; 117us; 117us; 117us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 117us; 117us; 117us; 117us; 117us; 117us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 117us; 117us; 117us; 117us; 117us; 117us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 117 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 118us; 118us; 118us; 118us; 118us; 118us; 118us; 118us; 118us; 118us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 118us; 118us; 118us; 118us; 118us; 118us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 118us; 118us; 118us; 118us; 118us; 118us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 118 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 119us; 119us; 119us; 119us; 119us; 119us; 119us; 119us; 119us; 119us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 119us; 119us; 119us; 119us; 119us; 119us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 119us; 119us; 119us; 119us; 119us; 119us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 119 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 120us; 120us; 120us; 120us; 120us; 120us; 120us; 120us; 120us; 120us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 120us; 120us; 120us; 120us; 120us; 120us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 120us; 120us; 120us; 120us; 120us; 120us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 120 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 109us; 109us; 109us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 109us; 109us; 109us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 121 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 122us; 122us; 122us; 122us; 122us; 122us; 122us; 122us; 122us; 122us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 122us; 122us; 122us; 122us; 122us; 122us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 122us; 122us; 122us; 122us; 122us; 122us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 122 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 123us; 123us; 123us; 123us; 123us; 123us; 123us; 123us; 123us; 123us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 123us; 123us; 123us; 123us; 123us; 123us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 123us; 123us; 123us; 123us; 123us; 123us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 123 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 109us; 109us; 109us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 109us; 109us; 109us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 124 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 109us; 109us; 109us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 109us; 109us; 109us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 125 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 126 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 126us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 126us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 127 *) + [| 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 135us; 132us; 136us; 136us; 133us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 135us; 136us; 129us; 136us; 136us; 136us; 136us; 128us; 131us; 139us; 134us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 130us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 137us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 138us; |]; + (* State 128 *) + [| 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 65535us; 65535us; 65535us; 150us; 150us; 65535us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 151us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 65535us; |]; + (* State 129 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 148us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 130 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 147us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 131 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 145us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 132 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 133 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 144us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 134 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 143us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 135 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 142us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 142us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 136 *) + [| 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 65535us; 140us; 140us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 140us; 65535us; 140us; 140us; 140us; 140us; 65535us; 65535us; 65535us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; |]; + (* State 137 *) + [| 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 65535us; 140us; 140us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 140us; 65535us; 140us; 140us; 140us; 140us; 65535us; 65535us; 65535us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 141us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; |]; + (* State 138 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 139 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 140 *) + [| 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 65535us; 140us; 140us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 140us; 65535us; 140us; 140us; 140us; 140us; 65535us; 65535us; 65535us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; |]; + (* State 141 *) + [| 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 65535us; 140us; 140us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 140us; 65535us; 140us; 140us; 140us; 140us; 65535us; 65535us; 65535us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; |]; + (* State 142 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 142us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 142us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 143 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 144 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 145 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 146us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 146 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 147 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 148 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 149us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 149 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 150 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 152us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 151 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 150us; 65535us; 65535us; 65535us; 65535us; 150us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 150us; 65535us; 65535us; 65535us; 65535us; 150us; 150us; 65535us; 65535us; 65535us; 150us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 150us; 65535us; 65535us; 65535us; 150us; 65535us; 150us; 65535us; 150us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 152 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 153 *) + [| 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 158us; 154us; 157us; 157us; 155us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 160us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 159us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 156us; |]; + (* State 154 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 155 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 165us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 156 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 157 *) + [| 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; 162us; 162us; 65535us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; |]; + (* State 158 *) + [| 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 164us; 65535us; 162us; 162us; 65535us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 161us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; |]; + (* State 159 *) + [| 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; 162us; 162us; 65535us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 163us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; |]; + (* State 160 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 161us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 161us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 161 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 161us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 161us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 162 *) + [| 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; 162us; 162us; 65535us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; |]; + (* State 163 *) + [| 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; 162us; 162us; 65535us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; |]; + (* State 164 *) + [| 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 164us; 65535us; 162us; 162us; 65535us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 161us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; |]; + (* State 165 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 166 *) + [| 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 173us; 168us; 176us; 176us; 169us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 173us; 176us; 167us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 172us; 171us; 171us; 171us; 171us; 171us; 171us; 171us; 171us; 171us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 176us; 176us; 176us; 176us; 170us; 176us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 176us; 176us; 176us; 176us; 176us; 170us; 170us; 170us; 170us; 170us; 176us; 176us; 176us; 171us; 170us; 176us; 176us; 176us; 176us; 176us; 176us; 175us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 174us; |]; + (* State 167 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 190us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 168 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 169 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 189us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 170 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 188us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 65535us; 65535us; 65535us; 65535us; 188us; 65535us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 65535us; 65535us; 65535us; 65535us; 65535us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 65535us; 188us; 188us; 65535us; 65535us; 65535us; 65535us; 65535us; 188us; 65535us; 65535us; 188us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 171 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 178us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 172 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 181us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 180us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 179us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 181us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 180us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 179us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 178us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 173 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 177us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 177us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 174 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 175 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 176us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 176 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 177 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 177us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 177us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 178 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 178us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 179 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 186us; 186us; 186us; 186us; 186us; 186us; 186us; 186us; 186us; 186us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 186us; 186us; 186us; 186us; 186us; 186us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 186us; 186us; 186us; 186us; 186us; 186us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 180 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 184us; 184us; 184us; 184us; 184us; 184us; 184us; 184us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 181 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 182us; 182us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 182 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 183us; 183us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 183 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 183us; 183us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 184 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 185us; 185us; 185us; 185us; 185us; 185us; 185us; 185us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 185 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 185us; 185us; 185us; 185us; 185us; 185us; 185us; 185us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 186 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 187us; 187us; 187us; 187us; 187us; 187us; 187us; 187us; 187us; 187us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 187us; 187us; 187us; 187us; 187us; 187us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 187us; 187us; 187us; 187us; 187us; 187us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 187 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 187us; 187us; 187us; 187us; 187us; 187us; 187us; 187us; 187us; 187us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 187us; 187us; 187us; 187us; 187us; 187us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 187us; 187us; 187us; 187us; 187us; 187us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 188 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 188us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 65535us; 65535us; 65535us; 65535us; 188us; 65535us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 65535us; 65535us; 65535us; 65535us; 65535us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 65535us; 188us; 188us; 65535us; 65535us; 65535us; 65535us; 65535us; 188us; 65535us; 65535us; 188us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 189 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 190 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 191us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 191 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 192 *) + [| 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 199us; 194us; 202us; 202us; 195us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 199us; 202us; 193us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 198us; 197us; 197us; 197us; 197us; 197us; 197us; 197us; 197us; 197us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 202us; 202us; 202us; 202us; 196us; 202us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 202us; 202us; 202us; 202us; 202us; 196us; 196us; 196us; 196us; 196us; 202us; 202us; 202us; 197us; 196us; 202us; 202us; 202us; 202us; 202us; 202us; 201us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 200us; |]; + (* State 193 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 216us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 217us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 194 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 195 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 215us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 196 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 214us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 65535us; 65535us; 65535us; 65535us; 214us; 65535us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 65535us; 65535us; 65535us; 65535us; 65535us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 65535us; 214us; 214us; 65535us; 65535us; 65535us; 65535us; 65535us; 214us; 65535us; 65535us; 214us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 197 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 204us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 198 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 207us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 206us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 205us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 207us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 206us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 205us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 204us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 199 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 203us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 203us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 200 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 201 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 202us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 202 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 203 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 203us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 203us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 204 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 204us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 205 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 212us; 212us; 212us; 212us; 212us; 212us; 212us; 212us; 212us; 212us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 212us; 212us; 212us; 212us; 212us; 212us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 212us; 212us; 212us; 212us; 212us; 212us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 206 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 210us; 210us; 210us; 210us; 210us; 210us; 210us; 210us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 207 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 208us; 208us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 208 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 209us; 209us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 209 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 209us; 209us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 210 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 211us; 211us; 211us; 211us; 211us; 211us; 211us; 211us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 211 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 211us; 211us; 211us; 211us; 211us; 211us; 211us; 211us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 212 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 213us; 213us; 213us; 213us; 213us; 213us; 213us; 213us; 213us; 213us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 213us; 213us; 213us; 213us; 213us; 213us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 213us; 213us; 213us; 213us; 213us; 213us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 213 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 213us; 213us; 213us; 213us; 213us; 213us; 213us; 213us; 213us; 213us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 213us; 213us; 213us; 213us; 213us; 213us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 213us; 213us; 213us; 213us; 213us; 213us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 214 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 214us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 65535us; 65535us; 65535us; 65535us; 214us; 65535us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 65535us; 65535us; 65535us; 65535us; 65535us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 65535us; 214us; 214us; 65535us; 65535us; 65535us; 65535us; 65535us; 214us; 65535us; 65535us; 214us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 215 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 216 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 217 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 218 *) + [| 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 226us; 221us; 229us; 229us; 222us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 226us; 229us; 220us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 225us; 224us; 224us; 224us; 224us; 224us; 224us; 224us; 224us; 224us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 229us; 219us; 229us; 229us; 223us; 229us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 229us; 229us; 229us; 229us; 229us; 223us; 223us; 223us; 223us; 223us; 229us; 229us; 229us; 224us; 223us; 229us; 229us; 229us; 229us; 229us; 229us; 228us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 227us; |]; + (* State 219 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 244us; 65535us; 65535us; 245us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 246us; 65535us; 65535us; 65535us; 65535us; 246us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 247us; 247us; 247us; 247us; 247us; 247us; 247us; 247us; 247us; 247us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 250us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 246us; 65535us; 65535us; 65535us; 65535us; 246us; 246us; 65535us; 65535us; 65535us; 246us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 246us; 65535us; 65535us; 65535us; 246us; 65535us; 246us; 249us; 246us; 65535us; 248us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 247us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 220 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 243us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 221 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 222 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 242us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 223 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 241us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 65535us; 65535us; 65535us; 65535us; 241us; 65535us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 65535us; 65535us; 65535us; 65535us; 65535us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 65535us; 241us; 241us; 65535us; 65535us; 65535us; 65535us; 65535us; 241us; 65535us; 65535us; 241us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 224 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 231us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 225 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 234us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 233us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 232us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 234us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 233us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 232us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 231us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 226 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 230us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 230us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 227 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 228 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 229us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 229 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 230 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 230us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 230us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 231 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 231us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 232 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 239us; 239us; 239us; 239us; 239us; 239us; 239us; 239us; 239us; 239us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 239us; 239us; 239us; 239us; 239us; 239us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 239us; 239us; 239us; 239us; 239us; 239us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 233 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 237us; 237us; 237us; 237us; 237us; 237us; 237us; 237us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 234 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 235us; 235us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 235 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 236us; 236us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 236 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 236us; 236us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 237 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 238us; 238us; 238us; 238us; 238us; 238us; 238us; 238us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 238 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 238us; 238us; 238us; 238us; 238us; 238us; 238us; 238us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 239 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 240us; 240us; 240us; 240us; 240us; 240us; 240us; 240us; 240us; 240us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 240us; 240us; 240us; 240us; 240us; 240us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 240us; 240us; 240us; 240us; 240us; 240us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 240 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 240us; 240us; 240us; 240us; 240us; 240us; 240us; 240us; 240us; 240us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 240us; 240us; 240us; 240us; 240us; 240us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 240us; 240us; 240us; 240us; 240us; 240us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 241 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 241us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 65535us; 65535us; 65535us; 65535us; 241us; 65535us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 65535us; 65535us; 65535us; 65535us; 65535us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 65535us; 241us; 241us; 65535us; 65535us; 65535us; 65535us; 65535us; 241us; 65535us; 65535us; 241us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 242 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 243 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 244 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 267us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 267us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 245 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 244us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 246 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 247 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 265us; 265us; 265us; 265us; 265us; 265us; 265us; 265us; 265us; 265us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 265us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 248 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 263us; 263us; 263us; 263us; 263us; 263us; 263us; 263us; 263us; 263us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 263us; 263us; 263us; 263us; 263us; 263us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 263us; 263us; 263us; 263us; 263us; 263us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 249 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 259us; 259us; 259us; 259us; 259us; 259us; 259us; 259us; 259us; 259us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 259us; 259us; 259us; 259us; 259us; 259us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 259us; 259us; 259us; 259us; 259us; 259us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 250 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 251us; 251us; 251us; 251us; 251us; 251us; 251us; 251us; 251us; 251us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 251us; 251us; 251us; 251us; 251us; 251us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 251us; 251us; 251us; 251us; 251us; 251us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 251 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 252us; 252us; 252us; 252us; 252us; 252us; 252us; 252us; 252us; 252us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 252us; 252us; 252us; 252us; 252us; 252us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 252us; 252us; 252us; 252us; 252us; 252us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 252 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 253us; 253us; 253us; 253us; 253us; 253us; 253us; 253us; 253us; 253us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 253us; 253us; 253us; 253us; 253us; 253us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 253us; 253us; 253us; 253us; 253us; 253us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 253 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 254us; 254us; 254us; 254us; 254us; 254us; 254us; 254us; 254us; 254us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 254us; 254us; 254us; 254us; 254us; 254us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 254us; 254us; 254us; 254us; 254us; 254us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 254 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 255us; 255us; 255us; 255us; 255us; 255us; 255us; 255us; 255us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 255us; 255us; 255us; 255us; 255us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 255us; 255us; 255us; 255us; 255us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 255 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 256us; 256us; 256us; 256us; 256us; 256us; 256us; 256us; 256us; 256us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 256us; 256us; 256us; 256us; 256us; 256us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 256us; 256us; 256us; 256us; 256us; 256us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 256 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 257us; 257us; 257us; 257us; 257us; 257us; 257us; 257us; 257us; 257us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 257us; 257us; 257us; 257us; 257us; 257us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 257us; 257us; 257us; 257us; 257us; 257us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 257 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 258us; 258us; 258us; 258us; 258us; 258us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 258us; 258us; 258us; 258us; 258us; 258us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 258 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 259 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 260us; 260us; 260us; 260us; 260us; 260us; 260us; 260us; 260us; 260us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 260us; 260us; 260us; 260us; 260us; 260us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 260us; 260us; 260us; 260us; 260us; 260us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 260 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 261us; 261us; 261us; 261us; 261us; 261us; 261us; 261us; 261us; 261us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 261us; 261us; 261us; 261us; 261us; 261us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 261us; 261us; 261us; 261us; 261us; 261us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 261 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 262us; 262us; 262us; 262us; 262us; 262us; 262us; 262us; 262us; 262us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 262us; 262us; 262us; 262us; 262us; 262us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 262us; 262us; 262us; 262us; 262us; 262us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 262 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 263 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 264us; 264us; 264us; 264us; 264us; 264us; 264us; 264us; 264us; 264us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 264us; 264us; 264us; 264us; 264us; 264us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 264us; 264us; 264us; 264us; 264us; 264us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 264 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 265 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 266us; 266us; 266us; 266us; 266us; 266us; 266us; 266us; 266us; 266us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 266us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 266 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 267 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 267us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 267us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 268 *) + [| 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 269us; 272us; 272us; 270us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 271us; |]; + (* State 269 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 270 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 274us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 271 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 272 *) + [| 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 65535us; 273us; 273us; 65535us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 65535us; |]; + (* State 273 *) + [| 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 65535us; 273us; 273us; 65535us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 65535us; |]; + (* State 274 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 275 *) + [| 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 278us; 279us; 281us; 281us; 280us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 277us; 281us; 281us; 276us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 282us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 283us; |]; + (* State 276 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 317us; 284us; 284us; 284us; 316us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 277 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 287us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 287us; 65535us; 65535us; 289us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 278 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 288us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 287us; 284us; 284us; 286us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 279 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 280 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 285us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 281 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 282 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 283 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 284 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 285 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 286 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 317us; 284us; 284us; 284us; 316us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 287 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 287us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 287us; 65535us; 65535us; 289us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 288 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 288us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 287us; 284us; 284us; 286us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 289 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 291us; 65535us; 65535us; 65535us; 290us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 290 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 307us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 291 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 292us; 65535us; 293us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 292 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 301us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 293 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 294us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 294 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 295us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 295 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 296us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 296 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 298us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 298us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 297us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 297 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 299us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 298 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 298us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 298us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 297us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 299 *) + [| 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 65535us; 300us; 300us; 65535us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 65535us; |]; + (* State 300 *) + [| 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 65535us; 300us; 300us; 65535us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 65535us; |]; + (* State 301 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 302us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 302 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 304us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 304us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 303us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 303 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 305us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 304 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 304us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 304us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 303us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 305 *) + [| 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 65535us; 306us; 306us; 65535us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 65535us; |]; + (* State 306 *) + [| 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 65535us; 306us; 306us; 65535us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 65535us; |]; + (* State 307 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 308us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 308us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 308 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 310us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 310us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 65535us; 65535us; 65535us; 65535us; 309us; 65535us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 65535us; 65535us; 65535us; 65535us; 65535us; 309us; 309us; 309us; 309us; 309us; 65535us; 65535us; 65535us; 65535us; 309us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 309 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 312us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 312us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 313us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 311us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 65535us; 65535us; 65535us; 65535us; 313us; 65535us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 65535us; 65535us; 65535us; 65535us; 65535us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 65535us; 313us; 313us; 65535us; 65535us; 65535us; 65535us; 65535us; 313us; 65535us; 65535us; 313us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 310 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 310us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 310us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 65535us; 65535us; 65535us; 65535us; 309us; 65535us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 65535us; 65535us; 65535us; 65535us; 65535us; 309us; 309us; 309us; 309us; 309us; 65535us; 65535us; 65535us; 65535us; 309us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 311 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 314us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 312 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 312us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 312us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 311us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 313 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 312us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 312us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 313us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 311us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 65535us; 65535us; 65535us; 65535us; 313us; 65535us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 65535us; 65535us; 65535us; 65535us; 65535us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 65535us; 313us; 313us; 65535us; 65535us; 65535us; 65535us; 65535us; 313us; 65535us; 65535us; 313us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 314 *) + [| 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 65535us; 315us; 315us; 65535us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 65535us; |]; + (* State 315 *) + [| 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 65535us; 315us; 315us; 65535us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 65535us; |]; + (* State 316 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 333us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 317 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 318us; 284us; 319us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 318 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 327us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 319 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 320us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 320 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 321us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 321 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 322us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 322 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 324us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 298us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 323us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 323 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 325us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 324 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 324us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 298us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 323us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 325 *) + [| 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 65535us; 326us; 326us; 65535us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 300us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 65535us; |]; + (* State 326 *) + [| 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 65535us; 326us; 326us; 65535us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 300us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 65535us; |]; + (* State 327 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 328us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 328 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 330us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 304us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 329us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 329 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 331us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 330 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 330us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 304us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 329us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 331 *) + [| 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 65535us; 332us; 332us; 65535us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 306us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 65535us; |]; + (* State 332 *) + [| 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 65535us; 332us; 332us; 65535us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 306us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 65535us; |]; + (* State 333 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 334us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 308us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 334 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 336us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 310us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 284us; 284us; 284us; 284us; 335us; 284us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 284us; 284us; 284us; 284us; 284us; 335us; 335us; 335us; 335us; 335us; 284us; 284us; 284us; 284us; 335us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 335 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 338us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 312us; 284us; 284us; 284us; 284us; 284us; 284us; 339us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 337us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 284us; 284us; 284us; 284us; 339us; 284us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 284us; 284us; 284us; 284us; 284us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 284us; 339us; 339us; 284us; 284us; 284us; 284us; 284us; 339us; 284us; 284us; 339us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 336 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 336us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 310us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 284us; 284us; 284us; 284us; 335us; 284us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 284us; 284us; 284us; 284us; 284us; 335us; 335us; 335us; 335us; 335us; 284us; 284us; 284us; 284us; 335us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 337 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 340us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 338 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 338us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 312us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 337us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 339 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 338us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 312us; 284us; 284us; 284us; 284us; 284us; 284us; 339us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 337us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 284us; 284us; 284us; 284us; 339us; 284us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 284us; 284us; 284us; 284us; 284us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 284us; 339us; 339us; 284us; 284us; 284us; 284us; 284us; 339us; 284us; 284us; 339us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 340 *) + [| 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 65535us; 341us; 341us; 65535us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 315us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 65535us; |]; + (* State 341 *) + [| 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 65535us; 341us; 341us; 65535us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 315us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 65535us; |]; + (* State 342 *) + [| 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 357us; 359us; 386us; 386us; 360us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 356us; 384us; 353us; 362us; 354us; 380us; 364us; 351us; 352us; 366us; 367us; 382us; 368us; 369us; 371us; 358us; 350us; 349us; 349us; 349us; 349us; 349us; 349us; 349us; 349us; 349us; 372us; 374us; 363us; 375us; 373us; 370us; 355us; 343us; 343us; 343us; 343us; 344us; 345us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 376us; 386us; 377us; 383us; 343us; 361us; 343us; 343us; 343us; 346us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 347us; 343us; 343us; 343us; 343us; 343us; 343us; 348us; 343us; 378us; 365us; 379us; 381us; 386us; 343us; 343us; 343us; 343us; 343us; 386us; 386us; 386us; 349us; 343us; 386us; 386us; 386us; 386us; 386us; 386us; 385us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 387us; |]; + (* State 343 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 344 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 698us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 345 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 695us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 346 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 693us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 347 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 687us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 348 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 682us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 349 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 627us; 65535us; 624us; 624us; 624us; 624us; 624us; 624us; 624us; 624us; 624us; 624us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 635us; 635us; 635us; 632us; 635us; 634us; 635us; 634us; 635us; 635us; 629us; 633us; 634us; 635us; 635us; 634us; 634us; 635us; 635us; 630us; 635us; 635us; 635us; 635us; 634us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 635us; 635us; 635us; 635us; 632us; 635us; 635us; 635us; 635us; 635us; 635us; 628us; 633us; 631us; 635us; 635us; 635us; 635us; 626us; 635us; 625us; 635us; 635us; 635us; 623us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 65535us; 624us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 65535us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 350 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 627us; 65535us; 624us; 624us; 624us; 624us; 624us; 624us; 624us; 624us; 624us; 624us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 666us; 635us; 635us; 632us; 635us; 634us; 635us; 634us; 635us; 635us; 629us; 633us; 634us; 665us; 635us; 634us; 634us; 635us; 635us; 630us; 635us; 635us; 664us; 635us; 634us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 635us; 666us; 635us; 635us; 632us; 635us; 635us; 635us; 635us; 635us; 635us; 628us; 633us; 631us; 665us; 635us; 635us; 635us; 626us; 635us; 625us; 635us; 635us; 664us; 623us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 65535us; 624us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 65535us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 351 *) + [| 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 65535us; 65535us; 65535us; 593us; 593us; 65535us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 594us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 65535us; |]; + (* State 352 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 568us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 353 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 566us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 354 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 454us; 565us; 65535us; 450us; 451us; 455us; 65535us; 65535us; 65535us; 448us; 452us; 65535us; 452us; 449us; 451us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 456us; 456us; 456us; 449us; 453us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 453us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 457us; 65535us; 458us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 355 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 559us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 391us; 391us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 391us; 560us; 391us; 561us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 356 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 555us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 558us; 65535us; 65535us; 554us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 357 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 553us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 555us; 65535us; 65535us; 554us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 358 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 394us; 394us; 65535us; 394us; 394us; 547us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 394us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 359 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 360 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 546us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 361 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 540us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 362 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 478us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 478us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 481us; 65535us; 65535us; 65535us; 480us; 65535us; 65535us; 479us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 477us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 363 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 397us; 397us; 65535us; 475us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 397us; 397us; 397us; 474us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 364 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 65535us; 447us; 447us; 473us; 65535us; 65535us; 65535us; 447us; 447us; 65535us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 447us; 447us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 365 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 65535us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 446us; 446us; 65535us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 446us; 446us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 472us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 471us; 65535us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 366 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 367 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 467us; 394us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 394us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 368 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 369 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 65535us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 392us; 392us; 65535us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 392us; 392us; 470us; 392us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 370 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 415us; 65535us; 65535us; 409us; 411us; 416us; 65535us; 65535us; 65535us; 408us; 412us; 65535us; 412us; 410us; 411us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 414us; 414us; 414us; 469us; 413us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 413us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 417us; 65535us; 418us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 371 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 415us; 65535us; 65535us; 409us; 411us; 416us; 65535us; 420us; 65535us; 408us; 412us; 65535us; 412us; 407us; 411us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 414us; 414us; 414us; 410us; 413us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 419us; 65535us; 65535us; 413us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 417us; 65535us; 418us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 372 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 402us; 65535us; 65535us; 405us; 403us; 404us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 373 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 397us; 397us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 397us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 400us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 399us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 374 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 398us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 375 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 397us; 397us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 397us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 376 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 396us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 395us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 377 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 378 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 379 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 380 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 394us; 393us; 394us; 65535us; 65535us; 65535us; 394us; 394us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 394us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 381 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 65535us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 389us; 389us; 65535us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 389us; 389us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 382 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 65535us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 392us; 392us; 65535us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 392us; 392us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 383 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 391us; 391us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 391us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 384 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 65535us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 389us; 389us; 65535us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 389us; 388us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 385 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 386us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 386 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 387 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 388 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 65535us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 390us; 390us; 65535us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 390us; 390us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 389 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 65535us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 389us; 389us; 65535us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 389us; 389us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 390 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 65535us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 390us; 390us; 65535us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 390us; 390us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 391 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 391us; 391us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 391us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 392 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 65535us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 392us; 392us; 65535us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 392us; 392us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 393 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 394us; 394us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 394us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 394 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 394us; 394us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 394us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 395 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 396 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 397 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 397us; 397us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 397us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 398 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 399 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 397us; 397us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 397us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 401us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 400 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 401 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 402 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 403 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 404 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 406us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 405 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 406 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 407 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 415us; 65535us; 65535us; 409us; 411us; 416us; 65535us; 65535us; 65535us; 408us; 412us; 65535us; 412us; 410us; 411us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 414us; 414us; 414us; 410us; 413us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 413us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 417us; 65535us; 418us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 408 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 467us; 394us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 394us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 409 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 454us; 65535us; 65535us; 450us; 451us; 455us; 65535us; 65535us; 65535us; 448us; 452us; 65535us; 452us; 449us; 451us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 456us; 456us; 456us; 449us; 453us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 453us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 457us; 65535us; 458us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 410 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 415us; 65535us; 65535us; 409us; 411us; 416us; 65535us; 65535us; 65535us; 408us; 412us; 65535us; 412us; 410us; 411us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 414us; 414us; 414us; 410us; 413us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 413us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 417us; 65535us; 418us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 411 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 394us; 394us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 394us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 412 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 65535us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 392us; 392us; 65535us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 392us; 392us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 413 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 391us; 391us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 391us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 414 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 397us; 397us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 397us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 415 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 65535us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 389us; 389us; 65535us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 389us; 388us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 416 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 65535us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 447us; 447us; 65535us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 447us; 447us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 417 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 65535us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 446us; 446us; 65535us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 446us; 446us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 418 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 65535us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 389us; 389us; 65535us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 389us; 389us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 419 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 425us; 65535us; 426us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 424us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 420 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 421us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 421 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 422us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 422 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 423us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 423 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 424 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 445us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 425 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 438us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 437us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 426 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 427us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 427 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 428us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 423us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 428 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 429us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 429 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 430us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 430 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 431us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 423us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 431 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 432us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 432 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 433us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 433 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 434us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 423us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 434 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 435us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 435 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 436us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 436 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 423us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 437 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 444us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 438 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 440us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 439us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 439 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 443us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 440 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 441us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 441 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 442us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 442 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 423us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 443 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 423us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 444 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 423us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 445 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 423us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 446 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 65535us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 446us; 446us; 65535us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 446us; 446us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 447 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 65535us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 447us; 447us; 65535us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 447us; 447us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 448 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 65535us; 464us; 464us; 464us; 65535us; 65535us; 65535us; 465us; 464us; 65535us; 464us; 464us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 464us; 464us; 464us; 464us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 449 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 454us; 65535us; 65535us; 450us; 451us; 455us; 65535us; 65535us; 65535us; 448us; 452us; 65535us; 452us; 449us; 451us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 456us; 456us; 456us; 449us; 453us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 453us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 457us; 65535us; 458us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 450 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 454us; 65535us; 65535us; 450us; 451us; 455us; 65535us; 65535us; 65535us; 448us; 452us; 65535us; 452us; 449us; 451us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 456us; 456us; 456us; 449us; 453us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 453us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 457us; 65535us; 458us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 451 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 65535us; 464us; 464us; 464us; 65535us; 65535us; 65535us; 464us; 464us; 65535us; 464us; 464us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 464us; 464us; 464us; 464us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 452 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 463us; 65535us; 65535us; 463us; 463us; 463us; 65535us; 65535us; 65535us; 463us; 463us; 65535us; 463us; 463us; 463us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 463us; 65535us; 463us; 463us; 463us; 463us; 463us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 463us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 463us; 65535us; 463us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 453 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 462us; 65535us; 65535us; 462us; 462us; 462us; 65535us; 65535us; 65535us; 462us; 462us; 65535us; 462us; 462us; 462us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 462us; 65535us; 462us; 462us; 462us; 462us; 462us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 462us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 462us; 65535us; 462us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 454 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 65535us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 390us; 390us; 65535us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 390us; 461us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 455 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 460us; 65535us; 65535us; 460us; 460us; 460us; 65535us; 65535us; 65535us; 460us; 460us; 65535us; 460us; 460us; 460us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 460us; 65535us; 460us; 460us; 460us; 460us; 460us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 460us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 460us; 65535us; 460us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 456 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 397us; 397us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 397us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 457 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 459us; 65535us; 65535us; 459us; 459us; 459us; 65535us; 65535us; 65535us; 459us; 459us; 65535us; 459us; 459us; 459us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 459us; 65535us; 459us; 459us; 459us; 459us; 459us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 459us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 459us; 65535us; 459us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 458 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 65535us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 390us; 390us; 65535us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 390us; 390us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 459 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 459us; 65535us; 65535us; 459us; 459us; 459us; 65535us; 65535us; 65535us; 459us; 459us; 65535us; 459us; 459us; 459us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 459us; 65535us; 459us; 459us; 459us; 459us; 459us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 459us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 459us; 65535us; 459us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 460 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 460us; 65535us; 65535us; 460us; 460us; 460us; 65535us; 65535us; 65535us; 460us; 460us; 65535us; 460us; 460us; 460us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 460us; 65535us; 460us; 460us; 460us; 460us; 460us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 460us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 460us; 65535us; 460us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 461 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 65535us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 390us; 390us; 65535us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 390us; 390us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 462 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 462us; 65535us; 65535us; 462us; 462us; 462us; 65535us; 65535us; 65535us; 462us; 462us; 65535us; 462us; 462us; 462us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 462us; 65535us; 462us; 462us; 462us; 462us; 462us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 462us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 462us; 65535us; 462us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 463 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 463us; 65535us; 65535us; 463us; 463us; 463us; 65535us; 65535us; 65535us; 463us; 463us; 65535us; 463us; 463us; 463us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 463us; 65535us; 463us; 463us; 463us; 463us; 463us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 463us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 463us; 65535us; 463us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 464 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 65535us; 464us; 464us; 464us; 65535us; 65535us; 65535us; 464us; 464us; 65535us; 464us; 464us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 464us; 464us; 464us; 464us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 465 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 466us; 65535us; 65535us; 466us; 466us; 466us; 65535us; 65535us; 65535us; 466us; 466us; 65535us; 466us; 466us; 466us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 466us; 65535us; 466us; 466us; 466us; 466us; 466us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 466us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 466us; 65535us; 466us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 466 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 466us; 65535us; 65535us; 466us; 466us; 466us; 65535us; 65535us; 65535us; 466us; 466us; 65535us; 466us; 466us; 466us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 466us; 65535us; 466us; 466us; 466us; 466us; 466us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 466us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 466us; 65535us; 466us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 467 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 468us; 65535us; 65535us; 468us; 468us; 468us; 65535us; 65535us; 65535us; 468us; 468us; 65535us; 468us; 468us; 468us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 468us; 65535us; 468us; 468us; 468us; 468us; 468us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 468us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 468us; 65535us; 468us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 468 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 468us; 65535us; 65535us; 468us; 468us; 468us; 65535us; 65535us; 65535us; 468us; 468us; 65535us; 468us; 468us; 468us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 468us; 65535us; 468us; 468us; 468us; 468us; 468us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 468us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 468us; 65535us; 468us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 469 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 415us; 65535us; 65535us; 409us; 411us; 416us; 65535us; 65535us; 65535us; 408us; 412us; 65535us; 412us; 410us; 411us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 414us; 414us; 414us; 410us; 413us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 413us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 417us; 65535us; 418us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 470 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 65535us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 392us; 392us; 65535us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 392us; 392us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 471 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 65535us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 446us; 446us; 65535us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 446us; 446us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 472 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 473 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 65535us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 447us; 447us; 65535us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 447us; 447us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 474 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 397us; 397us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 397us; 397us; 397us; 476us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 475 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 397us; 397us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 397us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 476 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 397us; 397us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 397us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 477 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 532us; 530us; 65535us; 65535us; 531us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 532us; 65535us; 533us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 535us; 535us; 535us; 535us; 535us; 535us; 535us; 535us; 535us; 535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 534us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 478 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 478us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 478us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 477us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 479 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 520us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 480 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 498us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 497us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 481 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 482us; 65535us; 483us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 482 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 491us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 483 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 484us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 484 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 485us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 485 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 486us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 486 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 488us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 488us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 487us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 487 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 489us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 488 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 488us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 488us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 487us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 489 *) + [| 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 65535us; 490us; 490us; 65535us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 65535us; |]; + (* State 490 *) + [| 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 65535us; 490us; 490us; 65535us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 65535us; |]; + (* State 491 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 492us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 492 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 494us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 494us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 493us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 493 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 495us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 494 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 494us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 494us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 493us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 495 *) + [| 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 65535us; 496us; 496us; 65535us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 65535us; |]; + (* State 496 *) + [| 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 65535us; 496us; 496us; 65535us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 65535us; |]; + (* State 497 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 507us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 498 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 499us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 499us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 499 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 501us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 501us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 65535us; 65535us; 65535us; 65535us; 500us; 65535us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 65535us; 65535us; 65535us; 65535us; 65535us; 500us; 500us; 500us; 500us; 500us; 65535us; 65535us; 65535us; 65535us; 500us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 500 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 503us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 503us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 504us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 502us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 65535us; 65535us; 65535us; 65535us; 504us; 65535us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 65535us; 65535us; 65535us; 65535us; 65535us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 65535us; 504us; 504us; 65535us; 65535us; 65535us; 65535us; 65535us; 504us; 65535us; 65535us; 504us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 501 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 501us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 501us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 65535us; 65535us; 65535us; 65535us; 500us; 65535us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 65535us; 65535us; 65535us; 65535us; 65535us; 500us; 500us; 500us; 500us; 500us; 65535us; 65535us; 65535us; 65535us; 500us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 502 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 505us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 503 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 503us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 503us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 502us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 504 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 503us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 503us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 504us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 502us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 65535us; 65535us; 65535us; 65535us; 504us; 65535us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 65535us; 65535us; 65535us; 65535us; 65535us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 65535us; 504us; 504us; 65535us; 65535us; 65535us; 65535us; 65535us; 504us; 65535us; 65535us; 504us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 505 *) + [| 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 65535us; 506us; 506us; 65535us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 65535us; |]; + (* State 506 *) + [| 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 65535us; 506us; 506us; 65535us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 65535us; |]; + (* State 507 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 508us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 508 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 509us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 509 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 510us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 510 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 511us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 511us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 511 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 513us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 513us; 65535us; 512us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 512 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 514us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 513 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 513us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 513us; 65535us; 512us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 514 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 516us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 515us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 515 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 519us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 516 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 517us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 517 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 518us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 518 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 519 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 520 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 522us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 521us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 521 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 527us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 522 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 523us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 523 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 524us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 524 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 525us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 525us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 525 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 526us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 526us; 65535us; 512us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 526 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 526us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 526us; 65535us; 512us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 527 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 528us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 528us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 528 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 529us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 529us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 477us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 529 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 529us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 529us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 477us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 530 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 531 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 530us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 532 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 532us; 530us; 65535us; 65535us; 531us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 532us; 65535us; 533us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 534us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 533 *) + [| 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 65535us; 536us; 536us; 65535us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 65535us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 65535us; |]; + (* State 534 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 533us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 535 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 532us; 530us; 65535us; 65535us; 531us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 532us; 65535us; 533us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 535us; 535us; 535us; 535us; 535us; 535us; 535us; 535us; 535us; 535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 534us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 536 *) + [| 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 65535us; 538us; 538us; 65535us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 537us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 65535us; |]; + (* State 537 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 539us; 530us; 65535us; 65535us; 531us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 539us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 538 *) + [| 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 65535us; 538us; 538us; 65535us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 537us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 65535us; |]; + (* State 539 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 539us; 530us; 65535us; 65535us; 531us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 539us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 540 *) + [| 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 65535us; 65535us; 541us; 541us; 65535us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 542us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 65535us; |]; + (* State 541 *) + [| 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 65535us; 65535us; 544us; 544us; 65535us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 543us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 65535us; |]; + (* State 542 *) + [| 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 65535us; 65535us; 541us; 541us; 65535us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 65535us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 65535us; |]; + (* State 543 *) + [| 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 65535us; 65535us; 544us; 544us; 65535us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 545us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 65535us; |]; + (* State 544 *) + [| 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 65535us; 65535us; 544us; 544us; 65535us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 543us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 65535us; |]; + (* State 545 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 546 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 547 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 549us; 65535us; 65535us; 549us; 549us; 549us; 65535us; 65535us; 65535us; 549us; 549us; 65535us; 549us; 549us; 548us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 549us; 65535us; 549us; 549us; 549us; 549us; 549us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 549us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 549us; 65535us; 549us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 548 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 551us; 65535us; 65535us; 551us; 551us; 551us; 65535us; 65535us; 65535us; 551us; 551us; 65535us; 551us; 551us; 550us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 551us; 65535us; 551us; 551us; 551us; 551us; 551us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 551us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 551us; 65535us; 551us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 549 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 549us; 65535us; 65535us; 549us; 549us; 549us; 65535us; 65535us; 65535us; 549us; 549us; 65535us; 549us; 549us; 549us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 549us; 65535us; 549us; 549us; 549us; 549us; 549us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 549us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 549us; 65535us; 549us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 550 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 552us; 65535us; 65535us; 552us; 552us; 552us; 65535us; 65535us; 65535us; 552us; 552us; 65535us; 552us; 552us; 552us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 552us; 65535us; 552us; 552us; 552us; 552us; 552us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 552us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 552us; 65535us; 552us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 551 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 551us; 65535us; 65535us; 551us; 551us; 551us; 65535us; 65535us; 65535us; 551us; 551us; 65535us; 551us; 551us; 551us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 551us; 65535us; 551us; 551us; 551us; 551us; 551us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 551us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 551us; 65535us; 551us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 552 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 552us; 65535us; 65535us; 552us; 552us; 552us; 65535us; 65535us; 65535us; 552us; 552us; 65535us; 552us; 552us; 552us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 552us; 65535us; 552us; 552us; 552us; 552us; 552us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 552us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 552us; 65535us; 552us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 553 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 553us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 555us; 65535us; 65535us; 554us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 554 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 481us; 65535us; 65535us; 65535us; 556us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 555 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 555us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 555us; 65535us; 65535us; 554us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 556 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 557us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 557 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 499us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 499us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 558 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 555us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 558us; 65535us; 65535us; 554us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 559 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 560 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 391us; 391us; 65535us; 391us; 564us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 391us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 561 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 391us; 391us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 391us; 562us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 562 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 391us; 391us; 65535us; 391us; 563us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 391us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 563 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 391us; 391us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 391us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 564 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 391us; 391us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 391us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 565 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 566 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 567us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 567 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 568 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 571us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 570us; 65535us; 65535us; 569us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 569 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 573us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 570 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 572us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 571 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 572 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 573 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 574us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 574 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 576us; 65535us; 65535us; 575us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 577us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 575 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 588us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 576 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 584us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 577 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 578us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 578 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 579us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 579 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 580us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 580 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 581us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 581 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 582us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 582 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 583us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 583 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 584 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 585us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 585 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 586us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 586 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 587us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 587 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 583us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 588 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 589us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 589 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 590us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 590 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 591us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 591 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 592us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 592 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 593 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 621us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 594 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 593us; 65535us; 65535us; 65535us; 65535us; 593us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 595us; 595us; 595us; 595us; 595us; 595us; 595us; 595us; 595us; 595us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 598us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 593us; 65535us; 65535us; 65535us; 65535us; 593us; 593us; 65535us; 65535us; 65535us; 593us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 593us; 65535us; 65535us; 65535us; 593us; 65535us; 593us; 596us; 593us; 65535us; 597us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 595us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 595 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 617us; 617us; 617us; 617us; 617us; 617us; 617us; 617us; 617us; 617us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 617us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 596 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 611us; 611us; 611us; 611us; 611us; 611us; 611us; 611us; 611us; 611us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 611us; 611us; 611us; 611us; 611us; 611us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 611us; 611us; 611us; 611us; 611us; 611us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 597 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 608us; 608us; 608us; 608us; 608us; 608us; 608us; 608us; 608us; 608us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 608us; 608us; 608us; 608us; 608us; 608us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 608us; 608us; 608us; 608us; 608us; 608us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 598 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 599us; 599us; 599us; 599us; 599us; 599us; 599us; 599us; 599us; 599us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 599us; 599us; 599us; 599us; 599us; 599us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 599us; 599us; 599us; 599us; 599us; 599us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 599 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 600us; 600us; 600us; 600us; 600us; 600us; 600us; 600us; 600us; 600us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 600us; 600us; 600us; 600us; 600us; 600us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 600us; 600us; 600us; 600us; 600us; 600us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 600 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 601us; 601us; 601us; 601us; 601us; 601us; 601us; 601us; 601us; 601us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 601us; 601us; 601us; 601us; 601us; 601us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 601us; 601us; 601us; 601us; 601us; 601us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 601 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 602us; 602us; 602us; 602us; 602us; 602us; 602us; 602us; 602us; 602us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 602us; 602us; 602us; 602us; 602us; 602us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 602us; 602us; 602us; 602us; 602us; 602us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 602 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 603us; 603us; 603us; 603us; 603us; 603us; 603us; 603us; 603us; 603us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 603us; 603us; 603us; 603us; 603us; 603us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 603us; 603us; 603us; 603us; 603us; 603us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 603 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 604us; 604us; 604us; 604us; 604us; 604us; 604us; 604us; 604us; 604us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 604us; 604us; 604us; 604us; 604us; 604us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 604us; 604us; 604us; 604us; 604us; 604us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 604 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 605us; 605us; 605us; 605us; 605us; 605us; 605us; 605us; 605us; 605us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 605us; 605us; 605us; 605us; 605us; 605us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 605us; 605us; 605us; 605us; 605us; 605us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 605 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 606us; 606us; 606us; 606us; 606us; 606us; 606us; 606us; 606us; 606us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 606us; 606us; 606us; 606us; 606us; 606us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 606us; 606us; 606us; 606us; 606us; 606us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 606 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 607us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 607 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 608 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 609us; 609us; 609us; 609us; 609us; 609us; 609us; 609us; 609us; 609us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 609us; 609us; 609us; 609us; 609us; 609us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 609us; 609us; 609us; 609us; 609us; 609us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 609 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 610us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 610 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 611 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 612us; 612us; 612us; 612us; 612us; 612us; 612us; 612us; 612us; 612us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 612us; 612us; 612us; 612us; 612us; 612us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 612us; 612us; 612us; 612us; 612us; 612us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 612 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 613us; 613us; 613us; 613us; 613us; 613us; 613us; 613us; 613us; 613us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 613us; 613us; 613us; 613us; 613us; 613us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 613us; 613us; 613us; 613us; 613us; 613us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 613 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 614us; 614us; 614us; 614us; 614us; 614us; 614us; 614us; 614us; 614us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 614us; 614us; 614us; 614us; 614us; 614us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 614us; 614us; 614us; 614us; 614us; 614us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 614 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 615us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 615 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 616us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 616 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 617 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 618us; 618us; 618us; 618us; 618us; 618us; 618us; 618us; 618us; 618us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 618us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 618 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 619us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 619 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 620us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 620 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 621 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 622us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 622 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 623 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 624 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 627us; 65535us; 656us; 656us; 656us; 656us; 656us; 656us; 656us; 656us; 656us; 656us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 650us; 645us; 663us; 645us; 663us; 645us; 645us; 660us; 644us; 663us; 645us; 645us; 663us; 663us; 645us; 645us; 661us; 645us; 645us; 645us; 645us; 663us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 650us; 645us; 645us; 645us; 645us; 645us; 645us; 659us; 644us; 662us; 645us; 645us; 645us; 645us; 658us; 645us; 657us; 645us; 645us; 645us; 655us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 656us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 625 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 646us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 653us; 636us; 654us; 636us; 636us; 636us; 636us; 652us; 636us; 636us; 636us; 636us; 636us; 651us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 626 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 627 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 647us; 65535us; 648us; 648us; 648us; 648us; 648us; 648us; 648us; 648us; 648us; 648us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 635us; 635us; 635us; 632us; 640us; 635us; 635us; 635us; 635us; 635us; 635us; 633us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 635us; 635us; 635us; 635us; 632us; 640us; 635us; 635us; 635us; 635us; 635us; 635us; 633us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 65535us; 648us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 65535us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 628 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 629 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 630 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 646us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 631 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 632 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 638us; 65535us; 638us; 65535us; 65535us; 637us; 637us; 637us; 637us; 637us; 637us; 637us; 637us; 637us; 637us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 637us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 633 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 634 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 635 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 636 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 637 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 642us; 645us; 645us; 645us; 645us; 645us; 645us; 644us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 645us; 642us; 645us; 645us; 645us; 645us; 645us; 645us; 644us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 643us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 638 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 639us; 639us; 639us; 639us; 639us; 639us; 639us; 639us; 639us; 639us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 639us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 639 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 641us; 641us; 641us; 641us; 641us; 641us; 641us; 641us; 641us; 641us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 635us; 635us; 635us; 635us; 640us; 635us; 635us; 635us; 635us; 635us; 635us; 633us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 635us; 635us; 635us; 635us; 635us; 640us; 635us; 635us; 635us; 635us; 635us; 635us; 633us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 65535us; 641us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 65535us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 640 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 641 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 642us; 645us; 645us; 645us; 645us; 645us; 645us; 644us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 645us; 642us; 645us; 645us; 645us; 645us; 645us; 645us; 644us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 643us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 642 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 643 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 642us; 645us; 645us; 645us; 645us; 645us; 645us; 644us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 645us; 642us; 645us; 645us; 645us; 645us; 645us; 645us; 644us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 643us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 644 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 645 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 646 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 647 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 648 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 649us; 649us; 649us; 649us; 649us; 649us; 649us; 649us; 649us; 649us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 650us; 642us; 645us; 645us; 645us; 645us; 645us; 645us; 644us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 650us; 642us; 645us; 645us; 645us; 645us; 645us; 645us; 644us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 649us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 649 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 649us; 649us; 649us; 649us; 649us; 649us; 649us; 649us; 649us; 649us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 650us; 642us; 645us; 645us; 645us; 645us; 645us; 645us; 644us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 650us; 642us; 645us; 645us; 645us; 645us; 645us; 645us; 644us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 649us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 650 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 638us; 65535us; 638us; 65535us; 65535us; 637us; 637us; 637us; 637us; 637us; 637us; 637us; 637us; 637us; 637us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 637us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 651 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 652 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 653 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 654 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 655 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 656 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 627us; 65535us; 656us; 656us; 656us; 656us; 656us; 656us; 656us; 656us; 656us; 656us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 650us; 645us; 663us; 645us; 663us; 645us; 645us; 660us; 644us; 663us; 645us; 645us; 663us; 663us; 645us; 645us; 661us; 645us; 645us; 645us; 645us; 663us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 650us; 645us; 645us; 645us; 645us; 645us; 645us; 659us; 644us; 662us; 645us; 645us; 645us; 645us; 658us; 645us; 657us; 645us; 645us; 645us; 655us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 656us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 657 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 646us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 653us; 636us; 654us; 636us; 636us; 636us; 636us; 652us; 636us; 636us; 636us; 636us; 636us; 651us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 658 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 659 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 660 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 661 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 646us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 662 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 663 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 664 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 677us; 677us; 677us; 677us; 677us; 677us; 677us; 677us; 677us; 677us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 677us; 677us; 677us; 677us; 677us; 677us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 677us; 677us; 677us; 677us; 677us; 677us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 665 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 675us; 675us; 675us; 675us; 675us; 675us; 675us; 675us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 666 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 667us; 667us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 667 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 669us; 669us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 672us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 661us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 671us; 645us; 662us; 645us; 645us; 645us; 645us; 670us; 645us; 657us; 645us; 645us; 645us; 668us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 668 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 669 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 669us; 669us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 672us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 661us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 671us; 645us; 662us; 645us; 645us; 645us; 645us; 670us; 645us; 657us; 645us; 645us; 645us; 668us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 670 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 671 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 674us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 672 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 673us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 673 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 674 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 675 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 676us; 676us; 676us; 676us; 676us; 676us; 676us; 676us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 672us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 661us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 671us; 645us; 662us; 645us; 645us; 645us; 645us; 670us; 645us; 657us; 645us; 645us; 645us; 668us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 676 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 676us; 676us; 676us; 676us; 676us; 676us; 676us; 676us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 672us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 661us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 671us; 645us; 662us; 645us; 645us; 645us; 645us; 670us; 645us; 657us; 645us; 645us; 645us; 668us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 677 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 678us; 678us; 678us; 678us; 678us; 678us; 678us; 678us; 678us; 678us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 678us; 678us; 678us; 678us; 678us; 678us; 645us; 645us; 645us; 645us; 645us; 672us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 661us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 678us; 678us; 678us; 678us; 678us; 678us; 645us; 645us; 645us; 645us; 645us; 671us; 645us; 662us; 645us; 645us; 645us; 645us; 670us; 645us; 657us; 645us; 645us; 645us; 668us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 678 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 678us; 678us; 678us; 678us; 678us; 678us; 678us; 678us; 678us; 678us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 678us; 678us; 678us; 678us; 678us; 678us; 645us; 645us; 645us; 645us; 645us; 672us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 661us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 678us; 678us; 678us; 678us; 678us; 678us; 645us; 645us; 645us; 645us; 645us; 671us; 645us; 662us; 645us; 645us; 645us; 645us; 670us; 645us; 657us; 645us; 645us; 645us; 668us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 679 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 680 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 681 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 682 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 683us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 683 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 684us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 684 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 685us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 685 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 686us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 686 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 687 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 688us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 688 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 689us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 689 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 690us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 690 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 691us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 691 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 692us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 692 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 693 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 694us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 694 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 695 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 696us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 696 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 697us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 697 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 698 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 699us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 699 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 700us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 700 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 701us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 701 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 702us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 702 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 703us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 703 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 704us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 704 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 705us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 705 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 706us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 706 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 707us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 707 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 708us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 708 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 709us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 709 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 710us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 710 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + |] +let actions : uint16[] = [|65535us; 0us; 1us; 6us; 6us; 4us; 4us; 5us; 4us; 4us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 3us; 65535us; 65535us; 65535us; 65535us; 2us; 1us; 65535us; 4us; 1us; 1us; 1us; 1us; 2us; 4us; 3us; 4us; 4us; 2us; 1us; 1us; 65535us; 65535us; 65535us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 65535us; 0us; 65535us; 1us; 2us; 2us; 2us; 2us; 3us; 5us; 4us; 5us; 5us; 3us; 2us; 2us; 65535us; 65535us; 65535us; 2us; 2us; 2us; 2us; 2us; 2us; 2us; 0us; 65535us; 5us; 1us; 1us; 1us; 1us; 2us; 3us; 5us; 4us; 5us; 5us; 3us; 1us; 1us; 65535us; 65535us; 65535us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 0us; 65535us; 1us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 0us; 65535us; 10us; 1us; 10us; 10us; 6us; 10us; 10us; 8us; 8us; 8us; 9us; 10us; 8us; 8us; 8us; 7us; 6us; 5us; 4us; 3us; 65535us; 2us; 65535us; 65535us; 0us; 65535us; 0us; 3us; 1us; 2us; 2us; 2us; 2us; 2us; 2us; 2us; 2us; 0us; 65535us; 6us; 1us; 6us; 2us; 3us; 3us; 4us; 5us; 6us; 6us; 4us; 3us; 65535us; 65535us; 65535us; 3us; 3us; 3us; 3us; 3us; 3us; 2us; 1us; 65535us; 0us; 65535us; 1us; 3us; 8us; 4us; 5us; 5us; 6us; 7us; 8us; 8us; 6us; 5us; 65535us; 65535us; 65535us; 5us; 5us; 5us; 5us; 5us; 5us; 4us; 3us; 0us; 2us; 65535us; 13us; 6us; 8us; 13us; 9us; 10us; 10us; 11us; 12us; 13us; 13us; 11us; 10us; 65535us; 65535us; 65535us; 10us; 10us; 10us; 10us; 10us; 10us; 9us; 8us; 7us; 0us; 65535us; 1us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 5us; 65535us; 65535us; 65535us; 4us; 65535us; 3us; 65535us; 2us; 0us; 65535us; 0us; 2us; 1us; 2us; 2us; 0us; 65535us; 4us; 4us; 4us; 3us; 4us; 4us; 4us; 5us; 4us; 3us; 4us; 4us; 4us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 2us; 65535us; 2us; 2us; 2us; 65535us; 1us; 65535us; 1us; 1us; 1us; 65535us; 65535us; 0us; 65535us; 65535us; 0us; 0us; 0us; 0us; 4us; 4us; 4us; 4us; 4us; 4us; 2us; 4us; 2us; 2us; 2us; 4us; 1us; 4us; 1us; 1us; 1us; 4us; 4us; 0us; 4us; 4us; 0us; 0us; 0us; 0us; 65535us; 0us; 0us; 0us; 0us; 0us; 0us; 13us; 13us; 63us; 64us; 43us; 97us; 106us; 47us; 48us; 104us; 52us; 118us; 102us; 59us; 88us; 60us; 95us; 65us; 66us; 67us; 100us; 69us; 72us; 73us; 89us; 83us; 85us; 86us; 91us; 94us; 96us; 98us; 101us; 105us; 106us; 110us; 118us; 118us; 119us; 107us; 110us; 107us; 106us; 105us; 99us; 104us; 87us; 90us; 107us; 82us; 107us; 93us; 78us; 74us; 75us; 80us; 81us; 79us; 71us; 104us; 107us; 65535us; 104us; 105us; 106us; 107us; 110us; 108us; 109us; 110us; 65535us; 65535us; 111us; 65535us; 111us; 111us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 111us; 65535us; 111us; 65535us; 111us; 65535us; 65535us; 65535us; 65535us; 109us; 108us; 104us; 107us; 107us; 104us; 105us; 106us; 107us; 107us; 107us; 107us; 107us; 107us; 107us; 107us; 106us; 105us; 104us; 103us; 103us; 103us; 103us; 70us; 68us; 62us; 92us; 61us; 55us; 84us; 56us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 116us; 65535us; 116us; 116us; 116us; 65535us; 115us; 65535us; 115us; 115us; 115us; 65535us; 117us; 65535us; 114us; 65535us; 65535us; 114us; 114us; 114us; 114us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 113us; 112us; 65535us; 65535us; 65535us; 65535us; 112us; 112us; 112us; 65535us; 65535us; 65535us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 53us; 52us; 51us; 50us; 51us; 49us; 50us; 49us; 48us; 65535us; 65535us; 65535us; 65535us; 47us; 46us; 57us; 106us; 58us; 77us; 76us; 45us; 65535us; 44us; 41us; 65535us; 65535us; 40us; 37us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 42us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 33us; 65535us; 65535us; 65535us; 65535us; 34us; 32us; 65535us; 65535us; 30us; 31us; 28us; 29us; 6us; 13us; 15us; 9us; 22us; 14us; 17us; 27us; 19us; 27us; 23us; 26us; 27us; 27us; 22us; 65535us; 22us; 21us; 22us; 21us; 22us; 23us; 27us; 18us; 12us; 22us; 22us; 27us; 8us; 11us; 16us; 20us; 6us; 13us; 15us; 9us; 14us; 17us; 27us; 19us; 26us; 27us; 27us; 27us; 13us; 7us; 13us; 10us; 14us; 17us; 25us; 24us; 13us; 13us; 13us; 13us; 0us; 4us; 5us; 0us; 0us; 0us; 0us; 2us; 0us; 0us; 0us; 0us; 0us; 3us; 0us; 1us; 5us; 65535us; 39us; 0us; 0us; 0us; 0us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 38us; |] +let _fslex_tables = Internal.Utilities.Text.Lexing.UnicodeTables.Create(trans,actions) +let rec _fslex_dummy () = _fslex_dummy() +(* Rule token *) +and token args skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_token args skip 342 lexbuf +(* Rule ifdefSkip *) +and ifdefSkip n m args skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_ifdefSkip n m args skip 275 lexbuf +(* Rule endline *) +and endline cont args skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_endline cont args skip 268 lexbuf +(* Rule string *) +and string sargs skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_string sargs skip 218 lexbuf +(* Rule verbatimString *) +and verbatimString sargs skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_verbatimString sargs skip 192 lexbuf +(* Rule tripleQuoteString *) +and tripleQuoteString sargs skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_tripleQuoteString sargs skip 166 lexbuf +(* Rule singleLineComment *) +and singleLineComment cargs skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_singleLineComment cargs skip 153 lexbuf +(* Rule comment *) +and comment cargs skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_comment cargs skip 127 lexbuf +(* Rule stringInComment *) +and stringInComment n m args skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_stringInComment n m args skip 82 lexbuf +(* Rule verbatimStringInComment *) +and verbatimStringInComment n m args skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_verbatimStringInComment n m args skip 57 lexbuf +(* Rule tripleQuoteStringInComment *) +and tripleQuoteStringInComment n m args skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_tripleQuoteStringInComment n m args skip 31 lexbuf +(* Rule mlOnly *) +and mlOnly m args skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_mlOnly m args skip 0 lexbuf +(* Rule token *) +and _fslex_token args skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 232 "..\lex.fsl" + Keywords.KeywordOrIdentifierToken args lexbuf (lexeme lexbuf) +# 1625 "lex.fs" + ) + | 1 -> ( +# 234 "..\lex.fsl" + DO_BANG +# 1630 "lex.fs" + ) + | 2 -> ( +# 236 "..\lex.fsl" + YIELD_BANG(true) +# 1635 "lex.fs" + ) + | 3 -> ( +# 238 "..\lex.fsl" + YIELD_BANG(false) +# 1640 "lex.fs" + ) + | 4 -> ( +# 240 "..\lex.fsl" + let tok = Keywords.KeywordOrIdentifierToken args lexbuf (lexemeTrimRight lexbuf 1) + match tok with + | LET _ -> BINDER (lexemeTrimRight lexbuf 1) + | _ -> fail args lexbuf (FSComp.SR.lexIdentEndInMarkReserved("!")) (Keywords.KeywordOrIdentifierToken args lexbuf (lexeme lexbuf)) +# 1648 "lex.fs" + ) + | 5 -> ( +# 245 "..\lex.fsl" + fail args lexbuf (FSComp.SR.lexIdentEndInMarkReserved("#")) (Keywords.KeywordOrIdentifierToken args lexbuf (lexeme lexbuf)) +# 1653 "lex.fs" + ) + | 6 -> ( +# 247 "..\lex.fsl" + let n = lexemeTrimRightToInt32 args lexbuf 1 + if n > 0x80 || n < -0x80 then fail args lexbuf (FSComp.SR.lexOutsideEightBitSigned()) (INT8(0y,false)) + // Allow to parse as min_int. Allowed only because we parse '-' as an operator. + else if n = 0x80 then INT8(sbyte(-0x80), true (* 'true' = 'bad'*) ) + else INT8(sbyte n,false) +# 1662 "lex.fs" + ) + | 7 -> ( +# 253 "..\lex.fsl" + let n = lexemeTrimRightToInt32 args lexbuf 1 + if n > 0xFF || n < 0 then fail args lexbuf (FSComp.SR.lexOutsideEightBitSignedHex()) (INT8(0y,false)) + else INT8(sbyte(byte(n)),false) +# 1669 "lex.fs" + ) + | 8 -> ( +# 257 "..\lex.fsl" + let n = lexemeTrimRightToInt32 args lexbuf 2 + if n > 0xFF || n < 0 then fail args lexbuf (FSComp.SR.lexOutsideEightBitUnsigned()) (UINT8(0uy)) + else UINT8(byte n) +# 1676 "lex.fs" + ) + | 9 -> ( +# 261 "..\lex.fsl" + let n = lexemeTrimRightToInt32 args lexbuf 1 + if n > 0x8000 || n < -0x8000 then fail args lexbuf (FSComp.SR.lexOutsideSixteenBitSigned()) (INT16(0s,false)) + // Allow to parse as min_int. Allowed only because we parse '-' as an operator. + else if n = 0x8000 then INT16(-0x8000s,true) + else INT16(int16 n,false) +# 1685 "lex.fs" + ) + | 10 -> ( +# 267 "..\lex.fsl" + let n = lexemeTrimRightToInt32 args lexbuf 1 + if n > 0xFFFF || n < 0 then fail args lexbuf (FSComp.SR.lexOutsideSixteenBitSigned()) (INT16(0s,false)) + else INT16(int16(uint16(n)),false) +# 1692 "lex.fs" + ) + | 11 -> ( +# 271 "..\lex.fsl" + let n = lexemeTrimRightToInt32 args lexbuf 2 + if n > 0xFFFF || n < 0 then fail args lexbuf (FSComp.SR.lexOutsideSixteenBitUnsigned()) (UINT16(0us)) + else UINT16(uint16 n) +# 1699 "lex.fs" + ) + | 12 -> ( +# 275 "..\lex.fsl" + let s = lexemeTrimRight lexbuf 2 + // Allow to parse as min_int. Allowed only because we parse '-' as an operator. + if s = "2147483648" then INT32_DOT_DOT(-2147483648,true) else + let n = try int32 s with _ -> fail args lexbuf (FSComp.SR.lexOutsideThirtyTwoBitSigned()) 0 + INT32_DOT_DOT(n,false) + +# 1709 "lex.fs" + ) + | 13 -> ( +# 283 "..\lex.fsl" + let s = lexeme lexbuf + // Allow to parse as min_int. Allowed only because we parse '-' as an operator. + if s = "2147483648" then INT32(-2147483648,true) else + let n = + try int32 s with _ -> fail args lexbuf (FSComp.SR.lexOutsideThirtyTwoBitSigned()) 0 + INT32(n,false) + +# 1720 "lex.fs" + ) + | 14 -> ( +# 292 "..\lex.fsl" + let s = lexemeTrimRight lexbuf 1 + // Allow to parse as min_int. Allowed only because we parse '-' as an operator. + if s = "2147483648" then INT32(-2147483648,true) else + let n = + try int32 s with _ -> fail args lexbuf (FSComp.SR.lexOutsideThirtyTwoBitSigned()) 0 + INT32(n,false) + +# 1731 "lex.fs" + ) + | 15 -> ( +# 301 "..\lex.fsl" + + let s = lexemeTrimRight lexbuf 1 + let n = + try int64 s with _ -> fail args lexbuf (FSComp.SR.lexOutsideThirtyTwoBitUnsigned()) 0L + if n > 0xFFFFFFFFL || n < 0L then fail args lexbuf (FSComp.SR.lexOutsideThirtyTwoBitUnsigned()) (UINT32(0u)) else + UINT32(uint32 (uint64 n)) +# 1741 "lex.fs" + ) + | 16 -> ( +# 309 "..\lex.fsl" + + let s = lexemeTrimRight lexbuf 2 + let n = + try int64 s with _ -> fail args lexbuf (FSComp.SR.lexOutsideThirtyTwoBitUnsigned()) 0L + if n > 0xFFFFFFFFL || n < 0L then fail args lexbuf (FSComp.SR.lexOutsideThirtyTwoBitUnsigned()) (UINT32(0u)) else + UINT32(uint32 (uint64 n)) +# 1751 "lex.fs" + ) + | 17 -> ( +# 317 "..\lex.fsl" + let s = lexemeTrimRight lexbuf 1 + // Allow to parse as min_int. Stupid but allowed because we parse '-' as an operator. + if s = "9223372036854775808" then INT64(-9223372036854775808L,true) else + let n = + try int64 s with _ -> fail args lexbuf (FSComp.SR.lexOutsideSixtyFourBitSigned()) 0L + INT64(n,false) + +# 1762 "lex.fs" + ) + | 18 -> ( +# 326 "..\lex.fsl" + let s = lexemeTrimRight lexbuf 2 + let n = + try uint64 s with _ -> fail args lexbuf (FSComp.SR.lexOutsideSixtyFourBitUnsigned()) 0UL + UINT64(n) +# 1770 "lex.fs" + ) + | 19 -> ( +# 332 "..\lex.fsl" + try + NATIVEINT(int64 (lexemeTrimRight lexbuf 1)) + with _ -> fail args lexbuf (FSComp.SR.lexOutsideNativeSigned()) (NATIVEINT(0L)) +# 1777 "lex.fs" + ) + | 20 -> ( +# 337 "..\lex.fsl" + try + UNATIVEINT(uint64 (lexemeTrimRight lexbuf 2)) + with _ -> fail args lexbuf (FSComp.SR.lexOutsideNativeUnsigned()) (UNATIVEINT(0UL)) +# 1784 "lex.fs" + ) + | 21 -> ( +# 342 "..\lex.fsl" + IEEE32 (try float32(lexemeTrimRight lexbuf 1) with _ -> fail args lexbuf (FSComp.SR.lexInvalidFloat()) 0.0f) +# 1789 "lex.fs" + ) + | 22 -> ( +# 344 "..\lex.fsl" + IEEE64 (try float(lexeme lexbuf) with _ -> fail args lexbuf (FSComp.SR.lexInvalidFloat()) 0.0) +# 1794 "lex.fs" + ) + | 23 -> ( +# 347 "..\lex.fsl" + try + let s = lexemeTrimRight lexbuf 1 + // This implements a range check for decimal literals + let d = System.Decimal.Parse(s,System.Globalization.NumberStyles.AllowExponent ||| System.Globalization.NumberStyles.Number,System.Globalization.CultureInfo.InvariantCulture) + DECIMAL d + with + e -> fail args lexbuf (FSComp.SR.lexOusideDecimal()) (DECIMAL (decimal 0)) + +# 1806 "lex.fs" + ) + | 24 -> ( +# 356 "..\lex.fsl" + + let s = lexemeTrimRight lexbuf 2 + // Even though the intermediate step is an int64, display the "invalid float" message, since it will be less confusing to the user + let n64 = (try (int64 s) with _ -> fail args lexbuf (FSComp.SR.lexInvalidFloat()) 0L) + if n64 > 0xFFFFFFFFL || n64 < 0L then fail args lexbuf (FSComp.SR.lexOusideThirtyTwoBitFloat()) (IEEE32 0.0f) else + IEEE32 (System.BitConverter.ToSingle(System.BitConverter.GetBytes(int32 (uint32 (uint64 n64))),0)) +# 1816 "lex.fs" + ) + | 25 -> ( +# 364 "..\lex.fsl" + + let n64 = (try int64 (lexemeTrimRight lexbuf 2) with _ -> fail args lexbuf (FSComp.SR.lexInvalidFloat()) 0L) + IEEE64 (System.BitConverter.Int64BitsToDouble(n64)) +# 1823 "lex.fs" + ) + | 26 -> ( +# 369 "..\lex.fsl" + let s = lexeme lexbuf + BIGNUM (lexemeTrimRight lexbuf 1, s.[s.Length-1..s.Length-1]) +# 1829 "lex.fs" + ) + | 27 -> ( +# 373 "..\lex.fsl" + fail args lexbuf (FSComp.SR.lexInvalidNumericLiteral()) (INT32(0,false)) +# 1834 "lex.fs" + ) + | 28 -> ( +# 376 "..\lex.fsl" + let s = lexeme lexbuf + CHAR (if s.[1] = '\\' then escape s.[2] else s.[1]) +# 1840 "lex.fs" + ) + | 29 -> ( +# 380 "..\lex.fsl" + let s = lexeme lexbuf + let x = int32 (if s.[1] = '\\' then escape s.[2] else s.[1]) + if x < 0 || x > 127 then + fail args lexbuf (FSComp.SR.lexInvalidByteLiteral()) (UINT8(byte 0)) + else + UINT8 (byte(x)) +# 1850 "lex.fs" + ) + | 30 -> ( +# 388 "..\lex.fsl" + let s = lexeme lexbuf + let c = trigraph s.[2] s.[3] s.[4] + let x = int32 c + if x < 0 || x > 255 then + fail args lexbuf (FSComp.SR.lexInvalidCharLiteral()) (CHAR c) + else + CHAR c +# 1861 "lex.fs" + ) + | 31 -> ( +# 397 "..\lex.fsl" + let s = lexeme lexbuf + let x = int32 (trigraph s.[2] s.[3] s.[4]) + if x < 0 || x > 255 then + fail args lexbuf (FSComp.SR.lexInvalidByteLiteral()) (UINT8(byte 0)) + else + UINT8 (byte(x)) +# 1871 "lex.fs" + ) + | 32 -> ( +# 405 "..\lex.fsl" + let x = int32 (unicodeGraphShort (lexemeTrimBoth lexbuf 3 2)) + if x < 0 || x > 127 then + fail args lexbuf (FSComp.SR.lexInvalidByteLiteral()) (UINT8(byte 0)) + else + UINT8 (byte(x)) +# 1880 "lex.fs" + ) + | 33 -> ( +# 411 "..\lex.fsl" + CHAR (char (int32 (hexGraphShort (lexemeTrimBoth lexbuf 3 1)))) +# 1885 "lex.fs" + ) + | 34 -> ( +# 412 "..\lex.fsl" + CHAR (char (int32 (unicodeGraphShort (lexemeTrimBoth lexbuf 3 1)))) +# 1890 "lex.fs" + ) + | 35 -> ( +# 414 "..\lex.fsl" + let hi,lo = unicodeGraphLong (lexemeTrimBoth lexbuf 3 1) + match hi with + | None -> CHAR (char lo) + | Some _ -> fail args lexbuf (FSComp.SR.lexThisUnicodeOnlyInStringLiterals()) (CHAR (char lo)) +# 1898 "lex.fs" + ) + | 36 -> ( +# 419 "..\lex.fsl" + if not skip then (COMMENT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 1903 "lex.fs" + ) + | 37 -> ( +# 421 "..\lex.fsl" + if not skip then (COMMENT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 1908 "lex.fs" + ) + | 38 -> ( +# 423 "..\lex.fsl" + if not skip then (COMMENT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 1913 "lex.fs" + ) + | 39 -> ( +# 425 "..\lex.fsl" + if not skip then (COMMENT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 1918 "lex.fs" + ) + | 40 -> ( +# 428 "..\lex.fsl" + LPAREN_STAR_RPAREN +# 1923 "lex.fs" + ) + | 41 -> ( +# 431 "..\lex.fsl" + let m = lexbuf.LexemeRange + if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,1,m))) else comment (1,m,args) skip lexbuf +# 1929 "lex.fs" + ) + | 42 -> ( +# 435 "..\lex.fsl" + let m = lexbuf.LexemeRange + if not skip then (COMMENT (LexCont.MLOnly(!args.ifdefStack,m))) else mlOnly m args skip lexbuf +# 1935 "lex.fs" + ) + | 43 -> ( +# 439 "..\lex.fsl" + let buf,fin,m = startString args lexbuf + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string (buf,fin,m,args) skip lexbuf +# 1941 "lex.fs" + ) + | 44 -> ( +# 443 "..\lex.fsl" + let buf,fin,m = startString args lexbuf + if not skip then (STRING_TEXT (LexCont.TripleQuoteString(!args.ifdefStack,m))) else tripleQuoteString (buf,fin,m,args) skip lexbuf +# 1947 "lex.fs" + ) + | 45 -> ( +# 447 "..\lex.fsl" + fail args lexbuf (FSComp.SR.lexTokenReserved()) (WHITESPACE (LexCont.Token !args.ifdefStack)) +# 1952 "lex.fs" + ) + | 46 -> ( +# 450 "..\lex.fsl" + let buf,fin,m = startString args lexbuf + if not skip then (STRING_TEXT (LexCont.VerbatimString(!args.ifdefStack,m))) else verbatimString (buf,fin,m,args) skip lexbuf +# 1958 "lex.fs" + ) + | 47 -> ( +# 454 "..\lex.fsl" + if skip then token args skip lexbuf + else WHITESPACE (LexCont.Token !args.ifdefStack) +# 1964 "lex.fs" + ) + | 48 -> ( +# 458 "..\lex.fsl" + if args.lightSyntaxStatus.Status then errorR(Error(FSComp.SR.lexTabsNotAllowed(),lexbuf.LexemeRange)); + if not skip then (WHITESPACE (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 1970 "lex.fs" + ) + | 49 -> ( +# 462 "..\lex.fsl" + // 4+ slash are 1-line comments, online 3 slash are XmlDoc + let m = lexbuf.LexemeRange + if not skip then (LINE_COMMENT (LexCont.SingleLineComment(!args.ifdefStack,1,m))) else singleLineComment (None,1,m,args) skip lexbuf +# 1977 "lex.fs" + ) + | 50 -> ( +# 467 "..\lex.fsl" + // Match exactly 3 slash, 4+ slash caught by preceding rule + let m = lexbuf.LexemeRange + let doc = lexemeTrimLeft lexbuf 3 + let sb = (new StringBuilder(100)).Append(doc) + if not skip then (LINE_COMMENT (LexCont.SingleLineComment(!args.ifdefStack,1,m))) else singleLineComment (Some sb,1,m,args) skip lexbuf +# 1986 "lex.fs" + ) + | 51 -> ( +# 474 "..\lex.fsl" + // Need to read all operator symbols too, otherwise it might be parsed by a rule below + let m = lexbuf.LexemeRange + if not skip then (LINE_COMMENT (LexCont.SingleLineComment(!args.ifdefStack,1,m))) else singleLineComment (None,1,m,args) skip lexbuf +# 1993 "lex.fs" + ) + | 52 -> ( +# 479 "..\lex.fsl" + newline lexbuf; if not skip then (WHITESPACE (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 1998 "lex.fs" + ) + | 53 -> ( +# 482 "..\lex.fsl" + Keywords.IdentifierToken args lexbuf (lexemeTrimBoth lexbuf 2 2) +# 2003 "lex.fs" + ) + | 54 -> ( +# 485 "..\lex.fsl" + let pos = lexbuf.EndPos + if skip then + let s = lexeme lexbuf + let rec parseLeadingDirective n = + match s.[n] with + | c when c >= 'a' && c <= 'z' -> parseLeadingDirective (n+1) + | _ -> parseLeadingWhitespace n // goto the next state + + and parseLeadingWhitespace n = + match s.[n] with + | ' ' | '\t' -> parseLeadingWhitespace (n+1) + | _ -> parseLineNumber n n // goto the next state + + and parseLineNumber start n = + match s.[n] with + | c when c >= '0' && c <= '9' -> parseLineNumber start (n+1) + | _ -> let text = (String.sub s start (n-start)) + let lineNumber = + try int32 text + with err -> errorR(Error(FSComp.SR.lexInvalidLineNumber(text),lexbuf.LexemeRange)); 0 + lineNumber, parseWhitespaceBeforeFile n // goto the next state + + and parseWhitespaceBeforeFile n = + match s.[n] with + | ' ' | '\t' | '@' -> parseWhitespaceBeforeFile (n+1) + | '"' -> Some (parseFile (n+1) (n+1)) + | _ -> None + + and parseFile start n = + match s.[n] with + | '"' -> String.sub s start (n-start) + | _ -> parseFile start (n+1) + // Call the parser + let line,file = parseLeadingDirective 1 + // Construct the new position + lexbuf.EndPos <- pos.ApplyLineDirective((match file with Some f -> fileIndexOfFile f | None -> pos.FileIndex), line) + token args skip lexbuf + else + if not skip then (HASH_LINE (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 2046 "lex.fs" + ) + | 55 -> ( +# 528 "..\lex.fsl" + checkExprOp lexbuf; LQUOTE ("<@ @>", false) +# 2051 "lex.fs" + ) + | 56 -> ( +# 529 "..\lex.fsl" + checkExprOp lexbuf; LQUOTE ("<@@ @@>", true) +# 2056 "lex.fs" + ) + | 57 -> ( +# 530 "..\lex.fsl" + checkExprOp lexbuf; RQUOTE ("<@ @>", false) +# 2061 "lex.fs" + ) + | 58 -> ( +# 531 "..\lex.fsl" + checkExprOp lexbuf; RQUOTE ("<@@ @@>", true) +# 2066 "lex.fs" + ) + | 59 -> ( +# 532 "..\lex.fsl" + HASH +# 2071 "lex.fs" + ) + | 60 -> ( +# 533 "..\lex.fsl" + AMP +# 2076 "lex.fs" + ) + | 61 -> ( +# 534 "..\lex.fsl" + AMP_AMP +# 2081 "lex.fs" + ) + | 62 -> ( +# 535 "..\lex.fsl" + BAR_BAR +# 2086 "lex.fs" + ) + | 63 -> ( +# 536 "..\lex.fsl" + QUOTE +# 2091 "lex.fs" + ) + | 64 -> ( +# 537 "..\lex.fsl" + LPAREN +# 2096 "lex.fs" + ) + | 65 -> ( +# 538 "..\lex.fsl" + RPAREN +# 2101 "lex.fs" + ) + | 66 -> ( +# 539 "..\lex.fsl" + STAR +# 2106 "lex.fs" + ) + | 67 -> ( +# 540 "..\lex.fsl" + COMMA +# 2111 "lex.fs" + ) + | 68 -> ( +# 541 "..\lex.fsl" + RARROW +# 2116 "lex.fs" + ) + | 69 -> ( +# 542 "..\lex.fsl" + QMARK +# 2121 "lex.fs" + ) + | 70 -> ( +# 543 "..\lex.fsl" + QMARK_QMARK +# 2126 "lex.fs" + ) + | 71 -> ( +# 544 "..\lex.fsl" + DOT_DOT +# 2131 "lex.fs" + ) + | 72 -> ( +# 545 "..\lex.fsl" + DOT +# 2136 "lex.fs" + ) + | 73 -> ( +# 546 "..\lex.fsl" + COLON +# 2141 "lex.fs" + ) + | 74 -> ( +# 547 "..\lex.fsl" + COLON_COLON +# 2146 "lex.fs" + ) + | 75 -> ( +# 548 "..\lex.fsl" + COLON_GREATER +# 2151 "lex.fs" + ) + | 76 -> ( +# 549 "..\lex.fsl" + RQUOTE_DOT ("<@ @>",false) +# 2156 "lex.fs" + ) + | 77 -> ( +# 550 "..\lex.fsl" + RQUOTE_DOT ("<@@ @@>",true) +# 2161 "lex.fs" + ) + | 78 -> ( +# 551 "..\lex.fsl" + GREATER_BAR_RBRACK +# 2166 "lex.fs" + ) + | 79 -> ( +# 552 "..\lex.fsl" + COLON_QMARK_GREATER +# 2171 "lex.fs" + ) + | 80 -> ( +# 553 "..\lex.fsl" + COLON_QMARK +# 2176 "lex.fs" + ) + | 81 -> ( +# 554 "..\lex.fsl" + COLON_EQUALS +# 2181 "lex.fs" + ) + | 82 -> ( +# 555 "..\lex.fsl" + SEMICOLON_SEMICOLON +# 2186 "lex.fs" + ) + | 83 -> ( +# 556 "..\lex.fsl" + SEMICOLON +# 2191 "lex.fs" + ) + | 84 -> ( +# 557 "..\lex.fsl" + LARROW +# 2196 "lex.fs" + ) + | 85 -> ( +# 558 "..\lex.fsl" + EQUALS +# 2201 "lex.fs" + ) + | 86 -> ( +# 559 "..\lex.fsl" + LBRACK +# 2206 "lex.fs" + ) + | 87 -> ( +# 560 "..\lex.fsl" + LBRACK_BAR +# 2211 "lex.fs" + ) + | 88 -> ( +# 561 "..\lex.fsl" + LESS false +# 2216 "lex.fs" + ) + | 89 -> ( +# 562 "..\lex.fsl" + GREATER false +# 2221 "lex.fs" + ) + | 90 -> ( +# 563 "..\lex.fsl" + LBRACK_LESS +# 2226 "lex.fs" + ) + | 91 -> ( +# 564 "..\lex.fsl" + RBRACK +# 2231 "lex.fs" + ) + | 92 -> ( +# 565 "..\lex.fsl" + BAR_RBRACK +# 2236 "lex.fs" + ) + | 93 -> ( +# 566 "..\lex.fsl" + GREATER_RBRACK +# 2241 "lex.fs" + ) + | 94 -> ( +# 567 "..\lex.fsl" + LBRACE +# 2246 "lex.fs" + ) + | 95 -> ( +# 568 "..\lex.fsl" + BAR +# 2251 "lex.fs" + ) + | 96 -> ( +# 569 "..\lex.fsl" + RBRACE +# 2256 "lex.fs" + ) + | 97 -> ( +# 570 "..\lex.fsl" + DOLLAR +# 2261 "lex.fs" + ) + | 98 -> ( +# 571 "..\lex.fsl" + PERCENT_OP("%") +# 2266 "lex.fs" + ) + | 99 -> ( +# 572 "..\lex.fsl" + PERCENT_OP("%%") +# 2271 "lex.fs" + ) + | 100 -> ( +# 573 "..\lex.fsl" + MINUS +# 2276 "lex.fs" + ) + | 101 -> ( +# 574 "..\lex.fsl" + RESERVED +# 2281 "lex.fs" + ) + | 102 -> ( +# 575 "..\lex.fsl" + RESERVED +# 2286 "lex.fs" + ) + | 103 -> ( +# 576 "..\lex.fsl" + checkExprOp lexbuf; INFIX_STAR_STAR_OP(lexeme lexbuf) +# 2291 "lex.fs" + ) + | 104 -> ( +# 577 "..\lex.fsl" + checkExprOp lexbuf; INFIX_STAR_DIV_MOD_OP(lexeme lexbuf) +# 2296 "lex.fs" + ) + | 105 -> ( +# 578 "..\lex.fsl" + checkExprOp lexbuf; PLUS_MINUS_OP(lexeme lexbuf) +# 2301 "lex.fs" + ) + | 106 -> ( +# 579 "..\lex.fsl" + checkExprOp lexbuf; INFIX_AT_HAT_OP(lexeme lexbuf) +# 2306 "lex.fs" + ) + | 107 -> ( +# 580 "..\lex.fsl" + checkExprOp lexbuf; INFIX_COMPARE_OP(lexeme lexbuf) +# 2311 "lex.fs" + ) + | 108 -> ( +# 581 "..\lex.fsl" + checkExprOp lexbuf; INFIX_AMP_OP(lexeme lexbuf) +# 2316 "lex.fs" + ) + | 109 -> ( +# 582 "..\lex.fsl" + checkExprOp lexbuf; INFIX_BAR_OP(lexeme lexbuf) +# 2321 "lex.fs" + ) + | 110 -> ( +# 583 "..\lex.fsl" + checkExprOp lexbuf; PREFIX_OP(lexeme lexbuf) +# 2326 "lex.fs" + ) + | 111 -> ( +# 585 "..\lex.fsl" + FUNKY_OPERATOR_NAME(lexeme lexbuf) +# 2331 "lex.fs" + ) + | 112 -> ( +# 589 "..\lex.fsl" + if args.lightSyntaxStatus.ExplicitlySet && args.lightSyntaxStatus.WarnOnMultipleTokens then + warning(Error((0,"#light should only occur as the first non-comment text in an F# source file"),lexbuf.LexemeRange)); + // TODO unreachable error above, I think? - brianmcn + args.lightSyntaxStatus.Status <- true; + if not skip then (HASH_LIGHT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 2340 "lex.fs" + ) + | 113 -> ( +# 596 "..\lex.fsl" + args.lightSyntaxStatus.Status <- false; + mlCompatWarning (FSComp.SR.lexIndentOffForML()) lexbuf.LexemeRange; + if not skip then (HASH_LIGHT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 2347 "lex.fs" + ) + | 114 -> ( +# 601 "..\lex.fsl" + let m = lexbuf.LexemeRange + let lexed = lexeme lexbuf + let id = extractIdentFromHashIf lexed + args.ifdefStack := (IfDefIf,m) :: !(args.ifdefStack); + + // Get the token; make sure it starts at zero position & return + let cont, f = + ( if List.mem id args.defines then (LexCont.EndLine(LexerEndlineContinuation.Token(!args.ifdefStack)), endline (LexerEndlineContinuation.Token !args.ifdefStack) args skip) + else (LexCont.EndLine(LexerEndlineContinuation.Skip(!args.ifdefStack,0,m)), endline (LexerEndlineContinuation.Skip(!args.ifdefStack,0,m)) args skip) ) + let tok = shouldStartLine args lexbuf m (FSComp.SR.lexHashIfMustBeFirst()) (HASH_IF(m,lexed,cont)) + if not skip then tok else f lexbuf +# 2362 "lex.fs" + ) + | 115 -> ( +# 614 "..\lex.fsl" + let lexed = (lexeme lexbuf) + match !(args.ifdefStack) with + | [] -> LEX_FAILURE (FSComp.SR.lexHashElseNoMatchingIf()) + | (IfDefElse,_) :: _rest -> LEX_FAILURE (FSComp.SR.lexHashEndifRequiredForElse()) + | (IfDefIf,_) :: rest -> + let m = lexbuf.LexemeRange + args.ifdefStack := (IfDefElse,m) :: rest; + let tok = HASH_ELSE(m,lexed, LexCont.EndLine(LexerEndlineContinuation.Skip(!args.ifdefStack,0,m))) + let tok = shouldStartLine args lexbuf m (FSComp.SR.lexHashElseMustBeFirst()) tok + if not skip then tok else endline (LexerEndlineContinuation.Skip(!args.ifdefStack,0,m)) args skip lexbuf +# 2376 "lex.fs" + ) + | 116 -> ( +# 626 "..\lex.fsl" + let lexed = (lexeme lexbuf) + let m = lexbuf.LexemeRange + match !(args.ifdefStack) with + | []-> LEX_FAILURE (FSComp.SR.lexHashEndingNoMatchingIf()) + | _ :: rest -> + args.ifdefStack := rest; + let tok = HASH_ENDIF(m,lexed,LexCont.EndLine(LexerEndlineContinuation.Token(!args.ifdefStack))) + let tok = shouldStartLine args lexbuf m (FSComp.SR.lexHashEndifMustBeFirst()) tok + if not skip then tok else endline (LexerEndlineContinuation.Token(!args.ifdefStack)) args skip lexbuf +# 2389 "lex.fs" + ) + | 117 -> ( +# 637 "..\lex.fsl" + let tok = fail args lexbuf (FSComp.SR.lexHashIfMustHaveIdent()) (WHITESPACE (LexCont.Token !args.ifdefStack)) + if not skip then tok else token args skip lexbuf +# 2395 "lex.fs" + ) + | 118 -> ( +# 642 "..\lex.fsl" + unexpectedChar lexbuf +# 2400 "lex.fs" + ) + | 119 -> ( +# 644 "..\lex.fsl" + EOF (LexCont.Token !args.ifdefStack) +# 2405 "lex.fs" + ) + | _ -> failwith "token" +(* Rule ifdefSkip *) +and _fslex_ifdefSkip n m args skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 650 "..\lex.fsl" + let m = lexbuf.LexemeRange + let _id = extractIdentFromHashIf (lexeme lexbuf) + + // If #if is the first thing on the line then increase depth, otherwise skip, because it is invalid (e.g. "(**) #if ...") + if (m.StartColumn <> 0) then + if not skip then (INACTIVECODE (LexCont.IfDefSkip(!args.ifdefStack,n,m))) else ifdefSkip n m args skip lexbuf + else + let tok = INACTIVECODE(LexCont.EndLine(LexerEndlineContinuation.Skip(!args.ifdefStack,n+1,m))) + if not skip then tok else endline (LexerEndlineContinuation.Skip(!args.ifdefStack,n+1,m)) args skip lexbuf +# 2422 "lex.fs" + ) + | 1 -> ( +# 661 "..\lex.fsl" + let lexed = (lexeme lexbuf) + let m = lexbuf.LexemeRange + + // If #else is the first thing on the line then process it, otherwise ignore, because it is invalid (e.g. "(**) #else ...") + if (m.StartColumn <> 0) then + if not skip then (INACTIVECODE (LexCont.IfDefSkip(!args.ifdefStack,n,m))) else ifdefSkip n m args skip lexbuf + elif n = 0 then + match !(args.ifdefStack) with + | []-> LEX_FAILURE (FSComp.SR.lexHashElseNoMatchingIf()) + | (IfDefElse,_) :: _rest -> LEX_FAILURE (FSComp.SR.lexHashEndifRequiredForElse()) + | (IfDefIf,_) :: rest -> + let m = lexbuf.LexemeRange + args.ifdefStack := (IfDefElse,m) :: rest; + if not skip then (HASH_ELSE(m,lexed,LexCont.EndLine(LexerEndlineContinuation.Token(!args.ifdefStack)))) else endline (LexerEndlineContinuation.Token(!args.ifdefStack)) args skip lexbuf + else + if not skip then (INACTIVECODE(LexCont.EndLine(LexerEndlineContinuation.Skip(!args.ifdefStack,n,m)))) else endline (LexerEndlineContinuation.Skip(!args.ifdefStack,n,m)) args skip lexbuf +# 2442 "lex.fs" + ) + | 2 -> ( +# 679 "..\lex.fsl" + let lexed = lexeme lexbuf + let m = lexbuf.LexemeRange + + // If #endif is the first thing on the line then process it, otherwise ignore, because it is invalid (e.g. "(**) #endif ...") + if (m.StartColumn <> 0) then + if not skip then (INACTIVECODE (LexCont.IfDefSkip(!args.ifdefStack,n,m))) else ifdefSkip n m args skip lexbuf + elif n = 0 then + match !(args.ifdefStack) with + | [] -> LEX_FAILURE (FSComp.SR.lexHashEndingNoMatchingIf()) + | _ :: rest -> + args.ifdefStack := rest; + if not skip then (HASH_ENDIF(m,lexed,LexCont.EndLine(LexerEndlineContinuation.Token(!args.ifdefStack)))) else endline (LexerEndlineContinuation.Token(!args.ifdefStack)) args skip lexbuf + else + let tok = INACTIVECODE(LexCont.EndLine(LexerEndlineContinuation.Skip(!args.ifdefStack,n-1,m))) + let tok = shouldStartLine args lexbuf m (FSComp.SR.lexWrongNestedHashEndif()) tok + if not skip then tok else endline (LexerEndlineContinuation.Skip(!args.ifdefStack,(n-1),m)) args skip lexbuf +# 2462 "lex.fs" + ) + | 3 -> ( +# 697 "..\lex.fsl" + newline lexbuf; ifdefSkip n m args skip lexbuf +# 2467 "lex.fs" + ) + | 4 -> ( +# 703 "..\lex.fsl" + // This tries to be nice and get tokens as 'words' because VS uses this when selecting stuff + if not skip then (INACTIVECODE (LexCont.IfDefSkip(!args.ifdefStack,n,m))) else ifdefSkip n m args skip lexbuf +# 2473 "lex.fs" + ) + | 5 -> ( +# 706 "..\lex.fsl" + EOF (LexCont.IfDefSkip(!args.ifdefStack,n,m)) +# 2478 "lex.fs" + ) + | _ -> failwith "ifdefSkip" +(* Rule endline *) +and _fslex_endline cont args skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 712 "..\lex.fsl" + newline lexbuf; + match cont with + | LexerEndlineContinuation.Token(ifdefStack) -> if not skip then (WHITESPACE(LexCont.Token ifdefStack)) else token args skip lexbuf + | LexerEndlineContinuation.Skip(ifdefStack, n, m) -> if not skip then (INACTIVECODE (LexCont.IfDefSkip(ifdefStack,n,m))) else ifdefSkip n m args skip lexbuf + +# 2491 "lex.fs" + ) + | 1 -> ( +# 718 "..\lex.fsl" + match cont with + | LexerEndlineContinuation.Token(ifdefStack) -> (EOF(LexCont.Token ifdefStack)) + | LexerEndlineContinuation.Skip(ifdefStack, n, m) -> (EOF(LexCont.IfDefSkip(ifdefStack,n,m))) + +# 2499 "lex.fs" + ) + | 2 -> ( +# 724 "..\lex.fsl" + let tok = fail args lexbuf (FSComp.SR.lexExpectedSingleLineComment()) (WHITESPACE (LexCont.Token !args.ifdefStack)) + if not skip then tok else token args skip lexbuf +# 2505 "lex.fs" + ) + | _ -> failwith "endline" +(* Rule string *) +and _fslex_string sargs skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 729 "..\lex.fsl" + let (_buf,_fin,m,args) = sargs + newline lexbuf; + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2516 "lex.fs" + ) + | 1 -> ( +# 734 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addByteChar buf (escape (lexeme lexbuf).[1]); + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2523 "lex.fs" + ) + | 2 -> ( +# 739 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + let s = lexeme lexbuf + addByteChar buf (trigraph s.[1] s.[2] s.[3]); + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2531 "lex.fs" + ) + | 3 -> ( +# 745 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeChar buf (int (hexGraphShort (lexemeTrimLeft lexbuf 2))); + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2538 "lex.fs" + ) + | 4 -> ( +# 750 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeChar buf (int (unicodeGraphShort (lexemeTrimLeft lexbuf 2))); + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2545 "lex.fs" + ) + | 5 -> ( +# 755 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + let hi,lo = unicodeGraphLong (lexemeTrimLeft lexbuf 2) + (match hi with | None -> () | Some c -> addUnicodeChar buf (int c)); + addUnicodeChar buf (int lo); + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2554 "lex.fs" + ) + | 6 -> ( +# 762 "..\lex.fsl" + let (buf,fin,_m,_args) = sargs + let m2 = lexbuf.LexemeRange + callStringFinisher fin buf m2 false +# 2561 "lex.fs" + ) + | 7 -> ( +# 767 "..\lex.fsl" + let (buf,fin,_m,_args) = sargs + let m2 = lexbuf.LexemeRange + callStringFinisher fin buf m2 true +# 2568 "lex.fs" + ) + | 8 -> ( +# 772 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + newline lexbuf; + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2576 "lex.fs" + ) + | 9 -> ( +# 778 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2583 "lex.fs" + ) + | 10 -> ( +# 784 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2590 "lex.fs" + ) + | 11 -> ( +# 789 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2597 "lex.fs" + ) + | 12 -> ( +# 794 "..\lex.fsl" + let (_buf,_fin,m,args) = sargs + EOF (LexCont.String(!args.ifdefStack,m)) +# 2603 "lex.fs" + ) + | 13 -> ( +# 798 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2610 "lex.fs" + ) + | _ -> failwith "string" +(* Rule verbatimString *) +and _fslex_verbatimString sargs skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 804 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addByteChar buf '\"'; + if not skip then (STRING_TEXT (LexCont.VerbatimString(!args.ifdefStack,m))) else verbatimString sargs skip lexbuf +# 2621 "lex.fs" + ) + | 1 -> ( +# 809 "..\lex.fsl" + let (buf,fin,_m,_args) = sargs + let m2 = lexbuf.LexemeRange + callStringFinisher fin buf m2 false +# 2628 "lex.fs" + ) + | 2 -> ( +# 814 "..\lex.fsl" + let (buf,fin,_m,_args) = sargs + let m2 = lexbuf.LexemeRange + callStringFinisher fin buf m2 true +# 2635 "lex.fs" + ) + | 3 -> ( +# 819 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + newline lexbuf; + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.VerbatimString(!args.ifdefStack,m))) else verbatimString sargs skip lexbuf +# 2643 "lex.fs" + ) + | 4 -> ( +# 825 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.VerbatimString(!args.ifdefStack,m))) else verbatimString sargs skip lexbuf +# 2650 "lex.fs" + ) + | 5 -> ( +# 831 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.VerbatimString(!args.ifdefStack,m))) else verbatimString sargs skip lexbuf +# 2657 "lex.fs" + ) + | 6 -> ( +# 836 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.VerbatimString(!args.ifdefStack,m))) else verbatimString sargs skip lexbuf +# 2664 "lex.fs" + ) + | 7 -> ( +# 841 "..\lex.fsl" + let (_buf,_fin,m,args) = sargs + EOF (LexCont.VerbatimString(!args.ifdefStack,m)) +# 2670 "lex.fs" + ) + | 8 -> ( +# 845 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.VerbatimString(!args.ifdefStack,m))) else verbatimString sargs skip lexbuf +# 2677 "lex.fs" + ) + | _ -> failwith "verbatimString" +(* Rule tripleQuoteString *) +and _fslex_tripleQuoteString sargs skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 851 "..\lex.fsl" + let (buf,fin,_m,_args) = sargs + let m2 = lexbuf.LexemeRange + callStringFinisher fin buf m2 false +# 2688 "lex.fs" + ) + | 1 -> ( +# 856 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + newline lexbuf; + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.TripleQuoteString(!args.ifdefStack,m))) else tripleQuoteString sargs skip lexbuf +# 2696 "lex.fs" + ) + | 2 -> ( +# 863 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.TripleQuoteString(!args.ifdefStack,m))) else tripleQuoteString sargs skip lexbuf +# 2703 "lex.fs" + ) + | 3 -> ( +# 869 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.TripleQuoteString(!args.ifdefStack,m))) else tripleQuoteString sargs skip lexbuf +# 2710 "lex.fs" + ) + | 4 -> ( +# 874 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.TripleQuoteString(!args.ifdefStack,m))) else tripleQuoteString sargs skip lexbuf +# 2717 "lex.fs" + ) + | 5 -> ( +# 879 "..\lex.fsl" + let (_buf,_fin,m,args) = sargs + EOF (LexCont.TripleQuoteString(!args.ifdefStack,m)) +# 2723 "lex.fs" + ) + | 6 -> ( +# 883 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.TripleQuoteString(!args.ifdefStack,m))) else tripleQuoteString sargs skip lexbuf +# 2730 "lex.fs" + ) + | _ -> failwith "tripleQuoteString" +(* Rule singleLineComment *) +and _fslex_singleLineComment cargs skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 890 "..\lex.fsl" + let buff,_n,_m,args = cargs + trySaveXmlDoc lexbuf buff; + newline lexbuf; + // Saves the documentation (if we're collecting any) into a buffer-local variable. + if not skip then (LINE_COMMENT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 2743 "lex.fs" + ) + | 1 -> ( +# 897 "..\lex.fsl" + let _, _n,_m,args = cargs + // NOTE: it is legal to end a file with this comment, so we'll return EOF as a token + EOF (LexCont.Token !args.ifdefStack) +# 2750 "lex.fs" + ) + | 2 -> ( +# 903 "..\lex.fsl" + let buff,n,m,args = cargs + // Append the current token to the XML documentation if we're collecting it + tryAppendXmlDoc buff (lexeme lexbuf); + if not skip then (LINE_COMMENT (LexCont.SingleLineComment(!args.ifdefStack,n,m))) else singleLineComment (buff,n,m,args) skip lexbuf +# 2758 "lex.fs" + ) + | 3 -> ( +# 909 "..\lex.fsl" + let _, _n,_m,args = cargs + if not skip then (LINE_COMMENT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 2764 "lex.fs" + ) + | _ -> failwith "singleLineComment" +(* Rule comment *) +and _fslex_comment cargs skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 915 "..\lex.fsl" + let n,m,args = cargs + if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,n,m))) else comment (n,m,args) skip lexbuf +# 2774 "lex.fs" + ) + | 1 -> ( +# 919 "..\lex.fsl" + let n,m,args = cargs + if not skip then (COMMENT (LexCont.StringInComment(!args.ifdefStack,n,m))) else stringInComment n m args skip lexbuf +# 2780 "lex.fs" + ) + | 2 -> ( +# 923 "..\lex.fsl" + let n,m,args = cargs + if not skip then (COMMENT (LexCont.TripleQuoteStringInComment(!args.ifdefStack,n,m))) else tripleQuoteStringInComment n m args skip lexbuf +# 2786 "lex.fs" + ) + | 3 -> ( +# 927 "..\lex.fsl" + let n,m,args = cargs + if not skip then (COMMENT (LexCont.VerbatimStringInComment(!args.ifdefStack,n,m))) else verbatimStringInComment n m args skip lexbuf +# 2792 "lex.fs" + ) + | 4 -> ( +# 931 "..\lex.fsl" + let n,m,args = cargs + if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,n,m))) else comment cargs skip lexbuf +# 2798 "lex.fs" + ) + | 5 -> ( +# 935 "..\lex.fsl" + let n,m,args = cargs + if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,n+1,m))) else comment (n+1,m,args) skip lexbuf +# 2804 "lex.fs" + ) + | 6 -> ( +# 939 "..\lex.fsl" + let n,m,args = cargs + newline lexbuf; + if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,n,m))) else comment cargs skip lexbuf +# 2811 "lex.fs" + ) + | 7 -> ( +# 943 "..\lex.fsl" + + let n,m,args = cargs + if n > 1 then if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,n-1,m))) else comment (n-1,m,args) skip lexbuf + else if not skip then (COMMENT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 2819 "lex.fs" + ) + | 8 -> ( +# 950 "..\lex.fsl" + let n,m,args = cargs + if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,n,m))) else comment cargs skip lexbuf +# 2825 "lex.fs" + ) + | 9 -> ( +# 954 "..\lex.fsl" + let n,m,args = cargs + EOF (LexCont.Comment(!args.ifdefStack,n,m)) +# 2831 "lex.fs" + ) + | 10 -> ( +# 958 "..\lex.fsl" + let n,m,args = cargs + if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,n,m))) else comment (n,m,args) skip lexbuf +# 2837 "lex.fs" + ) + | _ -> failwith "comment" +(* Rule stringInComment *) +and _fslex_stringInComment n m args skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 964 "..\lex.fsl" + newline lexbuf; + if not skip then (COMMENT (LexCont.StringInComment(!args.ifdefStack,n,m))) else stringInComment n m args skip lexbuf +# 2847 "lex.fs" + ) + | 1 -> ( +# 976 "..\lex.fsl" + if not skip then (COMMENT (LexCont.StringInComment(!args.ifdefStack,n,m))) else stringInComment n m args skip lexbuf +# 2852 "lex.fs" + ) + | 2 -> ( +# 980 "..\lex.fsl" + if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,n,m))) else comment (n,m,args) skip lexbuf +# 2857 "lex.fs" + ) + | 3 -> ( +# 983 "..\lex.fsl" + newline lexbuf; + if not skip then (COMMENT (LexCont.StringInComment(!args.ifdefStack,n,m))) else stringInComment n m args skip lexbuf +# 2863 "lex.fs" + ) + | 4 -> ( +# 987 "..\lex.fsl" + EOF (LexCont.StringInComment(!args.ifdefStack,n,m)) +# 2868 "lex.fs" + ) + | 5 -> ( +# 991 "..\lex.fsl" + if not skip then (COMMENT (LexCont.StringInComment(!args.ifdefStack,n,m))) else stringInComment n m args skip lexbuf +# 2873 "lex.fs" + ) + | _ -> failwith "stringInComment" +(* Rule verbatimStringInComment *) +and _fslex_verbatimStringInComment n m args skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 996 "..\lex.fsl" + if not skip then (COMMENT (LexCont.VerbatimStringInComment(!args.ifdefStack,n,m))) else verbatimStringInComment n m args skip lexbuf +# 2882 "lex.fs" + ) + | 1 -> ( +# 999 "..\lex.fsl" + if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,n,m))) else comment (n,m,args) skip lexbuf +# 2887 "lex.fs" + ) + | 2 -> ( +# 1005 "..\lex.fsl" + if not skip then (COMMENT (LexCont.VerbatimStringInComment(!args.ifdefStack,n,m))) else verbatimStringInComment n m args skip lexbuf +# 2892 "lex.fs" + ) + | 3 -> ( +# 1008 "..\lex.fsl" + newline lexbuf; + if not skip then (COMMENT (LexCont.VerbatimStringInComment(!args.ifdefStack,n,m))) else verbatimStringInComment n m args skip lexbuf +# 2898 "lex.fs" + ) + | 4 -> ( +# 1012 "..\lex.fsl" + EOF (LexCont.VerbatimStringInComment(!args.ifdefStack,n,m)) +# 2903 "lex.fs" + ) + | 5 -> ( +# 1016 "..\lex.fsl" + if not skip then (COMMENT (LexCont.VerbatimStringInComment(!args.ifdefStack,n,m))) else verbatimStringInComment n m args skip lexbuf +# 2908 "lex.fs" + ) + | _ -> failwith "verbatimStringInComment" +(* Rule tripleQuoteStringInComment *) +and _fslex_tripleQuoteStringInComment n m args skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 1021 "..\lex.fsl" + if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,n,m))) else comment (n,m,args) skip lexbuf +# 2917 "lex.fs" + ) + | 1 -> ( +# 1027 "..\lex.fsl" + if not skip then (COMMENT (LexCont.TripleQuoteStringInComment(!args.ifdefStack,n,m))) else tripleQuoteStringInComment n m args skip lexbuf +# 2922 "lex.fs" + ) + | 2 -> ( +# 1030 "..\lex.fsl" + newline lexbuf; + if not skip then (COMMENT (LexCont.TripleQuoteStringInComment(!args.ifdefStack,n,m))) else tripleQuoteStringInComment n m args skip lexbuf +# 2928 "lex.fs" + ) + | 3 -> ( +# 1034 "..\lex.fsl" + EOF (LexCont.TripleQuoteStringInComment(!args.ifdefStack,n,m)) +# 2933 "lex.fs" + ) + | 4 -> ( +# 1038 "..\lex.fsl" + if not skip then (COMMENT (LexCont.TripleQuoteStringInComment(!args.ifdefStack,n,m))) else tripleQuoteStringInComment n m args skip lexbuf +# 2938 "lex.fs" + ) + | _ -> failwith "tripleQuoteStringInComment" +(* Rule mlOnly *) +and _fslex_mlOnly m args skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 1043 "..\lex.fsl" + let buf = ByteBuffer.Create 100 + let m2 = lexbuf.LexemeRange + let _ = string (buf,defaultStringFinisher,m2,args) skip lexbuf + if not skip then (COMMENT (LexCont.MLOnly(!args.ifdefStack,m))) else mlOnly m args skip lexbuf +# 2950 "lex.fs" + ) + | 1 -> ( +# 1048 "..\lex.fsl" + newline lexbuf; if not skip then (COMMENT (LexCont.MLOnly(!args.ifdefStack,m))) else mlOnly m args skip lexbuf +# 2955 "lex.fs" + ) + | 2 -> ( +# 1050 "..\lex.fsl" + if not skip then (COMMENT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 2960 "lex.fs" + ) + | 3 -> ( +# 1052 "..\lex.fsl" + if not skip then (COMMENT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 2965 "lex.fs" + ) + | 4 -> ( +# 1054 "..\lex.fsl" + if not skip then (COMMENT (LexCont.MLOnly(!args.ifdefStack,m))) else mlOnly m args skip lexbuf +# 2970 "lex.fs" + ) + | 5 -> ( +# 1056 "..\lex.fsl" + EOF (LexCont.MLOnly(!args.ifdefStack,m)) +# 2975 "lex.fs" + ) + | 6 -> ( +# 1059 "..\lex.fsl" + if not skip then (COMMENT (LexCont.MLOnly(!args.ifdefStack,m))) else mlOnly m args skip lexbuf +# 2980 "lex.fs" + ) + | _ -> failwith "mlOnly" + +# 1060 "..\lex.fsl" + +# 3000000 "lex.fs" diff --git a/src/fsharp/FSharp.AbsIL/pars.fs b/src/fsharp/FSharp.AbsIL/pars.fs new file mode 100644 index 0000000..59bf646 --- /dev/null +++ b/src/fsharp/FSharp.AbsIL/pars.fs @@ -0,0 +1,15742 @@ +// Implementation file for parser generated by fsyacc +module internal Microsoft.FSharp.Compiler.Parser +#nowarn "64";; // turn off warnings that type variables used in production annotations are instantiated to concrete type +open Microsoft.FSharp.Compiler +open Internal.Utilities.Text.Lexing +open Internal.Utilities.Text.Parsing.ParseHelpers +# 1 "..\pars.fsy" + +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +#nowarn "1182" // generated code has lots of unused "parseState" + +open Internal.Utilities + +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library +open Microsoft.FSharp.Compiler +open Internal.Utilities.Text.Parsing + +open System +open Microsoft.FSharp.Compiler.Range +open Microsoft.FSharp.Compiler.Ast +open Microsoft.FSharp.Compiler.Lib +open Microsoft.FSharp.Compiler.PrettyNaming +open Microsoft.FSharp.Compiler.ErrorLogger + +#if DEBUG +let debugPrint(s) = + if Internal.Utilities.Text.Parsing.Flags.debug then + printfn "\n%s" s +#else +let debugPrint(s) = ignore s +#endif + +let exprFromParseError (e:SynExpr) = SynExpr.FromParseError(e,e.Range) +let patFromParseError (e:SynPat) = SynPat.FromParseError(e, e.Range) + +let mkSynOptionalExpr m xopt = + match xopt with + | None -> mkSynLidGet m Ast.FSharpLib.CorePath "None" + | Some x -> SynExpr.App(ExprAtomicFlag.NonAtomic, false, mkSynLidGet m Ast.FSharpLib.CorePath "Some",x,m) + +// record bindings returned by the recdExprBindings rule has shape: +// (binding, separator-before-this-binding) +// this function converts arguments from form +// binding1 (binding2*sep1, binding3*sep2...) sepN +// to form +// binding1*sep1, binding2*sep2 +let rebindRanges first fields lastSep = + let rec run (name, value) l acc = + match l with + | [] -> List.rev ((name, value, lastSep)::acc) + | (f, m)::xs -> run f xs ((name, value, m)::acc) + run first fields [] + +let mkUnderscoreRecdField m = LongIdentWithDots([ident("_", m)], []), false +let mkRecdField lidwd = lidwd, true + +let mkSynDoBinding (vis,strict,expr,m) = + if isSome vis then errorR(Error(FSComp.SR.parsDoCannotHaveVisibilityDeclarations(),m)); + Binding (None, + (if strict then DoBinding else StandaloneExpression), + false,false,[],PreXmlDoc.Empty,SynInfo.emptySynValData, + (if strict then SynPat.Const(SynConst.Unit,m) else SynPat.Wild m), + None,expr,m,NoSequencePointAtDoBinding) + +let mkSynDoDecl (e: SynExpr) = + let spExpr = if IsControlFlowExpression e then NoSequencePointAtDoBinding else SequencePointAtBinding e.Range in + SynModuleDecl.DoExpr(spExpr, e, e.Range) + +let addAttribs attrs p = SynPat.Attrib(p,attrs,p.Range) + + +// This function is called by the generated parser code. Returning initiates error recovery +// It must be called precisely "parse_error_rich" +let parse_error_rich = Some (fun (ctxt: ParseErrorContext<_>) -> + errorR(SyntaxError(box ctxt, ctxt.ParseState.LexBuffer.LexemeRange))) + +let reportParseErrorAt m s = errorR(Error(s,m)) + +let unionRangeWithPos (r:range) p = + let r2 = mkRange r.FileName p p + unionRanges r r2 + +let raiseParseErrorAt m s = + reportParseErrorAt m s; + // This initiates error recovery + raise RecoverableParseError + +let checkEndOfFileError t = + match t with + | LexCont.IfDefSkip(_,_,m) -> reportParseErrorAt m (FSComp.SR.parsEofInHashIf()) + | LexCont.String (_,m) -> reportParseErrorAt m (FSComp.SR.parsEofInString()) + | LexCont.TripleQuoteString (_,m) -> reportParseErrorAt m (FSComp.SR.parsEofInTripleQuoteString()) + | LexCont.VerbatimString (_,m) -> reportParseErrorAt m (FSComp.SR.parsEofInVerbatimString()) + | LexCont.Comment (_,_,m) -> reportParseErrorAt m (FSComp.SR.parsEofInComment()) + | LexCont.SingleLineComment (_,_,m) -> reportParseErrorAt m (FSComp.SR.parsEofInComment()) + | LexCont.StringInComment (_,_,m) -> reportParseErrorAt m (FSComp.SR.parsEofInStringInComment()) + | LexCont.VerbatimStringInComment (_,_,m) -> reportParseErrorAt m (FSComp.SR.parsEofInVerbatimStringInComment()) + | LexCont.TripleQuoteStringInComment (_,_,m) -> reportParseErrorAt m (FSComp.SR.parsEofInTripleQuoteStringInComment()) + | LexCont.MLOnly (_,m) -> reportParseErrorAt m (FSComp.SR.parsEofInIfOcaml()) + | LexCont.EndLine(LexerEndlineContinuation.Skip(_,_,m)) -> reportParseErrorAt m (FSComp.SR.parsEofInDirective()) + | LexCont.EndLine(LexerEndlineContinuation.Token(stack)) + | LexCont.Token(stack) -> + match stack with + | [] -> () + | (_,m) :: _ -> reportParseErrorAt m (FSComp.SR.parsNoHashEndIfFound()) + +// BindingSetPreAttrs(letRange, isRec, isUse, builderFunction, wholeRange) +type BindingSet = BindingSetPreAttrs of range * bool * bool * (SynAttributes -> SynAccess option -> SynAttributes * SynBinding list) * range + +let mkClassMemberLocalBindings(isStatic,initialRangeOpt,attrs,vis,BindingSetPreAttrs(_,isRec,isUse,declsPreAttrs,bindingSetRange)) = + let ignoredFreeAttrs,decls = declsPreAttrs attrs vis + let wholeRange = + match initialRangeOpt with + | None -> bindingSetRange + | Some m -> unionRanges m bindingSetRange + if nonNil ignoredFreeAttrs then warning(Error(FSComp.SR.parsAttributesIgnored(),wholeRange)); + if isUse then errorR(Error(FSComp.SR.parsUseBindingsIllegalInImplicitClassConstructors(),wholeRange)); + SynMemberDefn.LetBindings (decls,isStatic,isRec,wholeRange) + +let mkLocalBindings (mWhole,BindingSetPreAttrs(_,isRec,isUse,declsPreAttrs,_),body) = + let ignoredFreeAttrs,decls = declsPreAttrs [] None + if nonNil ignoredFreeAttrs then warning(Error(FSComp.SR.parsAttributesIgnored(),mWhole)); + SynExpr.LetOrUse (isRec,isUse,decls,body,mWhole) + +let mkDefnBindings (mWhole,BindingSetPreAttrs(_,isRec,isUse,declsPreAttrs,_bindingSetRange),attrs,vis,attrsm) = + if isUse then warning(Error(FSComp.SR.parsUseBindingsIllegalInModules(),mWhole)); + let freeAttrs,decls = declsPreAttrs attrs vis + let letDecls = [ SynModuleDecl.Let (isRec,decls,mWhole) ] + let attrDecls = if nonNil freeAttrs then [ SynModuleDecl.Attributes (freeAttrs,attrsm) ] else [] + attrDecls @ letDecls + +let idOfPat m p = + match p with + | SynPat.Named (SynPat.Wild _,id,false,_,_) -> id + | SynPat.LongIdent(LongIdentWithDots([id],_),_,_,_,_,_) -> id + | _ -> raiseParseErrorAt m (FSComp.SR.parsIntegerForLoopRequiresSimpleIdentifier()) + +let checkForMultipleAugmentations m a1 a2 = + if nonNil a1 && nonNil a2 then raiseParseErrorAt m (FSComp.SR.parsOnlyOneWithAugmentationAllowed()); + a1 @ a2 + +let grabXmlDoc(parseState:IParseState,elemIdx) = + LexbufLocalXmlDocStore.GrabXmlDocBeforeMarker(parseState.LexBuffer,rhs parseState elemIdx) + +let unionRangeWithListBy projectRangeFromThing m listOfThing = + (m, listOfThing) ||> List.fold (fun m thing -> unionRanges m (projectRangeFromThing thing)) + +let rangeOfNonNilAttrs(attrs:SynAttributes) = + (attrs.Head.Range,attrs.Tail) ||> unionRangeWithListBy (fun a -> a.Range) + +let rangeOfLongIdent(lid:LongIdent) = + System.Diagnostics.Debug.Assert(not lid.IsEmpty, "the parser should never produce a long-id that is the empty list") + (lid.Head.idRange,lid) ||> unionRangeWithListBy (fun id -> id.idRange) + + +# 169 "pars.fs" +// This type is the type of tokens accepted by the parser +type token = + | HASH_IF of (range * string * Ast.LexerWhitespaceContinuation) + | HASH_ELSE of (range * string * Ast.LexerWhitespaceContinuation) + | HASH_ENDIF of (range * string * Ast.LexerWhitespaceContinuation) + | COMMENT of (Ast.LexerWhitespaceContinuation) + | WHITESPACE of (Ast.LexerWhitespaceContinuation) + | HASH_LINE of (Ast.LexerWhitespaceContinuation) + | HASH_LIGHT of (Ast.LexerWhitespaceContinuation) + | INACTIVECODE of (Ast.LexerWhitespaceContinuation) + | LINE_COMMENT of (Ast.LexerWhitespaceContinuation) + | STRING_TEXT of (Ast.LexerWhitespaceContinuation) + | EOF of (Ast.LexerWhitespaceContinuation) + | LEX_FAILURE of (string) + | ODUMMY of (token) + | OINTERFACE_MEMBER + | OBLOCKEND + | OBLOCKEND_COMING_SOON + | OBLOCKEND_IS_HERE + | ORIGHT_BLOCK_END + | ODECLEND + | OEND + | OBLOCKSEP + | OBLOCKBEGIN + | ORESET + | OFUN + | OFUNCTION + | OWITH + | OELSE + | OTHEN + | ODO_BANG + | ODO + | OBINDER of (string) + | OLET of (bool) + | HIGH_PRECEDENCE_TYAPP + | HIGH_PRECEDENCE_PAREN_APP + | HIGH_PRECEDENCE_BRACK_APP + | TYPE_COMING_SOON + | TYPE_IS_HERE + | MODULE_COMING_SOON + | MODULE_IS_HERE + | EXTERN + | VOID + | PUBLIC + | PRIVATE + | INTERNAL + | GLOBAL + | STATIC + | MEMBER + | CLASS + | ABSTRACT + | OVERRIDE + | DEFAULT + | CONSTRUCTOR + | INHERIT + | GREATER_RBRACK + | STRUCT + | SIG + | BAR + | RBRACK + | RBRACE + | RBRACE_COMING_SOON + | RBRACE_IS_HERE + | MINUS + | DOLLAR + | LBRACE_LESS + | BAR_RBRACK + | GREATER_RBRACE + | UNDERSCORE + | SEMICOLON_SEMICOLON + | LARROW + | EQUALS + | LBRACK + | LBRACK_BAR + | LBRACK_LESS + | LBRACE + | QMARK + | QMARK_QMARK + | DOT + | COLON + | COLON_COLON + | COLON_GREATER + | COLON_QMARK_GREATER + | COLON_QMARK + | COLON_EQUALS + | SEMICOLON + | WHEN + | WHILE + | WITH + | HASH + | AMP + | AMP_AMP + | QUOTE + | LPAREN + | RPAREN + | RPAREN_COMING_SOON + | RPAREN_IS_HERE + | STAR + | COMMA + | RARROW + | GREATER_BAR_RBRACK + | LPAREN_STAR_RPAREN + | OPEN + | OR + | REC + | THEN + | TO + | TRUE + | TRY + | TYPE + | VAL + | INLINE + | INTERFACE + | INSTANCE + | CONST + | LAZY + | OLAZY + | MATCH + | MUTABLE + | NEW + | OF + | EXCEPTION + | FALSE + | FOR + | FUN + | FUNCTION + | IF + | IN + | JOIN_IN + | FINALLY + | DO_BANG + | AND + | AS + | ASSERT + | OASSERT + | ASR + | BEGIN + | DO + | DONE + | DOWNTO + | ELSE + | ELIF + | END + | DOT_DOT + | BAR_BAR + | UPCAST + | DOWNCAST + | NULL + | RESERVED + | MODULE + | NAMESPACE + | DELEGATE + | CONSTRAINT + | BASE + | LQUOTE of (string * bool) + | RQUOTE of (string * bool) + | RQUOTE_DOT of (string * bool) + | PERCENT_OP of (string) + | BINDER of (string) + | LESS of (bool) + | GREATER of (bool) + | LET of (bool) + | YIELD of (bool) + | YIELD_BANG of (bool) + | BIGNUM of ((string * string)) + | DECIMAL of (System.Decimal) + | CHAR of (char) + | IEEE64 of (double) + | IEEE32 of (single) + | NATIVEINT of (int64) + | UNATIVEINT of (uint64) + | UINT64 of (uint64) + | UINT32 of (uint32) + | UINT16 of (uint16) + | UINT8 of (byte) + | INT64 of (int64 * bool) + | INT32 of (int32 * bool) + | INT32_DOT_DOT of (int32 * bool) + | INT16 of (int16 * bool) + | INT8 of (sbyte * bool) + | FUNKY_OPERATOR_NAME of (string) + | ADJACENT_PREFIX_OP of (string) + | PLUS_MINUS_OP of (string) + | INFIX_AMP_OP of (string) + | INFIX_STAR_DIV_MOD_OP of (string) + | PREFIX_OP of (string) + | INFIX_BAR_OP of (string) + | INFIX_AT_HAT_OP of (string) + | INFIX_COMPARE_OP of (string) + | INFIX_STAR_STAR_OP of (string) + | IDENT of (string) + | KEYWORD_STRING of (string) + | STRING of (string) + | BYTEARRAY of (byte[]) +// This type is used to give symbolic names to token indexes, useful for error messages +type tokenId = + | TOKEN_HASH_IF + | TOKEN_HASH_ELSE + | TOKEN_HASH_ENDIF + | TOKEN_COMMENT + | TOKEN_WHITESPACE + | TOKEN_HASH_LINE + | TOKEN_HASH_LIGHT + | TOKEN_INACTIVECODE + | TOKEN_LINE_COMMENT + | TOKEN_STRING_TEXT + | TOKEN_EOF + | TOKEN_LEX_FAILURE + | TOKEN_ODUMMY + | TOKEN_OINTERFACE_MEMBER + | TOKEN_OBLOCKEND + | TOKEN_OBLOCKEND_COMING_SOON + | TOKEN_OBLOCKEND_IS_HERE + | TOKEN_ORIGHT_BLOCK_END + | TOKEN_ODECLEND + | TOKEN_OEND + | TOKEN_OBLOCKSEP + | TOKEN_OBLOCKBEGIN + | TOKEN_ORESET + | TOKEN_OFUN + | TOKEN_OFUNCTION + | TOKEN_OWITH + | TOKEN_OELSE + | TOKEN_OTHEN + | TOKEN_ODO_BANG + | TOKEN_ODO + | TOKEN_OBINDER + | TOKEN_OLET + | TOKEN_HIGH_PRECEDENCE_TYAPP + | TOKEN_HIGH_PRECEDENCE_PAREN_APP + | TOKEN_HIGH_PRECEDENCE_BRACK_APP + | TOKEN_TYPE_COMING_SOON + | TOKEN_TYPE_IS_HERE + | TOKEN_MODULE_COMING_SOON + | TOKEN_MODULE_IS_HERE + | TOKEN_EXTERN + | TOKEN_VOID + | TOKEN_PUBLIC + | TOKEN_PRIVATE + | TOKEN_INTERNAL + | TOKEN_GLOBAL + | TOKEN_STATIC + | TOKEN_MEMBER + | TOKEN_CLASS + | TOKEN_ABSTRACT + | TOKEN_OVERRIDE + | TOKEN_DEFAULT + | TOKEN_CONSTRUCTOR + | TOKEN_INHERIT + | TOKEN_GREATER_RBRACK + | TOKEN_STRUCT + | TOKEN_SIG + | TOKEN_BAR + | TOKEN_RBRACK + | TOKEN_RBRACE + | TOKEN_RBRACE_COMING_SOON + | TOKEN_RBRACE_IS_HERE + | TOKEN_MINUS + | TOKEN_DOLLAR + | TOKEN_LBRACE_LESS + | TOKEN_BAR_RBRACK + | TOKEN_GREATER_RBRACE + | TOKEN_UNDERSCORE + | TOKEN_SEMICOLON_SEMICOLON + | TOKEN_LARROW + | TOKEN_EQUALS + | TOKEN_LBRACK + | TOKEN_LBRACK_BAR + | TOKEN_LBRACK_LESS + | TOKEN_LBRACE + | TOKEN_QMARK + | TOKEN_QMARK_QMARK + | TOKEN_DOT + | TOKEN_COLON + | TOKEN_COLON_COLON + | TOKEN_COLON_GREATER + | TOKEN_COLON_QMARK_GREATER + | TOKEN_COLON_QMARK + | TOKEN_COLON_EQUALS + | TOKEN_SEMICOLON + | TOKEN_WHEN + | TOKEN_WHILE + | TOKEN_WITH + | TOKEN_HASH + | TOKEN_AMP + | TOKEN_AMP_AMP + | TOKEN_QUOTE + | TOKEN_LPAREN + | TOKEN_RPAREN + | TOKEN_RPAREN_COMING_SOON + | TOKEN_RPAREN_IS_HERE + | TOKEN_STAR + | TOKEN_COMMA + | TOKEN_RARROW + | TOKEN_GREATER_BAR_RBRACK + | TOKEN_LPAREN_STAR_RPAREN + | TOKEN_OPEN + | TOKEN_OR + | TOKEN_REC + | TOKEN_THEN + | TOKEN_TO + | TOKEN_TRUE + | TOKEN_TRY + | TOKEN_TYPE + | TOKEN_VAL + | TOKEN_INLINE + | TOKEN_INTERFACE + | TOKEN_INSTANCE + | TOKEN_CONST + | TOKEN_LAZY + | TOKEN_OLAZY + | TOKEN_MATCH + | TOKEN_MUTABLE + | TOKEN_NEW + | TOKEN_OF + | TOKEN_EXCEPTION + | TOKEN_FALSE + | TOKEN_FOR + | TOKEN_FUN + | TOKEN_FUNCTION + | TOKEN_IF + | TOKEN_IN + | TOKEN_JOIN_IN + | TOKEN_FINALLY + | TOKEN_DO_BANG + | TOKEN_AND + | TOKEN_AS + | TOKEN_ASSERT + | TOKEN_OASSERT + | TOKEN_ASR + | TOKEN_BEGIN + | TOKEN_DO + | TOKEN_DONE + | TOKEN_DOWNTO + | TOKEN_ELSE + | TOKEN_ELIF + | TOKEN_END + | TOKEN_DOT_DOT + | TOKEN_BAR_BAR + | TOKEN_UPCAST + | TOKEN_DOWNCAST + | TOKEN_NULL + | TOKEN_RESERVED + | TOKEN_MODULE + | TOKEN_NAMESPACE + | TOKEN_DELEGATE + | TOKEN_CONSTRAINT + | TOKEN_BASE + | TOKEN_LQUOTE + | TOKEN_RQUOTE + | TOKEN_RQUOTE_DOT + | TOKEN_PERCENT_OP + | TOKEN_BINDER + | TOKEN_LESS + | TOKEN_GREATER + | TOKEN_LET + | TOKEN_YIELD + | TOKEN_YIELD_BANG + | TOKEN_BIGNUM + | TOKEN_DECIMAL + | TOKEN_CHAR + | TOKEN_IEEE64 + | TOKEN_IEEE32 + | TOKEN_NATIVEINT + | TOKEN_UNATIVEINT + | TOKEN_UINT64 + | TOKEN_UINT32 + | TOKEN_UINT16 + | TOKEN_UINT8 + | TOKEN_INT64 + | TOKEN_INT32 + | TOKEN_INT32_DOT_DOT + | TOKEN_INT16 + | TOKEN_INT8 + | TOKEN_FUNKY_OPERATOR_NAME + | TOKEN_ADJACENT_PREFIX_OP + | TOKEN_PLUS_MINUS_OP + | TOKEN_INFIX_AMP_OP + | TOKEN_INFIX_STAR_DIV_MOD_OP + | TOKEN_PREFIX_OP + | TOKEN_INFIX_BAR_OP + | TOKEN_INFIX_AT_HAT_OP + | TOKEN_INFIX_COMPARE_OP + | TOKEN_INFIX_STAR_STAR_OP + | TOKEN_IDENT + | TOKEN_KEYWORD_STRING + | TOKEN_STRING + | TOKEN_BYTEARRAY + | TOKEN_end_of_input + | TOKEN_error +// This type is used to give symbolic names to token indexes, useful for error messages +type nonTerminalId = + | NONTERM__startsignatureFile + | NONTERM__startimplementationFile + | NONTERM__startinteraction + | NONTERM_interaction + | NONTERM_hashDirective + | NONTERM_stringOrKeywordString + | NONTERM_hashDirectiveArg + | NONTERM_hashDirectiveArgs + | NONTERM_interactiveTerminator + | NONTERM_interactiveItemsTerminator + | NONTERM_interactiveModuleDefns + | NONTERM_interactiveExpr + | NONTERM_interactiveHash + | NONTERM_signatureFile + | NONTERM_implementationFile + | NONTERM_moduleIntro + | NONTERM_namespaceIntro + | NONTERM_fileNamespaceSpecs + | NONTERM_fileNamespaceSpecList + | NONTERM_fileNamespaceSpec + | NONTERM_fileNamespaceImpls + | NONTERM_fileNamespaceImplList + | NONTERM_fileNamespaceImpl + | NONTERM_fileModuleSpec + | NONTERM_fileModuleImpl + | NONTERM_moduleSpfnsPossiblyEmptyBlock + | NONTERM_moduleSpfnsPossiblyEmpty + | NONTERM_moduleSpfns + | NONTERM_moduleDefnsOrExprPossiblyEmptyOrBlock + | NONTERM_moduleDefnsOrExprPossiblyEmpty + | NONTERM_moduleDefnsOrExpr + | NONTERM_moduleDefns + | NONTERM_moduleDefnOrDirective + | NONTERM_moduleDefn + | NONTERM_namedModuleAbbrevBlock + | NONTERM_namedModuleDefnBlock + | NONTERM_wrappedNamedModuleDefn + | NONTERM_opt_signature + | NONTERM_tyconDefnAugmentation + | NONTERM_moduleSpfn + | NONTERM_valSpfn + | NONTERM_opt_literalValue + | NONTERM_moduleSpecBlock + | NONTERM_opt_attributes + | NONTERM_attributes + | NONTERM_attributeList + | NONTERM_attributeListElements + | NONTERM_attribute + | NONTERM_attributeTarget + | NONTERM_tyconSpfns + | NONTERM_tyconSpfnList + | NONTERM_tyconSpfn + | NONTERM_tyconSpfnRhsBlock + | NONTERM_tyconSpfnRhs + | NONTERM_tyconClassSpfn + | NONTERM_classSpfnBlockKindUnspecified + | NONTERM_classSpfnBlock + | NONTERM_classSpfnMembers + | NONTERM_classSpfnMembersAtLeastOne + | NONTERM_memberFlags + | NONTERM_memberSpecFlags + | NONTERM_classMemberSpfnGetSet + | NONTERM_classMemberSpfnGetSetElements + | NONTERM_classMemberSpfn + | NONTERM_typeNameInfo + | NONTERM_tyconDefnList + | NONTERM_tyconDefn + | NONTERM_tyconDefnRhsBlock + | NONTERM_tyconDefnRhs + | NONTERM_tyconClassDefn + | NONTERM_classDefnBlockKindUnspecified + | NONTERM_classDefnBlock + | NONTERM_classDefnMembers + | NONTERM_classDefnMembersAtLeastOne + | NONTERM_classDefnMemberGetSet + | NONTERM_classDefnMemberGetSetElements + | NONTERM_classDefnMemberGetSetElement + | NONTERM_memberCore + | NONTERM_abstractMemberFlags + | NONTERM_classDefnMember + | NONTERM_valDefnDecl + | NONTERM_autoPropsDefnDecl + | NONTERM_opt_typ + | NONTERM_atomicPatternLongIdent + | NONTERM_opt_access + | NONTERM_access + | NONTERM_opt_declVisibility + | NONTERM_opt_interfaceImplDefn + | NONTERM_opt_classDefn + | NONTERM_opt_classSpfn + | NONTERM_inheritsDefn + | NONTERM_optAsSpec + | NONTERM_asSpec + | NONTERM_optBaseSpec + | NONTERM_baseSpec + | NONTERM_objectImplementationBlock + | NONTERM_objectImplementationMembers + | NONTERM_objectImplementationMember + | NONTERM_memberOrOverride + | NONTERM_tyconDefnOrSpfnSimpleRepr + | NONTERM_braceFieldDeclList + | NONTERM_inlineAssemblyTyconRepr + | NONTERM_classOrInterfaceOrStruct + | NONTERM_interfaceMember + | NONTERM_tyconNameAndTyparDecls + | NONTERM_prefixTyparDecls + | NONTERM_prefixTyparDeclList + | NONTERM_typarDecl + | NONTERM_postfixTyparDecls + | NONTERM_explicitValTyparDeclsCore + | NONTERM_explicitValTyparDecls + | NONTERM_opt_explicitValTyparDecls + | NONTERM_opt_explicitValTyparDecls2 + | NONTERM_opt_typeConstraints + | NONTERM_typeConstraints + | NONTERM_typeConstraint + | NONTERM_typarAlts + | NONTERM_unionRepr + | NONTERM_barAndgrabXmlDoc + | NONTERM_attrUnionCaseDecls + | NONTERM_attrUnionCaseDecl + | NONTERM_unionCaseName + | NONTERM_firstUnionCaseDeclOfMany + | NONTERM_firstUnionCaseDecl + | NONTERM_unionCaseRepr + | NONTERM_recdFieldDeclList + | NONTERM_recdFieldDecl + | NONTERM_fieldDecl + | NONTERM_exconDefn + | NONTERM_exconSpfn + | NONTERM_exceptionAndGrabDoc + | NONTERM_exconCore + | NONTERM_exconIntro + | NONTERM_exconRepr + | NONTERM_openDecl + | NONTERM_defnBindings + | NONTERM_doBinding + | NONTERM_hardwhiteLetBindings + | NONTERM_hardwhiteDoBinding + | NONTERM_classDefnBindings + | NONTERM_hardwhiteDefnBindingsTerminator + | NONTERM_cPrototype + | NONTERM_cArgs + | NONTERM_cMoreArgs + | NONTERM_cArg + | NONTERM_cType + | NONTERM_cRetType + | NONTERM_localBindings + | NONTERM_moreLocalBindings + | NONTERM_attr_localBinding + | NONTERM_localBinding + | NONTERM_typedExprWithStaticOptimizationsBlock + | NONTERM_typedExprWithStaticOptimizations + | NONTERM_opt_staticOptimizations + | NONTERM_staticOptimization + | NONTERM_staticOptimizationConditions + | NONTERM_staticOptimizationCondition + | NONTERM_rawConstant + | NONTERM_constant + | NONTERM_bindingPattern + | NONTERM_simplePattern + | NONTERM_simplePatternCommaList + | NONTERM_simplePatterns + | NONTERM_headBindingPattern + | NONTERM_tuplePatternElements + | NONTERM_conjPatternElements + | NONTERM_constrPattern + | NONTERM_atomicPatterns + | NONTERM_atomicPattern + | NONTERM_parenPatternBody + | NONTERM_parenPattern + | NONTERM_tupleParenPatternElements + | NONTERM_conjParenPatternElements + | NONTERM_recordPatternElements + | NONTERM_recordPatternElementsAux + | NONTERM_recordPatternElement + | NONTERM_listPatternElements + | NONTERM_typedSeqExprBlock + | NONTERM_declExprBlock + | NONTERM_typedSeqExprBlockR + | NONTERM_typedSeqExpr + | NONTERM_seqExpr + | NONTERM_recover + | NONTERM_declExpr + | NONTERM_dynamicArg + | NONTERM_withClauses + | NONTERM_withPatternClauses + | NONTERM_patternAndGuard + | NONTERM_patternClauses + | NONTERM_patternGuard + | NONTERM_patternResult + | NONTERM_ifExprCases + | NONTERM_ifExprThen + | NONTERM_ifExprElifs + | NONTERM_tupleExpr + | NONTERM_minusExpr + | NONTERM_appExpr + | NONTERM_argExpr + | NONTERM_atomicExpr + | NONTERM_atomicExprQualification + | NONTERM_optRange + | NONTERM_atomicExprAfterType + | NONTERM_beginEndExpr + | NONTERM_quoteExpr + | NONTERM_arrayExpr + | NONTERM_parenExpr + | NONTERM_parenExprBody + | NONTERM_staticallyKnownHeadTypars + | NONTERM_staticallyKnownHeadTyparAlts + | NONTERM_braceExpr + | NONTERM_braceExprBody + | NONTERM_listExprElements + | NONTERM_monadicExprInitial + | NONTERM_rangeSequenceExpr + | NONTERM_monadicSingleLineQualifiersThenArrowThenExprR + | NONTERM_forLoopBinder + | NONTERM_forLoopRange + | NONTERM_inlineAssemblyExpr + | NONTERM_opt_curriedArgExprs + | NONTERM_opt_atomicExprAfterType + | NONTERM_opt_inlineAssemblyTypeArg + | NONTERM_opt_inlineAssemblyReturnTypes + | NONTERM_recdExpr + | NONTERM_opt_seps_recd + | NONTERM_seps_recd + | NONTERM_pathOrUnderscore + | NONTERM_recdExprBindings + | NONTERM_recdBinding + | NONTERM_objExpr + | NONTERM_objExprBaseCall + | NONTERM_opt_objExprBindings + | NONTERM_objExprBindings + | NONTERM_objExprInterfaces + | NONTERM_opt_objExprInterfaces + | NONTERM_objExprInterface + | NONTERM_forLoopDirection + | NONTERM_anonLambdaExpr + | NONTERM_anonMatchingExpr + | NONTERM_typeWithTypeConstraints + | NONTERM_topTypeWithTypeConstraints + | NONTERM_opt_topReturnTypeWithTypeConstraints + | NONTERM_topType + | NONTERM_topTupleType + | NONTERM_topTupleTypeElements + | NONTERM_topAppType + | NONTERM_typ + | NONTERM_tupleType + | NONTERM_tupleOrQuotTypeElements + | NONTERM_tupleTypeElements + | NONTERM_appTypeCon + | NONTERM_appTypeConPower + | NONTERM_appType + | NONTERM_arrayTypeSuffix + | NONTERM_appTypePrefixArguments + | NONTERM_typeArgListElements + | NONTERM_powerType + | NONTERM_appTypeNonAtomicDeprecated + | NONTERM_powerTypeNonAtomicDeprecated + | NONTERM_atomType + | NONTERM_typeArgsNoHpaDeprecated + | NONTERM_typeArgsActual + | NONTERM_typeArgActual + | NONTERM_typeArgActualOrDummyIfEmpty + | NONTERM_dummyTypeArg + | NONTERM_measureTypeArg + | NONTERM_measureTypeAtom + | NONTERM_measureTypePower + | NONTERM_measureTypeSeq + | NONTERM_measureTypeExpr + | NONTERM_typar + | NONTERM_staticallyKnownHeadTypar + | NONTERM_ident + | NONTERM_path + | NONTERM_opName + | NONTERM_operatorName + | NONTERM_barName + | NONTERM_barNames + | NONTERM_identOrOp + | NONTERM_pathOp + | NONTERM_nameop + | NONTERM_topSeparator + | NONTERM_topSeparators + | NONTERM_interactiveSeparator + | NONTERM_interactiveSeparators + | NONTERM_opt_interactiveSeparators + | NONTERM_opt_topSeparators + | NONTERM_seps + | NONTERM_declEnd + | NONTERM_opt_declEnd + | NONTERM_opt_ODECLEND + | NONTERM_deprecated_opt_equals + | NONTERM_opt_OBLOCKSEP + | NONTERM_opt_seps + | NONTERM_opt_rec + | NONTERM_opt_bar + | NONTERM_opt_inline + | NONTERM_opt_mutable + | NONTERM_doToken + | NONTERM_doneDeclEnd + | NONTERM_structOrBegin + | NONTERM_sigOrBegin + | NONTERM_colonOrEquals + | NONTERM_opt_HASH + | NONTERM_opt_HIGH_PRECEDENCE_APP + | NONTERM_opt_HIGH_PRECEDENCE_TYAPP + | NONTERM_type_keyword + | NONTERM_module_keyword + | NONTERM_rbrace + | NONTERM_rparen + | NONTERM_oblockend + | NONTERM_ends_other_than_rparen_coming_soon_or_recover + | NONTERM_ends_coming_soon_or_recover + +// This function maps tokens to integers indexes +let tagOfToken (t:token) = + match t with + | HASH_IF _ -> 0 + | HASH_ELSE _ -> 1 + | HASH_ENDIF _ -> 2 + | COMMENT _ -> 3 + | WHITESPACE _ -> 4 + | HASH_LINE _ -> 5 + | HASH_LIGHT _ -> 6 + | INACTIVECODE _ -> 7 + | LINE_COMMENT _ -> 8 + | STRING_TEXT _ -> 9 + | EOF _ -> 10 + | LEX_FAILURE _ -> 11 + | ODUMMY _ -> 12 + | OINTERFACE_MEMBER -> 13 + | OBLOCKEND -> 14 + | OBLOCKEND_COMING_SOON -> 15 + | OBLOCKEND_IS_HERE -> 16 + | ORIGHT_BLOCK_END -> 17 + | ODECLEND -> 18 + | OEND -> 19 + | OBLOCKSEP -> 20 + | OBLOCKBEGIN -> 21 + | ORESET -> 22 + | OFUN -> 23 + | OFUNCTION -> 24 + | OWITH -> 25 + | OELSE -> 26 + | OTHEN -> 27 + | ODO_BANG -> 28 + | ODO -> 29 + | OBINDER _ -> 30 + | OLET _ -> 31 + | HIGH_PRECEDENCE_TYAPP -> 32 + | HIGH_PRECEDENCE_PAREN_APP -> 33 + | HIGH_PRECEDENCE_BRACK_APP -> 34 + | TYPE_COMING_SOON -> 35 + | TYPE_IS_HERE -> 36 + | MODULE_COMING_SOON -> 37 + | MODULE_IS_HERE -> 38 + | EXTERN -> 39 + | VOID -> 40 + | PUBLIC -> 41 + | PRIVATE -> 42 + | INTERNAL -> 43 + | GLOBAL -> 44 + | STATIC -> 45 + | MEMBER -> 46 + | CLASS -> 47 + | ABSTRACT -> 48 + | OVERRIDE -> 49 + | DEFAULT -> 50 + | CONSTRUCTOR -> 51 + | INHERIT -> 52 + | GREATER_RBRACK -> 53 + | STRUCT -> 54 + | SIG -> 55 + | BAR -> 56 + | RBRACK -> 57 + | RBRACE -> 58 + | RBRACE_COMING_SOON -> 59 + | RBRACE_IS_HERE -> 60 + | MINUS -> 61 + | DOLLAR -> 62 + | LBRACE_LESS -> 63 + | BAR_RBRACK -> 64 + | GREATER_RBRACE -> 65 + | UNDERSCORE -> 66 + | SEMICOLON_SEMICOLON -> 67 + | LARROW -> 68 + | EQUALS -> 69 + | LBRACK -> 70 + | LBRACK_BAR -> 71 + | LBRACK_LESS -> 72 + | LBRACE -> 73 + | QMARK -> 74 + | QMARK_QMARK -> 75 + | DOT -> 76 + | COLON -> 77 + | COLON_COLON -> 78 + | COLON_GREATER -> 79 + | COLON_QMARK_GREATER -> 80 + | COLON_QMARK -> 81 + | COLON_EQUALS -> 82 + | SEMICOLON -> 83 + | WHEN -> 84 + | WHILE -> 85 + | WITH -> 86 + | HASH -> 87 + | AMP -> 88 + | AMP_AMP -> 89 + | QUOTE -> 90 + | LPAREN -> 91 + | RPAREN -> 92 + | RPAREN_COMING_SOON -> 93 + | RPAREN_IS_HERE -> 94 + | STAR -> 95 + | COMMA -> 96 + | RARROW -> 97 + | GREATER_BAR_RBRACK -> 98 + | LPAREN_STAR_RPAREN -> 99 + | OPEN -> 100 + | OR -> 101 + | REC -> 102 + | THEN -> 103 + | TO -> 104 + | TRUE -> 105 + | TRY -> 106 + | TYPE -> 107 + | VAL -> 108 + | INLINE -> 109 + | INTERFACE -> 110 + | INSTANCE -> 111 + | CONST -> 112 + | LAZY -> 113 + | OLAZY -> 114 + | MATCH -> 115 + | MUTABLE -> 116 + | NEW -> 117 + | OF -> 118 + | EXCEPTION -> 119 + | FALSE -> 120 + | FOR -> 121 + | FUN -> 122 + | FUNCTION -> 123 + | IF -> 124 + | IN -> 125 + | JOIN_IN -> 126 + | FINALLY -> 127 + | DO_BANG -> 128 + | AND -> 129 + | AS -> 130 + | ASSERT -> 131 + | OASSERT -> 132 + | ASR -> 133 + | BEGIN -> 134 + | DO -> 135 + | DONE -> 136 + | DOWNTO -> 137 + | ELSE -> 138 + | ELIF -> 139 + | END -> 140 + | DOT_DOT -> 141 + | BAR_BAR -> 142 + | UPCAST -> 143 + | DOWNCAST -> 144 + | NULL -> 145 + | RESERVED -> 146 + | MODULE -> 147 + | NAMESPACE -> 148 + | DELEGATE -> 149 + | CONSTRAINT -> 150 + | BASE -> 151 + | LQUOTE _ -> 152 + | RQUOTE _ -> 153 + | RQUOTE_DOT _ -> 154 + | PERCENT_OP _ -> 155 + | BINDER _ -> 156 + | LESS _ -> 157 + | GREATER _ -> 158 + | LET _ -> 159 + | YIELD _ -> 160 + | YIELD_BANG _ -> 161 + | BIGNUM _ -> 162 + | DECIMAL _ -> 163 + | CHAR _ -> 164 + | IEEE64 _ -> 165 + | IEEE32 _ -> 166 + | NATIVEINT _ -> 167 + | UNATIVEINT _ -> 168 + | UINT64 _ -> 169 + | UINT32 _ -> 170 + | UINT16 _ -> 171 + | UINT8 _ -> 172 + | INT64 _ -> 173 + | INT32 _ -> 174 + | INT32_DOT_DOT _ -> 175 + | INT16 _ -> 176 + | INT8 _ -> 177 + | FUNKY_OPERATOR_NAME _ -> 178 + | ADJACENT_PREFIX_OP _ -> 179 + | PLUS_MINUS_OP _ -> 180 + | INFIX_AMP_OP _ -> 181 + | INFIX_STAR_DIV_MOD_OP _ -> 182 + | PREFIX_OP _ -> 183 + | INFIX_BAR_OP _ -> 184 + | INFIX_AT_HAT_OP _ -> 185 + | INFIX_COMPARE_OP _ -> 186 + | INFIX_STAR_STAR_OP _ -> 187 + | IDENT _ -> 188 + | KEYWORD_STRING _ -> 189 + | STRING _ -> 190 + | BYTEARRAY _ -> 191 + +// This function maps integers indexes to symbolic token ids +let tokenTagToTokenId (tokenIdx:int) = + match tokenIdx with + | 0 -> TOKEN_HASH_IF + | 1 -> TOKEN_HASH_ELSE + | 2 -> TOKEN_HASH_ENDIF + | 3 -> TOKEN_COMMENT + | 4 -> TOKEN_WHITESPACE + | 5 -> TOKEN_HASH_LINE + | 6 -> TOKEN_HASH_LIGHT + | 7 -> TOKEN_INACTIVECODE + | 8 -> TOKEN_LINE_COMMENT + | 9 -> TOKEN_STRING_TEXT + | 10 -> TOKEN_EOF + | 11 -> TOKEN_LEX_FAILURE + | 12 -> TOKEN_ODUMMY + | 13 -> TOKEN_OINTERFACE_MEMBER + | 14 -> TOKEN_OBLOCKEND + | 15 -> TOKEN_OBLOCKEND_COMING_SOON + | 16 -> TOKEN_OBLOCKEND_IS_HERE + | 17 -> TOKEN_ORIGHT_BLOCK_END + | 18 -> TOKEN_ODECLEND + | 19 -> TOKEN_OEND + | 20 -> TOKEN_OBLOCKSEP + | 21 -> TOKEN_OBLOCKBEGIN + | 22 -> TOKEN_ORESET + | 23 -> TOKEN_OFUN + | 24 -> TOKEN_OFUNCTION + | 25 -> TOKEN_OWITH + | 26 -> TOKEN_OELSE + | 27 -> TOKEN_OTHEN + | 28 -> TOKEN_ODO_BANG + | 29 -> TOKEN_ODO + | 30 -> TOKEN_OBINDER + | 31 -> TOKEN_OLET + | 32 -> TOKEN_HIGH_PRECEDENCE_TYAPP + | 33 -> TOKEN_HIGH_PRECEDENCE_PAREN_APP + | 34 -> TOKEN_HIGH_PRECEDENCE_BRACK_APP + | 35 -> TOKEN_TYPE_COMING_SOON + | 36 -> TOKEN_TYPE_IS_HERE + | 37 -> TOKEN_MODULE_COMING_SOON + | 38 -> TOKEN_MODULE_IS_HERE + | 39 -> TOKEN_EXTERN + | 40 -> TOKEN_VOID + | 41 -> TOKEN_PUBLIC + | 42 -> TOKEN_PRIVATE + | 43 -> TOKEN_INTERNAL + | 44 -> TOKEN_GLOBAL + | 45 -> TOKEN_STATIC + | 46 -> TOKEN_MEMBER + | 47 -> TOKEN_CLASS + | 48 -> TOKEN_ABSTRACT + | 49 -> TOKEN_OVERRIDE + | 50 -> TOKEN_DEFAULT + | 51 -> TOKEN_CONSTRUCTOR + | 52 -> TOKEN_INHERIT + | 53 -> TOKEN_GREATER_RBRACK + | 54 -> TOKEN_STRUCT + | 55 -> TOKEN_SIG + | 56 -> TOKEN_BAR + | 57 -> TOKEN_RBRACK + | 58 -> TOKEN_RBRACE + | 59 -> TOKEN_RBRACE_COMING_SOON + | 60 -> TOKEN_RBRACE_IS_HERE + | 61 -> TOKEN_MINUS + | 62 -> TOKEN_DOLLAR + | 63 -> TOKEN_LBRACE_LESS + | 64 -> TOKEN_BAR_RBRACK + | 65 -> TOKEN_GREATER_RBRACE + | 66 -> TOKEN_UNDERSCORE + | 67 -> TOKEN_SEMICOLON_SEMICOLON + | 68 -> TOKEN_LARROW + | 69 -> TOKEN_EQUALS + | 70 -> TOKEN_LBRACK + | 71 -> TOKEN_LBRACK_BAR + | 72 -> TOKEN_LBRACK_LESS + | 73 -> TOKEN_LBRACE + | 74 -> TOKEN_QMARK + | 75 -> TOKEN_QMARK_QMARK + | 76 -> TOKEN_DOT + | 77 -> TOKEN_COLON + | 78 -> TOKEN_COLON_COLON + | 79 -> TOKEN_COLON_GREATER + | 80 -> TOKEN_COLON_QMARK_GREATER + | 81 -> TOKEN_COLON_QMARK + | 82 -> TOKEN_COLON_EQUALS + | 83 -> TOKEN_SEMICOLON + | 84 -> TOKEN_WHEN + | 85 -> TOKEN_WHILE + | 86 -> TOKEN_WITH + | 87 -> TOKEN_HASH + | 88 -> TOKEN_AMP + | 89 -> TOKEN_AMP_AMP + | 90 -> TOKEN_QUOTE + | 91 -> TOKEN_LPAREN + | 92 -> TOKEN_RPAREN + | 93 -> TOKEN_RPAREN_COMING_SOON + | 94 -> TOKEN_RPAREN_IS_HERE + | 95 -> TOKEN_STAR + | 96 -> TOKEN_COMMA + | 97 -> TOKEN_RARROW + | 98 -> TOKEN_GREATER_BAR_RBRACK + | 99 -> TOKEN_LPAREN_STAR_RPAREN + | 100 -> TOKEN_OPEN + | 101 -> TOKEN_OR + | 102 -> TOKEN_REC + | 103 -> TOKEN_THEN + | 104 -> TOKEN_TO + | 105 -> TOKEN_TRUE + | 106 -> TOKEN_TRY + | 107 -> TOKEN_TYPE + | 108 -> TOKEN_VAL + | 109 -> TOKEN_INLINE + | 110 -> TOKEN_INTERFACE + | 111 -> TOKEN_INSTANCE + | 112 -> TOKEN_CONST + | 113 -> TOKEN_LAZY + | 114 -> TOKEN_OLAZY + | 115 -> TOKEN_MATCH + | 116 -> TOKEN_MUTABLE + | 117 -> TOKEN_NEW + | 118 -> TOKEN_OF + | 119 -> TOKEN_EXCEPTION + | 120 -> TOKEN_FALSE + | 121 -> TOKEN_FOR + | 122 -> TOKEN_FUN + | 123 -> TOKEN_FUNCTION + | 124 -> TOKEN_IF + | 125 -> TOKEN_IN + | 126 -> TOKEN_JOIN_IN + | 127 -> TOKEN_FINALLY + | 128 -> TOKEN_DO_BANG + | 129 -> TOKEN_AND + | 130 -> TOKEN_AS + | 131 -> TOKEN_ASSERT + | 132 -> TOKEN_OASSERT + | 133 -> TOKEN_ASR + | 134 -> TOKEN_BEGIN + | 135 -> TOKEN_DO + | 136 -> TOKEN_DONE + | 137 -> TOKEN_DOWNTO + | 138 -> TOKEN_ELSE + | 139 -> TOKEN_ELIF + | 140 -> TOKEN_END + | 141 -> TOKEN_DOT_DOT + | 142 -> TOKEN_BAR_BAR + | 143 -> TOKEN_UPCAST + | 144 -> TOKEN_DOWNCAST + | 145 -> TOKEN_NULL + | 146 -> TOKEN_RESERVED + | 147 -> TOKEN_MODULE + | 148 -> TOKEN_NAMESPACE + | 149 -> TOKEN_DELEGATE + | 150 -> TOKEN_CONSTRAINT + | 151 -> TOKEN_BASE + | 152 -> TOKEN_LQUOTE + | 153 -> TOKEN_RQUOTE + | 154 -> TOKEN_RQUOTE_DOT + | 155 -> TOKEN_PERCENT_OP + | 156 -> TOKEN_BINDER + | 157 -> TOKEN_LESS + | 158 -> TOKEN_GREATER + | 159 -> TOKEN_LET + | 160 -> TOKEN_YIELD + | 161 -> TOKEN_YIELD_BANG + | 162 -> TOKEN_BIGNUM + | 163 -> TOKEN_DECIMAL + | 164 -> TOKEN_CHAR + | 165 -> TOKEN_IEEE64 + | 166 -> TOKEN_IEEE32 + | 167 -> TOKEN_NATIVEINT + | 168 -> TOKEN_UNATIVEINT + | 169 -> TOKEN_UINT64 + | 170 -> TOKEN_UINT32 + | 171 -> TOKEN_UINT16 + | 172 -> TOKEN_UINT8 + | 173 -> TOKEN_INT64 + | 174 -> TOKEN_INT32 + | 175 -> TOKEN_INT32_DOT_DOT + | 176 -> TOKEN_INT16 + | 177 -> TOKEN_INT8 + | 178 -> TOKEN_FUNKY_OPERATOR_NAME + | 179 -> TOKEN_ADJACENT_PREFIX_OP + | 180 -> TOKEN_PLUS_MINUS_OP + | 181 -> TOKEN_INFIX_AMP_OP + | 182 -> TOKEN_INFIX_STAR_DIV_MOD_OP + | 183 -> TOKEN_PREFIX_OP + | 184 -> TOKEN_INFIX_BAR_OP + | 185 -> TOKEN_INFIX_AT_HAT_OP + | 186 -> TOKEN_INFIX_COMPARE_OP + | 187 -> TOKEN_INFIX_STAR_STAR_OP + | 188 -> TOKEN_IDENT + | 189 -> TOKEN_KEYWORD_STRING + | 190 -> TOKEN_STRING + | 191 -> TOKEN_BYTEARRAY + | 194 -> TOKEN_end_of_input + | 192 -> TOKEN_error + | _ -> failwith "tokenTagToTokenId: bad token" + +/// This function maps production indexes returned in syntax errors to strings representing the non terminal that would be produced by that production +let prodIdxToNonTerminal (prodIdx:int) = + match prodIdx with + | 0 -> NONTERM__startsignatureFile + | 1 -> NONTERM__startimplementationFile + | 2 -> NONTERM__startinteraction + | 3 -> NONTERM_interaction + | 4 -> NONTERM_interaction + | 5 -> NONTERM_interaction + | 6 -> NONTERM_hashDirective + | 7 -> NONTERM_stringOrKeywordString + | 8 -> NONTERM_stringOrKeywordString + | 9 -> NONTERM_hashDirectiveArg + | 10 -> NONTERM_hashDirectiveArgs + | 11 -> NONTERM_hashDirectiveArgs + | 12 -> NONTERM_interactiveTerminator + | 13 -> NONTERM_interactiveTerminator + | 14 -> NONTERM_interactiveItemsTerminator + | 15 -> NONTERM_interactiveItemsTerminator + | 16 -> NONTERM_interactiveItemsTerminator + | 17 -> NONTERM_interactiveItemsTerminator + | 18 -> NONTERM_interactiveItemsTerminator + | 19 -> NONTERM_interactiveItemsTerminator + | 20 -> NONTERM_interactiveItemsTerminator + | 21 -> NONTERM_interactiveModuleDefns + | 22 -> NONTERM_interactiveModuleDefns + | 23 -> NONTERM_interactiveExpr + | 24 -> NONTERM_interactiveHash + | 25 -> NONTERM_signatureFile + | 26 -> NONTERM_signatureFile + | 27 -> NONTERM_signatureFile + | 28 -> NONTERM_implementationFile + | 29 -> NONTERM_implementationFile + | 30 -> NONTERM_implementationFile + | 31 -> NONTERM_moduleIntro + | 32 -> NONTERM_namespaceIntro + | 33 -> NONTERM_fileNamespaceSpecs + | 34 -> NONTERM_fileNamespaceSpecs + | 35 -> NONTERM_fileNamespaceSpecList + | 36 -> NONTERM_fileNamespaceSpecList + | 37 -> NONTERM_fileNamespaceSpec + | 38 -> NONTERM_fileNamespaceImpls + | 39 -> NONTERM_fileNamespaceImpls + | 40 -> NONTERM_fileNamespaceImplList + | 41 -> NONTERM_fileNamespaceImplList + | 42 -> NONTERM_fileNamespaceImpl + | 43 -> NONTERM_fileModuleSpec + | 44 -> NONTERM_fileModuleSpec + | 45 -> NONTERM_fileModuleImpl + | 46 -> NONTERM_fileModuleImpl + | 47 -> NONTERM_moduleSpfnsPossiblyEmptyBlock + | 48 -> NONTERM_moduleSpfnsPossiblyEmptyBlock + | 49 -> NONTERM_moduleSpfnsPossiblyEmptyBlock + | 50 -> NONTERM_moduleSpfnsPossiblyEmptyBlock + | 51 -> NONTERM_moduleSpfnsPossiblyEmpty + | 52 -> NONTERM_moduleSpfnsPossiblyEmpty + | 53 -> NONTERM_moduleSpfnsPossiblyEmpty + | 54 -> NONTERM_moduleSpfns + | 55 -> NONTERM_moduleSpfns + | 56 -> NONTERM_moduleSpfns + | 57 -> NONTERM_moduleDefnsOrExprPossiblyEmptyOrBlock + | 58 -> NONTERM_moduleDefnsOrExprPossiblyEmptyOrBlock + | 59 -> NONTERM_moduleDefnsOrExprPossiblyEmptyOrBlock + | 60 -> NONTERM_moduleDefnsOrExprPossiblyEmptyOrBlock + | 61 -> NONTERM_moduleDefnsOrExprPossiblyEmpty + | 62 -> NONTERM_moduleDefnsOrExprPossiblyEmpty + | 63 -> NONTERM_moduleDefnsOrExpr + | 64 -> NONTERM_moduleDefnsOrExpr + | 65 -> NONTERM_moduleDefnsOrExpr + | 66 -> NONTERM_moduleDefnsOrExpr + | 67 -> NONTERM_moduleDefnsOrExpr + | 68 -> NONTERM_moduleDefns + | 69 -> NONTERM_moduleDefns + | 70 -> NONTERM_moduleDefns + | 71 -> NONTERM_moduleDefns + | 72 -> NONTERM_moduleDefns + | 73 -> NONTERM_moduleDefnOrDirective + | 74 -> NONTERM_moduleDefnOrDirective + | 75 -> NONTERM_moduleDefn + | 76 -> NONTERM_moduleDefn + | 77 -> NONTERM_moduleDefn + | 78 -> NONTERM_moduleDefn + | 79 -> NONTERM_moduleDefn + | 80 -> NONTERM_moduleDefn + | 81 -> NONTERM_moduleDefn + | 82 -> NONTERM_moduleDefn + | 83 -> NONTERM_namedModuleAbbrevBlock + | 84 -> NONTERM_namedModuleAbbrevBlock + | 85 -> NONTERM_namedModuleDefnBlock + | 86 -> NONTERM_namedModuleDefnBlock + | 87 -> NONTERM_namedModuleDefnBlock + | 88 -> NONTERM_namedModuleDefnBlock + | 89 -> NONTERM_namedModuleDefnBlock + | 90 -> NONTERM_namedModuleDefnBlock + | 91 -> NONTERM_namedModuleDefnBlock + | 92 -> NONTERM_wrappedNamedModuleDefn + | 93 -> NONTERM_wrappedNamedModuleDefn + | 94 -> NONTERM_wrappedNamedModuleDefn + | 95 -> NONTERM_opt_signature + | 96 -> NONTERM_tyconDefnAugmentation + | 97 -> NONTERM_moduleSpfn + | 98 -> NONTERM_moduleSpfn + | 99 -> NONTERM_moduleSpfn + | 100 -> NONTERM_moduleSpfn + | 101 -> NONTERM_moduleSpfn + | 102 -> NONTERM_moduleSpfn + | 103 -> NONTERM_moduleSpfn + | 104 -> NONTERM_valSpfn + | 105 -> NONTERM_opt_literalValue + | 106 -> NONTERM_opt_literalValue + | 107 -> NONTERM_opt_literalValue + | 108 -> NONTERM_moduleSpecBlock + | 109 -> NONTERM_moduleSpecBlock + | 110 -> NONTERM_moduleSpecBlock + | 111 -> NONTERM_opt_attributes + | 112 -> NONTERM_opt_attributes + | 113 -> NONTERM_attributes + | 114 -> NONTERM_attributes + | 115 -> NONTERM_attributeList + | 116 -> NONTERM_attributeList + | 117 -> NONTERM_attributeList + | 118 -> NONTERM_attributeList + | 119 -> NONTERM_attributeListElements + | 120 -> NONTERM_attributeListElements + | 121 -> NONTERM_attribute + | 122 -> NONTERM_attribute + | 123 -> NONTERM_attribute + | 124 -> NONTERM_attributeTarget + | 125 -> NONTERM_attributeTarget + | 126 -> NONTERM_attributeTarget + | 127 -> NONTERM_attributeTarget + | 128 -> NONTERM_tyconSpfns + | 129 -> NONTERM_tyconSpfnList + | 130 -> NONTERM_tyconSpfnList + | 131 -> NONTERM_tyconSpfn + | 132 -> NONTERM_tyconSpfn + | 133 -> NONTERM_tyconSpfnRhsBlock + | 134 -> NONTERM_tyconSpfnRhsBlock + | 135 -> NONTERM_tyconSpfnRhs + | 136 -> NONTERM_tyconSpfnRhs + | 137 -> NONTERM_tyconSpfnRhs + | 138 -> NONTERM_tyconClassSpfn + | 139 -> NONTERM_tyconClassSpfn + | 140 -> NONTERM_tyconClassSpfn + | 141 -> NONTERM_tyconClassSpfn + | 142 -> NONTERM_classSpfnBlockKindUnspecified + | 143 -> NONTERM_classSpfnBlockKindUnspecified + | 144 -> NONTERM_classSpfnBlockKindUnspecified + | 145 -> NONTERM_classSpfnBlockKindUnspecified + | 146 -> NONTERM_classSpfnBlock + | 147 -> NONTERM_classSpfnBlock + | 148 -> NONTERM_classSpfnBlock + | 149 -> NONTERM_classSpfnMembers + | 150 -> NONTERM_classSpfnMembers + | 151 -> NONTERM_classSpfnMembersAtLeastOne + | 152 -> NONTERM_memberFlags + | 153 -> NONTERM_memberFlags + | 154 -> NONTERM_memberFlags + | 155 -> NONTERM_memberFlags + | 156 -> NONTERM_memberSpecFlags + | 157 -> NONTERM_memberSpecFlags + | 158 -> NONTERM_memberSpecFlags + | 159 -> NONTERM_classMemberSpfnGetSet + | 160 -> NONTERM_classMemberSpfnGetSet + | 161 -> NONTERM_classMemberSpfnGetSet + | 162 -> NONTERM_classMemberSpfnGetSet + | 163 -> NONTERM_classMemberSpfnGetSetElements + | 164 -> NONTERM_classMemberSpfnGetSetElements + | 165 -> NONTERM_classMemberSpfn + | 166 -> NONTERM_classMemberSpfn + | 167 -> NONTERM_classMemberSpfn + | 168 -> NONTERM_classMemberSpfn + | 169 -> NONTERM_classMemberSpfn + | 170 -> NONTERM_classMemberSpfn + | 171 -> NONTERM_classMemberSpfn + | 172 -> NONTERM_typeNameInfo + | 173 -> NONTERM_tyconDefnList + | 174 -> NONTERM_tyconDefnList + | 175 -> NONTERM_tyconDefn + | 176 -> NONTERM_tyconDefn + | 177 -> NONTERM_tyconDefn + | 178 -> NONTERM_tyconDefn + | 179 -> NONTERM_tyconDefnRhsBlock + | 180 -> NONTERM_tyconDefnRhsBlock + | 181 -> NONTERM_tyconDefnRhsBlock + | 182 -> NONTERM_tyconDefnRhs + | 183 -> NONTERM_tyconDefnRhs + | 184 -> NONTERM_tyconDefnRhs + | 185 -> NONTERM_tyconClassDefn + | 186 -> NONTERM_tyconClassDefn + | 187 -> NONTERM_tyconClassDefn + | 188 -> NONTERM_tyconClassDefn + | 189 -> NONTERM_classDefnBlockKindUnspecified + | 190 -> NONTERM_classDefnBlockKindUnspecified + | 191 -> NONTERM_classDefnBlock + | 192 -> NONTERM_classDefnBlock + | 193 -> NONTERM_classDefnBlock + | 194 -> NONTERM_classDefnMembers + | 195 -> NONTERM_classDefnMembers + | 196 -> NONTERM_classDefnMembers + | 197 -> NONTERM_classDefnMembersAtLeastOne + | 198 -> NONTERM_classDefnMemberGetSet + | 199 -> NONTERM_classDefnMemberGetSet + | 200 -> NONTERM_classDefnMemberGetSet + | 201 -> NONTERM_classDefnMemberGetSetElements + | 202 -> NONTERM_classDefnMemberGetSetElements + | 203 -> NONTERM_classDefnMemberGetSetElement + | 204 -> NONTERM_memberCore + | 205 -> NONTERM_memberCore + | 206 -> NONTERM_abstractMemberFlags + | 207 -> NONTERM_abstractMemberFlags + | 208 -> NONTERM_classDefnMember + | 209 -> NONTERM_classDefnMember + | 210 -> NONTERM_classDefnMember + | 211 -> NONTERM_classDefnMember + | 212 -> NONTERM_classDefnMember + | 213 -> NONTERM_classDefnMember + | 214 -> NONTERM_classDefnMember + | 215 -> NONTERM_classDefnMember + | 216 -> NONTERM_classDefnMember + | 217 -> NONTERM_classDefnMember + | 218 -> NONTERM_classDefnMember + | 219 -> NONTERM_valDefnDecl + | 220 -> NONTERM_autoPropsDefnDecl + | 221 -> NONTERM_opt_typ + | 222 -> NONTERM_opt_typ + | 223 -> NONTERM_atomicPatternLongIdent + | 224 -> NONTERM_atomicPatternLongIdent + | 225 -> NONTERM_atomicPatternLongIdent + | 226 -> NONTERM_opt_access + | 227 -> NONTERM_opt_access + | 228 -> NONTERM_access + | 229 -> NONTERM_access + | 230 -> NONTERM_access + | 231 -> NONTERM_opt_declVisibility + | 232 -> NONTERM_opt_declVisibility + | 233 -> NONTERM_opt_interfaceImplDefn + | 234 -> NONTERM_opt_interfaceImplDefn + | 235 -> NONTERM_opt_classDefn + | 236 -> NONTERM_opt_classDefn + | 237 -> NONTERM_opt_classSpfn + | 238 -> NONTERM_opt_classSpfn + | 239 -> NONTERM_inheritsDefn + | 240 -> NONTERM_inheritsDefn + | 241 -> NONTERM_inheritsDefn + | 242 -> NONTERM_optAsSpec + | 243 -> NONTERM_optAsSpec + | 244 -> NONTERM_asSpec + | 245 -> NONTERM_optBaseSpec + | 246 -> NONTERM_optBaseSpec + | 247 -> NONTERM_baseSpec + | 248 -> NONTERM_baseSpec + | 249 -> NONTERM_objectImplementationBlock + | 250 -> NONTERM_objectImplementationBlock + | 251 -> NONTERM_objectImplementationBlock + | 252 -> NONTERM_objectImplementationMembers + | 253 -> NONTERM_objectImplementationMembers + | 254 -> NONTERM_objectImplementationMember + | 255 -> NONTERM_objectImplementationMember + | 256 -> NONTERM_objectImplementationMember + | 257 -> NONTERM_objectImplementationMember + | 258 -> NONTERM_memberOrOverride + | 259 -> NONTERM_memberOrOverride + | 260 -> NONTERM_tyconDefnOrSpfnSimpleRepr + | 261 -> NONTERM_tyconDefnOrSpfnSimpleRepr + | 262 -> NONTERM_tyconDefnOrSpfnSimpleRepr + | 263 -> NONTERM_tyconDefnOrSpfnSimpleRepr + | 264 -> NONTERM_tyconDefnOrSpfnSimpleRepr + | 265 -> NONTERM_braceFieldDeclList + | 266 -> NONTERM_braceFieldDeclList + | 267 -> NONTERM_braceFieldDeclList + | 268 -> NONTERM_inlineAssemblyTyconRepr + | 269 -> NONTERM_classOrInterfaceOrStruct + | 270 -> NONTERM_classOrInterfaceOrStruct + | 271 -> NONTERM_classOrInterfaceOrStruct + | 272 -> NONTERM_interfaceMember + | 273 -> NONTERM_interfaceMember + | 274 -> NONTERM_tyconNameAndTyparDecls + | 275 -> NONTERM_tyconNameAndTyparDecls + | 276 -> NONTERM_tyconNameAndTyparDecls + | 277 -> NONTERM_prefixTyparDecls + | 278 -> NONTERM_prefixTyparDecls + | 279 -> NONTERM_prefixTyparDeclList + | 280 -> NONTERM_prefixTyparDeclList + | 281 -> NONTERM_typarDecl + | 282 -> NONTERM_postfixTyparDecls + | 283 -> NONTERM_explicitValTyparDeclsCore + | 284 -> NONTERM_explicitValTyparDeclsCore + | 285 -> NONTERM_explicitValTyparDeclsCore + | 286 -> NONTERM_explicitValTyparDecls + | 287 -> NONTERM_opt_explicitValTyparDecls + | 288 -> NONTERM_opt_explicitValTyparDecls + | 289 -> NONTERM_opt_explicitValTyparDecls2 + | 290 -> NONTERM_opt_explicitValTyparDecls2 + | 291 -> NONTERM_opt_typeConstraints + | 292 -> NONTERM_opt_typeConstraints + | 293 -> NONTERM_typeConstraints + | 294 -> NONTERM_typeConstraints + | 295 -> NONTERM_typeConstraint + | 296 -> NONTERM_typeConstraint + | 297 -> NONTERM_typeConstraint + | 298 -> NONTERM_typeConstraint + | 299 -> NONTERM_typeConstraint + | 300 -> NONTERM_typeConstraint + | 301 -> NONTERM_typeConstraint + | 302 -> NONTERM_typeConstraint + | 303 -> NONTERM_typeConstraint + | 304 -> NONTERM_typeConstraint + | 305 -> NONTERM_typarAlts + | 306 -> NONTERM_typarAlts + | 307 -> NONTERM_unionRepr + | 308 -> NONTERM_unionRepr + | 309 -> NONTERM_unionRepr + | 310 -> NONTERM_barAndgrabXmlDoc + | 311 -> NONTERM_attrUnionCaseDecls + | 312 -> NONTERM_attrUnionCaseDecls + | 313 -> NONTERM_attrUnionCaseDecl + | 314 -> NONTERM_attrUnionCaseDecl + | 315 -> NONTERM_attrUnionCaseDecl + | 316 -> NONTERM_attrUnionCaseDecl + | 317 -> NONTERM_unionCaseName + | 318 -> NONTERM_unionCaseName + | 319 -> NONTERM_unionCaseName + | 320 -> NONTERM_firstUnionCaseDeclOfMany + | 321 -> NONTERM_firstUnionCaseDeclOfMany + | 322 -> NONTERM_firstUnionCaseDeclOfMany + | 323 -> NONTERM_firstUnionCaseDecl + | 324 -> NONTERM_firstUnionCaseDecl + | 325 -> NONTERM_unionCaseRepr + | 326 -> NONTERM_unionCaseRepr + | 327 -> NONTERM_unionCaseRepr + | 328 -> NONTERM_recdFieldDeclList + | 329 -> NONTERM_recdFieldDeclList + | 330 -> NONTERM_recdFieldDecl + | 331 -> NONTERM_fieldDecl + | 332 -> NONTERM_exconDefn + | 333 -> NONTERM_exconSpfn + | 334 -> NONTERM_exceptionAndGrabDoc + | 335 -> NONTERM_exconCore + | 336 -> NONTERM_exconIntro + | 337 -> NONTERM_exconIntro + | 338 -> NONTERM_exconRepr + | 339 -> NONTERM_exconRepr + | 340 -> NONTERM_openDecl + | 341 -> NONTERM_defnBindings + | 342 -> NONTERM_defnBindings + | 343 -> NONTERM_doBinding + | 344 -> NONTERM_hardwhiteLetBindings + | 345 -> NONTERM_hardwhiteDoBinding + | 346 -> NONTERM_classDefnBindings + | 347 -> NONTERM_classDefnBindings + | 348 -> NONTERM_classDefnBindings + | 349 -> NONTERM_classDefnBindings + | 350 -> NONTERM_hardwhiteDefnBindingsTerminator + | 351 -> NONTERM_hardwhiteDefnBindingsTerminator + | 352 -> NONTERM_cPrototype + | 353 -> NONTERM_cArgs + | 354 -> NONTERM_cArgs + | 355 -> NONTERM_cArgs + | 356 -> NONTERM_cMoreArgs + | 357 -> NONTERM_cMoreArgs + | 358 -> NONTERM_cArg + | 359 -> NONTERM_cArg + | 360 -> NONTERM_cType + | 361 -> NONTERM_cType + | 362 -> NONTERM_cType + | 363 -> NONTERM_cType + | 364 -> NONTERM_cType + | 365 -> NONTERM_cRetType + | 366 -> NONTERM_cRetType + | 367 -> NONTERM_localBindings + | 368 -> NONTERM_moreLocalBindings + | 369 -> NONTERM_moreLocalBindings + | 370 -> NONTERM_attr_localBinding + | 371 -> NONTERM_attr_localBinding + | 372 -> NONTERM_localBinding + | 373 -> NONTERM_localBinding + | 374 -> NONTERM_localBinding + | 375 -> NONTERM_typedExprWithStaticOptimizationsBlock + | 376 -> NONTERM_typedExprWithStaticOptimizationsBlock + | 377 -> NONTERM_typedExprWithStaticOptimizationsBlock + | 378 -> NONTERM_typedExprWithStaticOptimizations + | 379 -> NONTERM_opt_staticOptimizations + | 380 -> NONTERM_opt_staticOptimizations + | 381 -> NONTERM_staticOptimization + | 382 -> NONTERM_staticOptimizationConditions + | 383 -> NONTERM_staticOptimizationConditions + | 384 -> NONTERM_staticOptimizationCondition + | 385 -> NONTERM_staticOptimizationCondition + | 386 -> NONTERM_rawConstant + | 387 -> NONTERM_rawConstant + | 388 -> NONTERM_rawConstant + | 389 -> NONTERM_rawConstant + | 390 -> NONTERM_rawConstant + | 391 -> NONTERM_rawConstant + | 392 -> NONTERM_rawConstant + | 393 -> NONTERM_rawConstant + | 394 -> NONTERM_rawConstant + | 395 -> NONTERM_rawConstant + | 396 -> NONTERM_rawConstant + | 397 -> NONTERM_rawConstant + | 398 -> NONTERM_rawConstant + | 399 -> NONTERM_rawConstant + | 400 -> NONTERM_rawConstant + | 401 -> NONTERM_rawConstant + | 402 -> NONTERM_rawConstant + | 403 -> NONTERM_constant + | 404 -> NONTERM_constant + | 405 -> NONTERM_bindingPattern + | 406 -> NONTERM_simplePattern + | 407 -> NONTERM_simplePattern + | 408 -> NONTERM_simplePattern + | 409 -> NONTERM_simplePattern + | 410 -> NONTERM_simplePatternCommaList + | 411 -> NONTERM_simplePatternCommaList + | 412 -> NONTERM_simplePatterns + | 413 -> NONTERM_simplePatterns + | 414 -> NONTERM_simplePatterns + | 415 -> NONTERM_simplePatterns + | 416 -> NONTERM_simplePatterns + | 417 -> NONTERM_headBindingPattern + | 418 -> NONTERM_headBindingPattern + | 419 -> NONTERM_headBindingPattern + | 420 -> NONTERM_headBindingPattern + | 421 -> NONTERM_headBindingPattern + | 422 -> NONTERM_headBindingPattern + | 423 -> NONTERM_tuplePatternElements + | 424 -> NONTERM_tuplePatternElements + | 425 -> NONTERM_conjPatternElements + | 426 -> NONTERM_conjPatternElements + | 427 -> NONTERM_constrPattern + | 428 -> NONTERM_constrPattern + | 429 -> NONTERM_constrPattern + | 430 -> NONTERM_constrPattern + | 431 -> NONTERM_constrPattern + | 432 -> NONTERM_constrPattern + | 433 -> NONTERM_atomicPatterns + | 434 -> NONTERM_atomicPatterns + | 435 -> NONTERM_atomicPatterns + | 436 -> NONTERM_atomicPatterns + | 437 -> NONTERM_atomicPattern + | 438 -> NONTERM_atomicPattern + | 439 -> NONTERM_atomicPattern + | 440 -> NONTERM_atomicPattern + | 441 -> NONTERM_atomicPattern + | 442 -> NONTERM_atomicPattern + | 443 -> NONTERM_atomicPattern + | 444 -> NONTERM_atomicPattern + | 445 -> NONTERM_atomicPattern + | 446 -> NONTERM_atomicPattern + | 447 -> NONTERM_atomicPattern + | 448 -> NONTERM_atomicPattern + | 449 -> NONTERM_atomicPattern + | 450 -> NONTERM_atomicPattern + | 451 -> NONTERM_atomicPattern + | 452 -> NONTERM_atomicPattern + | 453 -> NONTERM_parenPatternBody + | 454 -> NONTERM_parenPatternBody + | 455 -> NONTERM_parenPattern + | 456 -> NONTERM_parenPattern + | 457 -> NONTERM_parenPattern + | 458 -> NONTERM_parenPattern + | 459 -> NONTERM_parenPattern + | 460 -> NONTERM_parenPattern + | 461 -> NONTERM_parenPattern + | 462 -> NONTERM_parenPattern + | 463 -> NONTERM_tupleParenPatternElements + | 464 -> NONTERM_tupleParenPatternElements + | 465 -> NONTERM_conjParenPatternElements + | 466 -> NONTERM_conjParenPatternElements + | 467 -> NONTERM_recordPatternElements + | 468 -> NONTERM_recordPatternElementsAux + | 469 -> NONTERM_recordPatternElementsAux + | 470 -> NONTERM_recordPatternElement + | 471 -> NONTERM_listPatternElements + | 472 -> NONTERM_listPatternElements + | 473 -> NONTERM_listPatternElements + | 474 -> NONTERM_typedSeqExprBlock + | 475 -> NONTERM_typedSeqExprBlock + | 476 -> NONTERM_typedSeqExprBlock + | 477 -> NONTERM_declExprBlock + | 478 -> NONTERM_declExprBlock + | 479 -> NONTERM_typedSeqExprBlockR + | 480 -> NONTERM_typedSeqExprBlockR + | 481 -> NONTERM_typedSeqExpr + | 482 -> NONTERM_typedSeqExpr + | 483 -> NONTERM_seqExpr + | 484 -> NONTERM_seqExpr + | 485 -> NONTERM_seqExpr + | 486 -> NONTERM_seqExpr + | 487 -> NONTERM_seqExpr + | 488 -> NONTERM_seqExpr + | 489 -> NONTERM_recover + | 490 -> NONTERM_recover + | 491 -> NONTERM_declExpr + | 492 -> NONTERM_declExpr + | 493 -> NONTERM_declExpr + | 494 -> NONTERM_declExpr + | 495 -> NONTERM_declExpr + | 496 -> NONTERM_declExpr + | 497 -> NONTERM_declExpr + | 498 -> NONTERM_declExpr + | 499 -> NONTERM_declExpr + | 500 -> NONTERM_declExpr + | 501 -> NONTERM_declExpr + | 502 -> NONTERM_declExpr + | 503 -> NONTERM_declExpr + | 504 -> NONTERM_declExpr + | 505 -> NONTERM_declExpr + | 506 -> NONTERM_declExpr + | 507 -> NONTERM_declExpr + | 508 -> NONTERM_declExpr + | 509 -> NONTERM_declExpr + | 510 -> NONTERM_declExpr + | 511 -> NONTERM_declExpr + | 512 -> NONTERM_declExpr + | 513 -> NONTERM_declExpr + | 514 -> NONTERM_declExpr + | 515 -> NONTERM_declExpr + | 516 -> NONTERM_declExpr + | 517 -> NONTERM_declExpr + | 518 -> NONTERM_declExpr + | 519 -> NONTERM_declExpr + | 520 -> NONTERM_declExpr + | 521 -> NONTERM_declExpr + | 522 -> NONTERM_declExpr + | 523 -> NONTERM_declExpr + | 524 -> NONTERM_declExpr + | 525 -> NONTERM_declExpr + | 526 -> NONTERM_declExpr + | 527 -> NONTERM_declExpr + | 528 -> NONTERM_declExpr + | 529 -> NONTERM_declExpr + | 530 -> NONTERM_declExpr + | 531 -> NONTERM_declExpr + | 532 -> NONTERM_declExpr + | 533 -> NONTERM_declExpr + | 534 -> NONTERM_declExpr + | 535 -> NONTERM_declExpr + | 536 -> NONTERM_declExpr + | 537 -> NONTERM_declExpr + | 538 -> NONTERM_declExpr + | 539 -> NONTERM_declExpr + | 540 -> NONTERM_declExpr + | 541 -> NONTERM_declExpr + | 542 -> NONTERM_declExpr + | 543 -> NONTERM_declExpr + | 544 -> NONTERM_declExpr + | 545 -> NONTERM_declExpr + | 546 -> NONTERM_declExpr + | 547 -> NONTERM_declExpr + | 548 -> NONTERM_declExpr + | 549 -> NONTERM_declExpr + | 550 -> NONTERM_declExpr + | 551 -> NONTERM_declExpr + | 552 -> NONTERM_declExpr + | 553 -> NONTERM_declExpr + | 554 -> NONTERM_declExpr + | 555 -> NONTERM_declExpr + | 556 -> NONTERM_declExpr + | 557 -> NONTERM_declExpr + | 558 -> NONTERM_declExpr + | 559 -> NONTERM_declExpr + | 560 -> NONTERM_declExpr + | 561 -> NONTERM_declExpr + | 562 -> NONTERM_declExpr + | 563 -> NONTERM_declExpr + | 564 -> NONTERM_declExpr + | 565 -> NONTERM_declExpr + | 566 -> NONTERM_declExpr + | 567 -> NONTERM_declExpr + | 568 -> NONTERM_declExpr + | 569 -> NONTERM_declExpr + | 570 -> NONTERM_declExpr + | 571 -> NONTERM_declExpr + | 572 -> NONTERM_declExpr + | 573 -> NONTERM_declExpr + | 574 -> NONTERM_declExpr + | 575 -> NONTERM_declExpr + | 576 -> NONTERM_declExpr + | 577 -> NONTERM_declExpr + | 578 -> NONTERM_declExpr + | 579 -> NONTERM_declExpr + | 580 -> NONTERM_declExpr + | 581 -> NONTERM_declExpr + | 582 -> NONTERM_declExpr + | 583 -> NONTERM_declExpr + | 584 -> NONTERM_declExpr + | 585 -> NONTERM_declExpr + | 586 -> NONTERM_declExpr + | 587 -> NONTERM_declExpr + | 588 -> NONTERM_declExpr + | 589 -> NONTERM_declExpr + | 590 -> NONTERM_dynamicArg + | 591 -> NONTERM_dynamicArg + | 592 -> NONTERM_withClauses + | 593 -> NONTERM_withClauses + | 594 -> NONTERM_withClauses + | 595 -> NONTERM_withPatternClauses + | 596 -> NONTERM_withPatternClauses + | 597 -> NONTERM_withPatternClauses + | 598 -> NONTERM_withPatternClauses + | 599 -> NONTERM_patternAndGuard + | 600 -> NONTERM_patternClauses + | 601 -> NONTERM_patternClauses + | 602 -> NONTERM_patternClauses + | 603 -> NONTERM_patternClauses + | 604 -> NONTERM_patternClauses + | 605 -> NONTERM_patternGuard + | 606 -> NONTERM_patternGuard + | 607 -> NONTERM_patternResult + | 608 -> NONTERM_ifExprCases + | 609 -> NONTERM_ifExprThen + | 610 -> NONTERM_ifExprThen + | 611 -> NONTERM_ifExprThen + | 612 -> NONTERM_ifExprElifs + | 613 -> NONTERM_ifExprElifs + | 614 -> NONTERM_ifExprElifs + | 615 -> NONTERM_ifExprElifs + | 616 -> NONTERM_ifExprElifs + | 617 -> NONTERM_ifExprElifs + | 618 -> NONTERM_tupleExpr + | 619 -> NONTERM_tupleExpr + | 620 -> NONTERM_tupleExpr + | 621 -> NONTERM_tupleExpr + | 622 -> NONTERM_minusExpr + | 623 -> NONTERM_minusExpr + | 624 -> NONTERM_minusExpr + | 625 -> NONTERM_minusExpr + | 626 -> NONTERM_minusExpr + | 627 -> NONTERM_minusExpr + | 628 -> NONTERM_minusExpr + | 629 -> NONTERM_minusExpr + | 630 -> NONTERM_minusExpr + | 631 -> NONTERM_minusExpr + | 632 -> NONTERM_minusExpr + | 633 -> NONTERM_minusExpr + | 634 -> NONTERM_appExpr + | 635 -> NONTERM_appExpr + | 636 -> NONTERM_argExpr + | 637 -> NONTERM_argExpr + | 638 -> NONTERM_atomicExpr + | 639 -> NONTERM_atomicExpr + | 640 -> NONTERM_atomicExpr + | 641 -> NONTERM_atomicExpr + | 642 -> NONTERM_atomicExpr + | 643 -> NONTERM_atomicExpr + | 644 -> NONTERM_atomicExpr + | 645 -> NONTERM_atomicExpr + | 646 -> NONTERM_atomicExpr + | 647 -> NONTERM_atomicExpr + | 648 -> NONTERM_atomicExpr + | 649 -> NONTERM_atomicExpr + | 650 -> NONTERM_atomicExpr + | 651 -> NONTERM_atomicExpr + | 652 -> NONTERM_atomicExpr + | 653 -> NONTERM_atomicExprQualification + | 654 -> NONTERM_atomicExprQualification + | 655 -> NONTERM_atomicExprQualification + | 656 -> NONTERM_atomicExprQualification + | 657 -> NONTERM_atomicExprQualification + | 658 -> NONTERM_atomicExprQualification + | 659 -> NONTERM_atomicExprQualification + | 660 -> NONTERM_atomicExprQualification + | 661 -> NONTERM_atomicExprQualification + | 662 -> NONTERM_atomicExprQualification + | 663 -> NONTERM_atomicExprQualification + | 664 -> NONTERM_atomicExprQualification + | 665 -> NONTERM_atomicExprQualification + | 666 -> NONTERM_optRange + | 667 -> NONTERM_optRange + | 668 -> NONTERM_optRange + | 669 -> NONTERM_optRange + | 670 -> NONTERM_atomicExprAfterType + | 671 -> NONTERM_atomicExprAfterType + | 672 -> NONTERM_atomicExprAfterType + | 673 -> NONTERM_atomicExprAfterType + | 674 -> NONTERM_atomicExprAfterType + | 675 -> NONTERM_atomicExprAfterType + | 676 -> NONTERM_atomicExprAfterType + | 677 -> NONTERM_atomicExprAfterType + | 678 -> NONTERM_atomicExprAfterType + | 679 -> NONTERM_beginEndExpr + | 680 -> NONTERM_beginEndExpr + | 681 -> NONTERM_beginEndExpr + | 682 -> NONTERM_beginEndExpr + | 683 -> NONTERM_quoteExpr + | 684 -> NONTERM_quoteExpr + | 685 -> NONTERM_quoteExpr + | 686 -> NONTERM_quoteExpr + | 687 -> NONTERM_arrayExpr + | 688 -> NONTERM_arrayExpr + | 689 -> NONTERM_arrayExpr + | 690 -> NONTERM_arrayExpr + | 691 -> NONTERM_parenExpr + | 692 -> NONTERM_parenExpr + | 693 -> NONTERM_parenExpr + | 694 -> NONTERM_parenExpr + | 695 -> NONTERM_parenExpr + | 696 -> NONTERM_parenExpr + | 697 -> NONTERM_parenExpr + | 698 -> NONTERM_parenExpr + | 699 -> NONTERM_parenExpr + | 700 -> NONTERM_parenExprBody + | 701 -> NONTERM_parenExprBody + | 702 -> NONTERM_parenExprBody + | 703 -> NONTERM_staticallyKnownHeadTypars + | 704 -> NONTERM_staticallyKnownHeadTypars + | 705 -> NONTERM_staticallyKnownHeadTyparAlts + | 706 -> NONTERM_staticallyKnownHeadTyparAlts + | 707 -> NONTERM_braceExpr + | 708 -> NONTERM_braceExpr + | 709 -> NONTERM_braceExpr + | 710 -> NONTERM_braceExpr + | 711 -> NONTERM_braceExpr + | 712 -> NONTERM_braceExprBody + | 713 -> NONTERM_braceExprBody + | 714 -> NONTERM_braceExprBody + | 715 -> NONTERM_listExprElements + | 716 -> NONTERM_listExprElements + | 717 -> NONTERM_monadicExprInitial + | 718 -> NONTERM_monadicExprInitial + | 719 -> NONTERM_rangeSequenceExpr + | 720 -> NONTERM_rangeSequenceExpr + | 721 -> NONTERM_rangeSequenceExpr + | 722 -> NONTERM_monadicSingleLineQualifiersThenArrowThenExprR + | 723 -> NONTERM_forLoopBinder + | 724 -> NONTERM_forLoopBinder + | 725 -> NONTERM_forLoopBinder + | 726 -> NONTERM_forLoopBinder + | 727 -> NONTERM_forLoopRange + | 728 -> NONTERM_inlineAssemblyExpr + | 729 -> NONTERM_opt_curriedArgExprs + | 730 -> NONTERM_opt_curriedArgExprs + | 731 -> NONTERM_opt_atomicExprAfterType + | 732 -> NONTERM_opt_atomicExprAfterType + | 733 -> NONTERM_opt_inlineAssemblyTypeArg + | 734 -> NONTERM_opt_inlineAssemblyTypeArg + | 735 -> NONTERM_opt_inlineAssemblyReturnTypes + | 736 -> NONTERM_opt_inlineAssemblyReturnTypes + | 737 -> NONTERM_opt_inlineAssemblyReturnTypes + | 738 -> NONTERM_recdExpr + | 739 -> NONTERM_recdExpr + | 740 -> NONTERM_recdExpr + | 741 -> NONTERM_recdExpr + | 742 -> NONTERM_recdExpr + | 743 -> NONTERM_recdExpr + | 744 -> NONTERM_recdExpr + | 745 -> NONTERM_recdExpr + | 746 -> NONTERM_opt_seps_recd + | 747 -> NONTERM_opt_seps_recd + | 748 -> NONTERM_seps_recd + | 749 -> NONTERM_seps_recd + | 750 -> NONTERM_seps_recd + | 751 -> NONTERM_seps_recd + | 752 -> NONTERM_pathOrUnderscore + | 753 -> NONTERM_pathOrUnderscore + | 754 -> NONTERM_recdExprBindings + | 755 -> NONTERM_recdExprBindings + | 756 -> NONTERM_recdBinding + | 757 -> NONTERM_recdBinding + | 758 -> NONTERM_recdBinding + | 759 -> NONTERM_recdBinding + | 760 -> NONTERM_recdBinding + | 761 -> NONTERM_objExpr + | 762 -> NONTERM_objExpr + | 763 -> NONTERM_objExpr + | 764 -> NONTERM_objExprBaseCall + | 765 -> NONTERM_objExprBaseCall + | 766 -> NONTERM_objExprBaseCall + | 767 -> NONTERM_opt_objExprBindings + | 768 -> NONTERM_opt_objExprBindings + | 769 -> NONTERM_objExprBindings + | 770 -> NONTERM_objExprBindings + | 771 -> NONTERM_objExprBindings + | 772 -> NONTERM_objExprInterfaces + | 773 -> NONTERM_opt_objExprInterfaces + | 774 -> NONTERM_opt_objExprInterfaces + | 775 -> NONTERM_opt_objExprInterfaces + | 776 -> NONTERM_objExprInterface + | 777 -> NONTERM_forLoopDirection + | 778 -> NONTERM_forLoopDirection + | 779 -> NONTERM_anonLambdaExpr + | 780 -> NONTERM_anonLambdaExpr + | 781 -> NONTERM_anonLambdaExpr + | 782 -> NONTERM_anonLambdaExpr + | 783 -> NONTERM_anonLambdaExpr + | 784 -> NONTERM_anonLambdaExpr + | 785 -> NONTERM_anonLambdaExpr + | 786 -> NONTERM_anonLambdaExpr + | 787 -> NONTERM_anonMatchingExpr + | 788 -> NONTERM_anonMatchingExpr + | 789 -> NONTERM_typeWithTypeConstraints + | 790 -> NONTERM_typeWithTypeConstraints + | 791 -> NONTERM_topTypeWithTypeConstraints + | 792 -> NONTERM_topTypeWithTypeConstraints + | 793 -> NONTERM_opt_topReturnTypeWithTypeConstraints + | 794 -> NONTERM_opt_topReturnTypeWithTypeConstraints + | 795 -> NONTERM_topType + | 796 -> NONTERM_topType + | 797 -> NONTERM_topTupleType + | 798 -> NONTERM_topTupleType + | 799 -> NONTERM_topTupleTypeElements + | 800 -> NONTERM_topTupleTypeElements + | 801 -> NONTERM_topAppType + | 802 -> NONTERM_topAppType + | 803 -> NONTERM_topAppType + | 804 -> NONTERM_topAppType + | 805 -> NONTERM_topAppType + | 806 -> NONTERM_topAppType + | 807 -> NONTERM_typ + | 808 -> NONTERM_typ + | 809 -> NONTERM_tupleType + | 810 -> NONTERM_tupleType + | 811 -> NONTERM_tupleType + | 812 -> NONTERM_tupleType + | 813 -> NONTERM_tupleOrQuotTypeElements + | 814 -> NONTERM_tupleOrQuotTypeElements + | 815 -> NONTERM_tupleOrQuotTypeElements + | 816 -> NONTERM_tupleTypeElements + | 817 -> NONTERM_tupleTypeElements + | 818 -> NONTERM_appTypeCon + | 819 -> NONTERM_appTypeCon + | 820 -> NONTERM_appTypeConPower + | 821 -> NONTERM_appTypeConPower + | 822 -> NONTERM_appType + | 823 -> NONTERM_appType + | 824 -> NONTERM_appType + | 825 -> NONTERM_appType + | 826 -> NONTERM_appType + | 827 -> NONTERM_appType + | 828 -> NONTERM_appType + | 829 -> NONTERM_arrayTypeSuffix + | 830 -> NONTERM_arrayTypeSuffix + | 831 -> NONTERM_arrayTypeSuffix + | 832 -> NONTERM_arrayTypeSuffix + | 833 -> NONTERM_appTypePrefixArguments + | 834 -> NONTERM_typeArgListElements + | 835 -> NONTERM_typeArgListElements + | 836 -> NONTERM_typeArgListElements + | 837 -> NONTERM_powerType + | 838 -> NONTERM_powerType + | 839 -> NONTERM_powerType + | 840 -> NONTERM_appTypeNonAtomicDeprecated + | 841 -> NONTERM_appTypeNonAtomicDeprecated + | 842 -> NONTERM_appTypeNonAtomicDeprecated + | 843 -> NONTERM_appTypeNonAtomicDeprecated + | 844 -> NONTERM_appTypeNonAtomicDeprecated + | 845 -> NONTERM_appTypeNonAtomicDeprecated + | 846 -> NONTERM_appTypeNonAtomicDeprecated + | 847 -> NONTERM_powerTypeNonAtomicDeprecated + | 848 -> NONTERM_powerTypeNonAtomicDeprecated + | 849 -> NONTERM_powerTypeNonAtomicDeprecated + | 850 -> NONTERM_atomType + | 851 -> NONTERM_atomType + | 852 -> NONTERM_atomType + | 853 -> NONTERM_atomType + | 854 -> NONTERM_atomType + | 855 -> NONTERM_atomType + | 856 -> NONTERM_atomType + | 857 -> NONTERM_atomType + | 858 -> NONTERM_atomType + | 859 -> NONTERM_atomType + | 860 -> NONTERM_atomType + | 861 -> NONTERM_atomType + | 862 -> NONTERM_atomType + | 863 -> NONTERM_atomType + | 864 -> NONTERM_atomType + | 865 -> NONTERM_typeArgsNoHpaDeprecated + | 866 -> NONTERM_typeArgsNoHpaDeprecated + | 867 -> NONTERM_typeArgsActual + | 868 -> NONTERM_typeArgsActual + | 869 -> NONTERM_typeArgsActual + | 870 -> NONTERM_typeArgsActual + | 871 -> NONTERM_typeArgsActual + | 872 -> NONTERM_typeArgsActual + | 873 -> NONTERM_typeArgsActual + | 874 -> NONTERM_typeArgActual + | 875 -> NONTERM_typeArgActual + | 876 -> NONTERM_typeArgActual + | 877 -> NONTERM_typeArgActualOrDummyIfEmpty + | 878 -> NONTERM_typeArgActualOrDummyIfEmpty + | 879 -> NONTERM_dummyTypeArg + | 880 -> NONTERM_measureTypeArg + | 881 -> NONTERM_measureTypeArg + | 882 -> NONTERM_measureTypeAtom + | 883 -> NONTERM_measureTypeAtom + | 884 -> NONTERM_measureTypeAtom + | 885 -> NONTERM_measureTypePower + | 886 -> NONTERM_measureTypePower + | 887 -> NONTERM_measureTypePower + | 888 -> NONTERM_measureTypePower + | 889 -> NONTERM_measureTypeSeq + | 890 -> NONTERM_measureTypeSeq + | 891 -> NONTERM_measureTypeExpr + | 892 -> NONTERM_measureTypeExpr + | 893 -> NONTERM_measureTypeExpr + | 894 -> NONTERM_measureTypeExpr + | 895 -> NONTERM_typar + | 896 -> NONTERM_typar + | 897 -> NONTERM_staticallyKnownHeadTypar + | 898 -> NONTERM_ident + | 899 -> NONTERM_path + | 900 -> NONTERM_path + | 901 -> NONTERM_path + | 902 -> NONTERM_path + | 903 -> NONTERM_opName + | 904 -> NONTERM_opName + | 905 -> NONTERM_opName + | 906 -> NONTERM_opName + | 907 -> NONTERM_opName + | 908 -> NONTERM_operatorName + | 909 -> NONTERM_operatorName + | 910 -> NONTERM_operatorName + | 911 -> NONTERM_operatorName + | 912 -> NONTERM_operatorName + | 913 -> NONTERM_operatorName + | 914 -> NONTERM_operatorName + | 915 -> NONTERM_operatorName + | 916 -> NONTERM_operatorName + | 917 -> NONTERM_operatorName + | 918 -> NONTERM_operatorName + | 919 -> NONTERM_operatorName + | 920 -> NONTERM_operatorName + | 921 -> NONTERM_operatorName + | 922 -> NONTERM_operatorName + | 923 -> NONTERM_operatorName + | 924 -> NONTERM_operatorName + | 925 -> NONTERM_operatorName + | 926 -> NONTERM_operatorName + | 927 -> NONTERM_operatorName + | 928 -> NONTERM_operatorName + | 929 -> NONTERM_operatorName + | 930 -> NONTERM_operatorName + | 931 -> NONTERM_operatorName + | 932 -> NONTERM_operatorName + | 933 -> NONTERM_operatorName + | 934 -> NONTERM_barName + | 935 -> NONTERM_barNames + | 936 -> NONTERM_barNames + | 937 -> NONTERM_identOrOp + | 938 -> NONTERM_identOrOp + | 939 -> NONTERM_pathOp + | 940 -> NONTERM_pathOp + | 941 -> NONTERM_pathOp + | 942 -> NONTERM_pathOp + | 943 -> NONTERM_nameop + | 944 -> NONTERM_topSeparator + | 945 -> NONTERM_topSeparator + | 946 -> NONTERM_topSeparator + | 947 -> NONTERM_topSeparators + | 948 -> NONTERM_topSeparators + | 949 -> NONTERM_interactiveSeparator + | 950 -> NONTERM_interactiveSeparator + | 951 -> NONTERM_interactiveSeparators + | 952 -> NONTERM_interactiveSeparators + | 953 -> NONTERM_opt_interactiveSeparators + | 954 -> NONTERM_opt_interactiveSeparators + | 955 -> NONTERM_opt_topSeparators + | 956 -> NONTERM_opt_topSeparators + | 957 -> NONTERM_seps + | 958 -> NONTERM_seps + | 959 -> NONTERM_seps + | 960 -> NONTERM_seps + | 961 -> NONTERM_declEnd + | 962 -> NONTERM_declEnd + | 963 -> NONTERM_declEnd + | 964 -> NONTERM_opt_declEnd + | 965 -> NONTERM_opt_declEnd + | 966 -> NONTERM_opt_declEnd + | 967 -> NONTERM_opt_declEnd + | 968 -> NONTERM_opt_ODECLEND + | 969 -> NONTERM_opt_ODECLEND + | 970 -> NONTERM_deprecated_opt_equals + | 971 -> NONTERM_deprecated_opt_equals + | 972 -> NONTERM_opt_OBLOCKSEP + | 973 -> NONTERM_opt_OBLOCKSEP + | 974 -> NONTERM_opt_seps + | 975 -> NONTERM_opt_seps + | 976 -> NONTERM_opt_rec + | 977 -> NONTERM_opt_rec + | 978 -> NONTERM_opt_bar + | 979 -> NONTERM_opt_bar + | 980 -> NONTERM_opt_inline + | 981 -> NONTERM_opt_inline + | 982 -> NONTERM_opt_mutable + | 983 -> NONTERM_opt_mutable + | 984 -> NONTERM_doToken + | 985 -> NONTERM_doToken + | 986 -> NONTERM_doneDeclEnd + | 987 -> NONTERM_doneDeclEnd + | 988 -> NONTERM_structOrBegin + | 989 -> NONTERM_structOrBegin + | 990 -> NONTERM_sigOrBegin + | 991 -> NONTERM_sigOrBegin + | 992 -> NONTERM_colonOrEquals + | 993 -> NONTERM_colonOrEquals + | 994 -> NONTERM_opt_HASH + | 995 -> NONTERM_opt_HIGH_PRECEDENCE_APP + | 996 -> NONTERM_opt_HIGH_PRECEDENCE_APP + | 997 -> NONTERM_opt_HIGH_PRECEDENCE_APP + | 998 -> NONTERM_opt_HIGH_PRECEDENCE_TYAPP + | 999 -> NONTERM_opt_HIGH_PRECEDENCE_TYAPP + | 1000 -> NONTERM_type_keyword + | 1001 -> NONTERM_type_keyword + | 1002 -> NONTERM_type_keyword + | 1003 -> NONTERM_module_keyword + | 1004 -> NONTERM_module_keyword + | 1005 -> NONTERM_module_keyword + | 1006 -> NONTERM_rbrace + | 1007 -> NONTERM_rbrace + | 1008 -> NONTERM_rbrace + | 1009 -> NONTERM_rparen + | 1010 -> NONTERM_rparen + | 1011 -> NONTERM_rparen + | 1012 -> NONTERM_oblockend + | 1013 -> NONTERM_oblockend + | 1014 -> NONTERM_oblockend + | 1015 -> NONTERM_ends_other_than_rparen_coming_soon_or_recover + | 1016 -> NONTERM_ends_other_than_rparen_coming_soon_or_recover + | 1017 -> NONTERM_ends_other_than_rparen_coming_soon_or_recover + | 1018 -> NONTERM_ends_other_than_rparen_coming_soon_or_recover + | 1019 -> NONTERM_ends_other_than_rparen_coming_soon_or_recover + | 1020 -> NONTERM_ends_coming_soon_or_recover + | 1021 -> NONTERM_ends_coming_soon_or_recover + | 1022 -> NONTERM_ends_coming_soon_or_recover + | 1023 -> NONTERM_ends_coming_soon_or_recover + | 1024 -> NONTERM_ends_coming_soon_or_recover + | 1025 -> NONTERM_ends_coming_soon_or_recover + | _ -> failwith "prodIdxToNonTerminal: bad production index" + +let _fsyacc_endOfInputTag = 194 +let _fsyacc_tagOfErrorTerminal = 192 + +// This function gets the name of a token as a string +let token_to_string (t:token) = + match t with + | HASH_IF _ -> "HASH_IF" + | HASH_ELSE _ -> "HASH_ELSE" + | HASH_ENDIF _ -> "HASH_ENDIF" + | COMMENT _ -> "COMMENT" + | WHITESPACE _ -> "WHITESPACE" + | HASH_LINE _ -> "HASH_LINE" + | HASH_LIGHT _ -> "HASH_LIGHT" + | INACTIVECODE _ -> "INACTIVECODE" + | LINE_COMMENT _ -> "LINE_COMMENT" + | STRING_TEXT _ -> "STRING_TEXT" + | EOF _ -> "EOF" + | LEX_FAILURE _ -> "LEX_FAILURE" + | ODUMMY _ -> "ODUMMY" + | OINTERFACE_MEMBER -> "OINTERFACE_MEMBER" + | OBLOCKEND -> "OBLOCKEND" + | OBLOCKEND_COMING_SOON -> "OBLOCKEND_COMING_SOON" + | OBLOCKEND_IS_HERE -> "OBLOCKEND_IS_HERE" + | ORIGHT_BLOCK_END -> "ORIGHT_BLOCK_END" + | ODECLEND -> "ODECLEND" + | OEND -> "OEND" + | OBLOCKSEP -> "OBLOCKSEP" + | OBLOCKBEGIN -> "OBLOCKBEGIN" + | ORESET -> "ORESET" + | OFUN -> "OFUN" + | OFUNCTION -> "OFUNCTION" + | OWITH -> "OWITH" + | OELSE -> "OELSE" + | OTHEN -> "OTHEN" + | ODO_BANG -> "ODO_BANG" + | ODO -> "ODO" + | OBINDER _ -> "OBINDER" + | OLET _ -> "OLET" + | HIGH_PRECEDENCE_TYAPP -> "HIGH_PRECEDENCE_TYAPP" + | HIGH_PRECEDENCE_PAREN_APP -> "HIGH_PRECEDENCE_PAREN_APP" + | HIGH_PRECEDENCE_BRACK_APP -> "HIGH_PRECEDENCE_BRACK_APP" + | TYPE_COMING_SOON -> "TYPE_COMING_SOON" + | TYPE_IS_HERE -> "TYPE_IS_HERE" + | MODULE_COMING_SOON -> "MODULE_COMING_SOON" + | MODULE_IS_HERE -> "MODULE_IS_HERE" + | EXTERN -> "EXTERN" + | VOID -> "VOID" + | PUBLIC -> "PUBLIC" + | PRIVATE -> "PRIVATE" + | INTERNAL -> "INTERNAL" + | GLOBAL -> "GLOBAL" + | STATIC -> "STATIC" + | MEMBER -> "MEMBER" + | CLASS -> "CLASS" + | ABSTRACT -> "ABSTRACT" + | OVERRIDE -> "OVERRIDE" + | DEFAULT -> "DEFAULT" + | CONSTRUCTOR -> "CONSTRUCTOR" + | INHERIT -> "INHERIT" + | GREATER_RBRACK -> "GREATER_RBRACK" + | STRUCT -> "STRUCT" + | SIG -> "SIG" + | BAR -> "BAR" + | RBRACK -> "RBRACK" + | RBRACE -> "RBRACE" + | RBRACE_COMING_SOON -> "RBRACE_COMING_SOON" + | RBRACE_IS_HERE -> "RBRACE_IS_HERE" + | MINUS -> "MINUS" + | DOLLAR -> "DOLLAR" + | LBRACE_LESS -> "LBRACE_LESS" + | BAR_RBRACK -> "BAR_RBRACK" + | GREATER_RBRACE -> "GREATER_RBRACE" + | UNDERSCORE -> "UNDERSCORE" + | SEMICOLON_SEMICOLON -> "SEMICOLON_SEMICOLON" + | LARROW -> "LARROW" + | EQUALS -> "EQUALS" + | LBRACK -> "LBRACK" + | LBRACK_BAR -> "LBRACK_BAR" + | LBRACK_LESS -> "LBRACK_LESS" + | LBRACE -> "LBRACE" + | QMARK -> "QMARK" + | QMARK_QMARK -> "QMARK_QMARK" + | DOT -> "DOT" + | COLON -> "COLON" + | COLON_COLON -> "COLON_COLON" + | COLON_GREATER -> "COLON_GREATER" + | COLON_QMARK_GREATER -> "COLON_QMARK_GREATER" + | COLON_QMARK -> "COLON_QMARK" + | COLON_EQUALS -> "COLON_EQUALS" + | SEMICOLON -> "SEMICOLON" + | WHEN -> "WHEN" + | WHILE -> "WHILE" + | WITH -> "WITH" + | HASH -> "HASH" + | AMP -> "AMP" + | AMP_AMP -> "AMP_AMP" + | QUOTE -> "QUOTE" + | LPAREN -> "LPAREN" + | RPAREN -> "RPAREN" + | RPAREN_COMING_SOON -> "RPAREN_COMING_SOON" + | RPAREN_IS_HERE -> "RPAREN_IS_HERE" + | STAR -> "STAR" + | COMMA -> "COMMA" + | RARROW -> "RARROW" + | GREATER_BAR_RBRACK -> "GREATER_BAR_RBRACK" + | LPAREN_STAR_RPAREN -> "LPAREN_STAR_RPAREN" + | OPEN -> "OPEN" + | OR -> "OR" + | REC -> "REC" + | THEN -> "THEN" + | TO -> "TO" + | TRUE -> "TRUE" + | TRY -> "TRY" + | TYPE -> "TYPE" + | VAL -> "VAL" + | INLINE -> "INLINE" + | INTERFACE -> "INTERFACE" + | INSTANCE -> "INSTANCE" + | CONST -> "CONST" + | LAZY -> "LAZY" + | OLAZY -> "OLAZY" + | MATCH -> "MATCH" + | MUTABLE -> "MUTABLE" + | NEW -> "NEW" + | OF -> "OF" + | EXCEPTION -> "EXCEPTION" + | FALSE -> "FALSE" + | FOR -> "FOR" + | FUN -> "FUN" + | FUNCTION -> "FUNCTION" + | IF -> "IF" + | IN -> "IN" + | JOIN_IN -> "JOIN_IN" + | FINALLY -> "FINALLY" + | DO_BANG -> "DO_BANG" + | AND -> "AND" + | AS -> "AS" + | ASSERT -> "ASSERT" + | OASSERT -> "OASSERT" + | ASR -> "ASR" + | BEGIN -> "BEGIN" + | DO -> "DO" + | DONE -> "DONE" + | DOWNTO -> "DOWNTO" + | ELSE -> "ELSE" + | ELIF -> "ELIF" + | END -> "END" + | DOT_DOT -> "DOT_DOT" + | BAR_BAR -> "BAR_BAR" + | UPCAST -> "UPCAST" + | DOWNCAST -> "DOWNCAST" + | NULL -> "NULL" + | RESERVED -> "RESERVED" + | MODULE -> "MODULE" + | NAMESPACE -> "NAMESPACE" + | DELEGATE -> "DELEGATE" + | CONSTRAINT -> "CONSTRAINT" + | BASE -> "BASE" + | LQUOTE _ -> "LQUOTE" + | RQUOTE _ -> "RQUOTE" + | RQUOTE_DOT _ -> "RQUOTE_DOT" + | PERCENT_OP _ -> "PERCENT_OP" + | BINDER _ -> "BINDER" + | LESS _ -> "LESS" + | GREATER _ -> "GREATER" + | LET _ -> "LET" + | YIELD _ -> "YIELD" + | YIELD_BANG _ -> "YIELD_BANG" + | BIGNUM _ -> "BIGNUM" + | DECIMAL _ -> "DECIMAL" + | CHAR _ -> "CHAR" + | IEEE64 _ -> "IEEE64" + | IEEE32 _ -> "IEEE32" + | NATIVEINT _ -> "NATIVEINT" + | UNATIVEINT _ -> "UNATIVEINT" + | UINT64 _ -> "UINT64" + | UINT32 _ -> "UINT32" + | UINT16 _ -> "UINT16" + | UINT8 _ -> "UINT8" + | INT64 _ -> "INT64" + | INT32 _ -> "INT32" + | INT32_DOT_DOT _ -> "INT32_DOT_DOT" + | INT16 _ -> "INT16" + | INT8 _ -> "INT8" + | FUNKY_OPERATOR_NAME _ -> "FUNKY_OPERATOR_NAME" + | ADJACENT_PREFIX_OP _ -> "ADJACENT_PREFIX_OP" + | PLUS_MINUS_OP _ -> "PLUS_MINUS_OP" + | INFIX_AMP_OP _ -> "INFIX_AMP_OP" + | INFIX_STAR_DIV_MOD_OP _ -> "INFIX_STAR_DIV_MOD_OP" + | PREFIX_OP _ -> "PREFIX_OP" + | INFIX_BAR_OP _ -> "INFIX_BAR_OP" + | INFIX_AT_HAT_OP _ -> "INFIX_AT_HAT_OP" + | INFIX_COMPARE_OP _ -> "INFIX_COMPARE_OP" + | INFIX_STAR_STAR_OP _ -> "INFIX_STAR_STAR_OP" + | IDENT _ -> "IDENT" + | KEYWORD_STRING _ -> "KEYWORD_STRING" + | STRING _ -> "STRING" + | BYTEARRAY _ -> "BYTEARRAY" + +// This function gets the data carried by a token as an object +let _fsyacc_dataOfToken (t:token) = + match t with + | HASH_IF _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | HASH_ELSE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | HASH_ENDIF _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | COMMENT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | WHITESPACE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | HASH_LINE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | HASH_LIGHT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INACTIVECODE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | LINE_COMMENT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | STRING_TEXT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | EOF _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | LEX_FAILURE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | ODUMMY _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | OINTERFACE_MEMBER -> (null : System.Object) + | OBLOCKEND -> (null : System.Object) + | OBLOCKEND_COMING_SOON -> (null : System.Object) + | OBLOCKEND_IS_HERE -> (null : System.Object) + | ORIGHT_BLOCK_END -> (null : System.Object) + | ODECLEND -> (null : System.Object) + | OEND -> (null : System.Object) + | OBLOCKSEP -> (null : System.Object) + | OBLOCKBEGIN -> (null : System.Object) + | ORESET -> (null : System.Object) + | OFUN -> (null : System.Object) + | OFUNCTION -> (null : System.Object) + | OWITH -> (null : System.Object) + | OELSE -> (null : System.Object) + | OTHEN -> (null : System.Object) + | ODO_BANG -> (null : System.Object) + | ODO -> (null : System.Object) + | OBINDER _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | OLET _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | HIGH_PRECEDENCE_TYAPP -> (null : System.Object) + | HIGH_PRECEDENCE_PAREN_APP -> (null : System.Object) + | HIGH_PRECEDENCE_BRACK_APP -> (null : System.Object) + | TYPE_COMING_SOON -> (null : System.Object) + | TYPE_IS_HERE -> (null : System.Object) + | MODULE_COMING_SOON -> (null : System.Object) + | MODULE_IS_HERE -> (null : System.Object) + | EXTERN -> (null : System.Object) + | VOID -> (null : System.Object) + | PUBLIC -> (null : System.Object) + | PRIVATE -> (null : System.Object) + | INTERNAL -> (null : System.Object) + | GLOBAL -> (null : System.Object) + | STATIC -> (null : System.Object) + | MEMBER -> (null : System.Object) + | CLASS -> (null : System.Object) + | ABSTRACT -> (null : System.Object) + | OVERRIDE -> (null : System.Object) + | DEFAULT -> (null : System.Object) + | CONSTRUCTOR -> (null : System.Object) + | INHERIT -> (null : System.Object) + | GREATER_RBRACK -> (null : System.Object) + | STRUCT -> (null : System.Object) + | SIG -> (null : System.Object) + | BAR -> (null : System.Object) + | RBRACK -> (null : System.Object) + | RBRACE -> (null : System.Object) + | RBRACE_COMING_SOON -> (null : System.Object) + | RBRACE_IS_HERE -> (null : System.Object) + | MINUS -> (null : System.Object) + | DOLLAR -> (null : System.Object) + | LBRACE_LESS -> (null : System.Object) + | BAR_RBRACK -> (null : System.Object) + | GREATER_RBRACE -> (null : System.Object) + | UNDERSCORE -> (null : System.Object) + | SEMICOLON_SEMICOLON -> (null : System.Object) + | LARROW -> (null : System.Object) + | EQUALS -> (null : System.Object) + | LBRACK -> (null : System.Object) + | LBRACK_BAR -> (null : System.Object) + | LBRACK_LESS -> (null : System.Object) + | LBRACE -> (null : System.Object) + | QMARK -> (null : System.Object) + | QMARK_QMARK -> (null : System.Object) + | DOT -> (null : System.Object) + | COLON -> (null : System.Object) + | COLON_COLON -> (null : System.Object) + | COLON_GREATER -> (null : System.Object) + | COLON_QMARK_GREATER -> (null : System.Object) + | COLON_QMARK -> (null : System.Object) + | COLON_EQUALS -> (null : System.Object) + | SEMICOLON -> (null : System.Object) + | WHEN -> (null : System.Object) + | WHILE -> (null : System.Object) + | WITH -> (null : System.Object) + | HASH -> (null : System.Object) + | AMP -> (null : System.Object) + | AMP_AMP -> (null : System.Object) + | QUOTE -> (null : System.Object) + | LPAREN -> (null : System.Object) + | RPAREN -> (null : System.Object) + | RPAREN_COMING_SOON -> (null : System.Object) + | RPAREN_IS_HERE -> (null : System.Object) + | STAR -> (null : System.Object) + | COMMA -> (null : System.Object) + | RARROW -> (null : System.Object) + | GREATER_BAR_RBRACK -> (null : System.Object) + | LPAREN_STAR_RPAREN -> (null : System.Object) + | OPEN -> (null : System.Object) + | OR -> (null : System.Object) + | REC -> (null : System.Object) + | THEN -> (null : System.Object) + | TO -> (null : System.Object) + | TRUE -> (null : System.Object) + | TRY -> (null : System.Object) + | TYPE -> (null : System.Object) + | VAL -> (null : System.Object) + | INLINE -> (null : System.Object) + | INTERFACE -> (null : System.Object) + | INSTANCE -> (null : System.Object) + | CONST -> (null : System.Object) + | LAZY -> (null : System.Object) + | OLAZY -> (null : System.Object) + | MATCH -> (null : System.Object) + | MUTABLE -> (null : System.Object) + | NEW -> (null : System.Object) + | OF -> (null : System.Object) + | EXCEPTION -> (null : System.Object) + | FALSE -> (null : System.Object) + | FOR -> (null : System.Object) + | FUN -> (null : System.Object) + | FUNCTION -> (null : System.Object) + | IF -> (null : System.Object) + | IN -> (null : System.Object) + | JOIN_IN -> (null : System.Object) + | FINALLY -> (null : System.Object) + | DO_BANG -> (null : System.Object) + | AND -> (null : System.Object) + | AS -> (null : System.Object) + | ASSERT -> (null : System.Object) + | OASSERT -> (null : System.Object) + | ASR -> (null : System.Object) + | BEGIN -> (null : System.Object) + | DO -> (null : System.Object) + | DONE -> (null : System.Object) + | DOWNTO -> (null : System.Object) + | ELSE -> (null : System.Object) + | ELIF -> (null : System.Object) + | END -> (null : System.Object) + | DOT_DOT -> (null : System.Object) + | BAR_BAR -> (null : System.Object) + | UPCAST -> (null : System.Object) + | DOWNCAST -> (null : System.Object) + | NULL -> (null : System.Object) + | RESERVED -> (null : System.Object) + | MODULE -> (null : System.Object) + | NAMESPACE -> (null : System.Object) + | DELEGATE -> (null : System.Object) + | CONSTRAINT -> (null : System.Object) + | BASE -> (null : System.Object) + | LQUOTE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | RQUOTE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | RQUOTE_DOT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | PERCENT_OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | BINDER _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | LESS _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | GREATER _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | LET _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | YIELD _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | YIELD_BANG _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | BIGNUM _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | DECIMAL _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | CHAR _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | IEEE64 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | IEEE32 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | NATIVEINT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | UNATIVEINT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | UINT64 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | UINT32 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | UINT16 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | UINT8 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INT64 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INT32 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INT32_DOT_DOT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INT16 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INT8 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | FUNKY_OPERATOR_NAME _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | ADJACENT_PREFIX_OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | PLUS_MINUS_OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INFIX_AMP_OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INFIX_STAR_DIV_MOD_OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | PREFIX_OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INFIX_BAR_OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INFIX_AT_HAT_OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INFIX_COMPARE_OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INFIX_STAR_STAR_OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | IDENT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | KEYWORD_STRING _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | STRING _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | BYTEARRAY _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x +let _fsyacc_gotos = [| 0us; 65535us; 0us; 65535us; 0us; 65535us; 1us; 65535us; 4us; 5us; 23us; 65535us; 0us; 160us; 2us; 120us; 4us; 36us; 25us; 36us; 27us; 36us; 29us; 36us; 59us; 160us; 66us; 120us; 70us; 160us; 75us; 120us; 79us; 160us; 89us; 160us; 92us; 160us; 94us; 120us; 106us; 120us; 110us; 120us; 112us; 120us; 117us; 120us; 138us; 160us; 142us; 120us; 152us; 120us; 189us; 160us; 193us; 160us; 249us; 65535us; 11us; 14us; 34us; 764us; 74us; 764us; 104us; 764us; 126us; 764us; 179us; 764us; 182us; 764us; 184us; 764us; 213us; 764us; 217us; 764us; 222us; 764us; 253us; 764us; 300us; 764us; 306us; 764us; 310us; 764us; 312us; 764us; 321us; 764us; 353us; 764us; 387us; 764us; 390us; 764us; 392us; 764us; 395us; 764us; 403us; 764us; 409us; 764us; 416us; 764us; 427us; 764us; 430us; 764us; 439us; 764us; 446us; 764us; 449us; 764us; 471us; 764us; 474us; 764us; 507us; 764us; 515us; 764us; 524us; 525us; 570us; 764us; 573us; 764us; 610us; 764us; 613us; 764us; 616us; 764us; 628us; 764us; 632us; 764us; 636us; 764us; 647us; 764us; 660us; 764us; 670us; 764us; 676us; 764us; 722us; 764us; 725us; 764us; 729us; 764us; 739us; 764us; 745us; 764us; 775us; 764us; 798us; 764us; 799us; 764us; 803us; 764us; 804us; 764us; 805us; 764us; 806us; 764us; 808us; 764us; 810us; 764us; 812us; 764us; 814us; 764us; 817us; 764us; 819us; 764us; 821us; 764us; 829us; 764us; 832us; 764us; 844us; 764us; 865us; 764us; 868us; 764us; 870us; 764us; 871us; 764us; 873us; 764us; 874us; 764us; 875us; 764us; 876us; 764us; 883us; 764us; 885us; 764us; 887us; 764us; 892us; 764us; 899us; 764us; 904us; 764us; 906us; 764us; 909us; 764us; 912us; 764us; 928us; 764us; 931us; 764us; 934us; 764us; 940us; 764us; 944us; 764us; 948us; 764us; 950us; 764us; 955us; 764us; 957us; 764us; 959us; 764us; 961us; 764us; 963us; 764us; 965us; 764us; 974us; 764us; 976us; 764us; 984us; 764us; 991us; 764us; 997us; 764us; 999us; 764us; 1001us; 764us; 1002us; 764us; 1005us; 764us; 1007us; 764us; 1008us; 764us; 1011us; 764us; 1014us; 764us; 1017us; 764us; 1019us; 764us; 1024us; 764us; 1061us; 764us; 1063us; 764us; 1065us; 764us; 1067us; 764us; 1069us; 764us; 1072us; 764us; 1073us; 764us; 1074us; 764us; 1075us; 764us; 1076us; 764us; 1077us; 764us; 1078us; 764us; 1079us; 764us; 1080us; 764us; 1081us; 764us; 1082us; 764us; 1083us; 764us; 1084us; 764us; 1085us; 764us; 1086us; 764us; 1087us; 764us; 1088us; 764us; 1089us; 764us; 1090us; 764us; 1091us; 764us; 1113us; 764us; 1116us; 764us; 1118us; 764us; 1123us; 764us; 1130us; 764us; 1135us; 764us; 1136us; 764us; 1140us; 764us; 1142us; 764us; 1146us; 764us; 1148us; 764us; 1152us; 764us; 1155us; 764us; 1157us; 764us; 1159us; 764us; 1160us; 764us; 1162us; 764us; 1163us; 764us; 1165us; 764us; 1166us; 764us; 1168us; 764us; 1169us; 764us; 1171us; 764us; 1172us; 764us; 1174us; 764us; 1175us; 764us; 1177us; 764us; 1178us; 764us; 1181us; 764us; 1182us; 764us; 1187us; 764us; 1189us; 764us; 1191us; 764us; 1192us; 764us; 1195us; 764us; 1202us; 764us; 1203us; 764us; 1206us; 764us; 1207us; 764us; 1220us; 764us; 1229us; 764us; 1236us; 764us; 1244us; 764us; 1247us; 764us; 1250us; 764us; 1253us; 764us; 1254us; 764us; 1265us; 764us; 1272us; 764us; 1273us; 764us; 1279us; 764us; 1285us; 764us; 1286us; 764us; 1287us; 764us; 1303us; 764us; 1313us; 764us; 1326us; 764us; 1327us; 764us; 1329us; 764us; 1331us; 764us; 1335us; 764us; 1336us; 764us; 1337us; 1338us; 1340us; 764us; 1346us; 764us; 1349us; 764us; 1351us; 764us; 1353us; 764us; 1355us; 764us; 1359us; 764us; 1364us; 764us; 1389us; 764us; 1414us; 764us; 1421us; 764us; 1423us; 764us; 1426us; 764us; 1428us; 764us; 1439us; 764us; 1441us; 764us; 1448us; 764us; 1451us; 764us; 1454us; 764us; 1457us; 764us; 1459us; 764us; 1461us; 764us; 1465us; 764us; 1468us; 764us; 1472us; 764us; 1475us; 764us; 1478us; 764us; 1480us; 764us; 1482us; 764us; 1485us; 764us; 1487us; 764us; 1490us; 764us; 1509us; 764us; 1510us; 764us; 1518us; 764us; 1519us; 764us; 1524us; 764us; 1525us; 764us; 1537us; 764us; 1541us; 764us; 1555us; 764us; 1559us; 764us; 1566us; 764us; 1580us; 764us; 1582us; 764us; 1593us; 764us; 1us; 65535us; 11us; 15us; 1us; 65535us; 10us; 11us; 7us; 65535us; 4us; 18us; 19us; 20us; 21us; 22us; 23us; 24us; 25us; 18us; 27us; 18us; 29us; 18us; 4us; 65535us; 4us; 6us; 25us; 26us; 27us; 28us; 29us; 30us; 5us; 65535us; 4us; 19us; 25us; 19us; 27us; 19us; 29us; 19us; 31us; 32us; 4us; 65535us; 4us; 21us; 25us; 21us; 27us; 21us; 29us; 21us; 4us; 65535us; 4us; 23us; 25us; 23us; 27us; 23us; 29us; 23us; 1us; 65535us; 0us; 1us; 1us; 65535us; 2us; 3us; 6us; 65535us; 34us; 132us; 69us; 70us; 74us; 75us; 104us; 132us; 122us; 132us; 163us; 164us; 4us; 65535us; 54us; 58us; 56us; 58us; 61us; 65us; 63us; 65us; 1us; 65535us; 0us; 37us; 2us; 65535us; 54us; 55us; 56us; 57us; 2us; 65535us; 54us; 56us; 56us; 56us; 1us; 65535us; 2us; 43us; 2us; 65535us; 61us; 62us; 63us; 64us; 2us; 65535us; 61us; 63us; 63us; 63us; 2us; 65535us; 0us; 54us; 59us; 60us; 2us; 65535us; 2us; 61us; 66us; 67us; 3us; 65535us; 0us; 72us; 59us; 72us; 70us; 71us; 6us; 65535us; 0us; 78us; 59us; 78us; 70us; 78us; 79us; 80us; 189us; 190us; 193us; 194us; 9us; 65535us; 0us; 86us; 59us; 86us; 70us; 86us; 79us; 86us; 89us; 90us; 92us; 93us; 138us; 187us; 189us; 86us; 193us; 86us; 3us; 65535us; 2us; 77us; 66us; 77us; 75us; 76us; 5us; 65535us; 2us; 101us; 66us; 101us; 75us; 101us; 94us; 95us; 152us; 153us; 9us; 65535us; 2us; 102us; 66us; 102us; 75us; 102us; 94us; 102us; 106us; 107us; 112us; 113us; 117us; 118us; 142us; 146us; 152us; 102us; 10us; 65535us; 2us; 108us; 66us; 108us; 75us; 108us; 94us; 108us; 106us; 108us; 110us; 111us; 112us; 108us; 117us; 108us; 142us; 108us; 152us; 108us; 10us; 65535us; 2us; 110us; 66us; 110us; 75us; 110us; 94us; 110us; 106us; 110us; 110us; 110us; 112us; 110us; 117us; 110us; 142us; 110us; 152us; 110us; 15us; 65535us; 2us; 119us; 4us; 31us; 25us; 31us; 27us; 31us; 29us; 31us; 31us; 31us; 66us; 119us; 75us; 119us; 94us; 119us; 106us; 119us; 110us; 119us; 112us; 119us; 117us; 119us; 142us; 119us; 152us; 119us; 1us; 65535us; 165us; 166us; 1us; 65535us; 133us; 134us; 2us; 65535us; 133us; 150us; 142us; 143us; 0us; 65535us; 1us; 65535us; 329us; 332us; 9us; 65535us; 0us; 88us; 59us; 88us; 70us; 88us; 79us; 88us; 89us; 88us; 92us; 88us; 138us; 88us; 189us; 88us; 193us; 88us; 9us; 65535us; 0us; 161us; 59us; 161us; 70us; 161us; 79us; 161us; 89us; 161us; 92us; 161us; 138us; 161us; 189us; 161us; 193us; 161us; 2us; 65535us; 180us; 181us; 308us; 309us; 1us; 65535us; 165us; 167us; 80us; 65535us; 0us; 68us; 2us; 73us; 4us; 33us; 25us; 33us; 27us; 33us; 29us; 33us; 31us; 121us; 59us; 68us; 66us; 73us; 70us; 162us; 75us; 103us; 79us; 162us; 89us; 162us; 92us; 162us; 94us; 103us; 106us; 103us; 110us; 121us; 112us; 103us; 117us; 103us; 128us; 323us; 138us; 162us; 142us; 103us; 152us; 103us; 157us; 400us; 172us; 173us; 189us; 162us; 193us; 162us; 232us; 323us; 235us; 323us; 238us; 506us; 241us; 298us; 243us; 297us; 256us; 297us; 262us; 297us; 266us; 297us; 270us; 297us; 277us; 297us; 318us; 323us; 326us; 323us; 329us; 333us; 330us; 506us; 338us; 506us; 340us; 401us; 342us; 400us; 356us; 400us; 360us; 400us; 362us; 400us; 366us; 400us; 372us; 400us; 375us; 400us; 386us; 387us; 433us; 323us; 462us; 493us; 465us; 400us; 468us; 297us; 485us; 493us; 491us; 493us; 518us; 642us; 538us; 547us; 543us; 547us; 544us; 547us; 550us; 547us; 555us; 547us; 580us; 297us; 587us; 297us; 596us; 606us; 599us; 606us; 604us; 606us; 639us; 642us; 654us; 655us; 667us; 718us; 673us; 718us; 685us; 712us; 690us; 699us; 695us; 699us; 697us; 699us; 715us; 718us; 1301us; 297us; 1401us; 494us; 1403us; 718us; 114us; 65535us; 0us; 196us; 2us; 135us; 4us; 135us; 25us; 135us; 27us; 135us; 29us; 135us; 31us; 135us; 59us; 196us; 66us; 135us; 70us; 196us; 75us; 135us; 79us; 196us; 89us; 196us; 92us; 196us; 94us; 135us; 106us; 135us; 110us; 135us; 112us; 135us; 117us; 135us; 128us; 196us; 138us; 196us; 142us; 135us; 152us; 135us; 157us; 196us; 172us; 196us; 179us; 1459us; 189us; 196us; 193us; 196us; 197us; 198us; 232us; 196us; 235us; 196us; 238us; 196us; 241us; 196us; 243us; 196us; 253us; 1459us; 256us; 196us; 262us; 196us; 266us; 196us; 270us; 196us; 277us; 196us; 306us; 1459us; 318us; 196us; 321us; 1459us; 326us; 196us; 329us; 196us; 330us; 196us; 338us; 196us; 340us; 196us; 342us; 196us; 353us; 1459us; 356us; 196us; 360us; 196us; 362us; 196us; 366us; 196us; 372us; 196us; 375us; 196us; 386us; 196us; 416us; 1459us; 433us; 196us; 462us; 196us; 465us; 196us; 468us; 196us; 485us; 196us; 491us; 196us; 518us; 196us; 538us; 196us; 543us; 196us; 544us; 196us; 550us; 196us; 555us; 196us; 580us; 196us; 587us; 196us; 596us; 196us; 599us; 196us; 604us; 196us; 613us; 1459us; 639us; 196us; 654us; 196us; 667us; 196us; 673us; 196us; 685us; 196us; 690us; 196us; 695us; 196us; 697us; 196us; 715us; 196us; 777us; 777us; 778us; 777us; 780us; 777us; 829us; 870us; 832us; 870us; 844us; 870us; 865us; 870us; 870us; 870us; 871us; 870us; 873us; 870us; 874us; 870us; 875us; 870us; 876us; 870us; 883us; 870us; 885us; 870us; 974us; 870us; 1116us; 870us; 1118us; 870us; 1123us; 870us; 1130us; 870us; 1301us; 196us; 1401us; 196us; 1403us; 196us; 1439us; 870us; 1441us; 870us; 1448us; 1459us; 1451us; 1459us; 1454us; 1459us; 1457us; 1459us; 114us; 65535us; 0us; 197us; 2us; 197us; 4us; 197us; 25us; 197us; 27us; 197us; 29us; 197us; 31us; 197us; 59us; 197us; 66us; 197us; 70us; 197us; 75us; 197us; 79us; 197us; 89us; 197us; 92us; 197us; 94us; 197us; 106us; 197us; 110us; 197us; 112us; 197us; 117us; 197us; 128us; 197us; 138us; 197us; 142us; 197us; 152us; 197us; 157us; 197us; 172us; 197us; 179us; 197us; 189us; 197us; 193us; 197us; 197us; 197us; 232us; 197us; 235us; 197us; 238us; 197us; 241us; 197us; 243us; 197us; 253us; 197us; 256us; 197us; 262us; 197us; 266us; 197us; 270us; 197us; 277us; 197us; 306us; 197us; 318us; 197us; 321us; 197us; 326us; 197us; 329us; 197us; 330us; 197us; 338us; 197us; 340us; 197us; 342us; 197us; 353us; 197us; 356us; 197us; 360us; 197us; 362us; 197us; 366us; 197us; 372us; 197us; 375us; 197us; 386us; 197us; 416us; 197us; 433us; 197us; 462us; 197us; 465us; 197us; 468us; 197us; 485us; 197us; 491us; 197us; 518us; 197us; 538us; 197us; 543us; 197us; 544us; 197us; 550us; 197us; 555us; 197us; 580us; 197us; 587us; 197us; 596us; 197us; 599us; 197us; 604us; 197us; 613us; 197us; 639us; 197us; 654us; 197us; 667us; 197us; 673us; 197us; 685us; 197us; 690us; 197us; 695us; 197us; 697us; 197us; 715us; 197us; 777us; 197us; 778us; 197us; 780us; 197us; 829us; 197us; 832us; 197us; 844us; 197us; 865us; 197us; 870us; 197us; 871us; 197us; 873us; 197us; 874us; 197us; 875us; 197us; 876us; 197us; 883us; 197us; 885us; 197us; 974us; 197us; 1116us; 197us; 1118us; 197us; 1123us; 197us; 1130us; 197us; 1301us; 197us; 1401us; 197us; 1403us; 197us; 1439us; 197us; 1441us; 197us; 1448us; 197us; 1451us; 197us; 1454us; 197us; 1457us; 197us; 1us; 65535us; 199us; 200us; 2us; 65535us; 199us; 209us; 210us; 211us; 2us; 65535us; 199us; 215us; 210us; 215us; 2us; 65535us; 69us; 168us; 163us; 168us; 2us; 65535us; 232us; 233us; 235us; 236us; 3us; 65535us; 232us; 234us; 235us; 234us; 318us; 319us; 1us; 65535us; 238us; 239us; 2us; 65535us; 238us; 248us; 241us; 242us; 2us; 65535us; 238us; 251us; 241us; 251us; 2us; 65535us; 238us; 255us; 241us; 255us; 3us; 65535us; 256us; 257us; 266us; 267us; 468us; 469us; 8us; 65535us; 241us; 263us; 243us; 244us; 256us; 274us; 262us; 263us; 266us; 274us; 270us; 271us; 277us; 278us; 468us; 274us; 8us; 65535us; 241us; 275us; 243us; 275us; 256us; 275us; 262us; 275us; 266us; 275us; 270us; 275us; 277us; 275us; 468us; 275us; 4us; 65535us; 299us; 285us; 300us; 285us; 402us; 406us; 403us; 406us; 2us; 65535us; 299us; 301us; 300us; 301us; 3us; 65535us; 307us; 308us; 417us; 418us; 447us; 448us; 2us; 65535us; 288us; 289us; 290us; 291us; 11us; 65535us; 241us; 276us; 243us; 276us; 256us; 276us; 262us; 276us; 266us; 276us; 270us; 276us; 277us; 276us; 468us; 276us; 580us; 581us; 587us; 588us; 1301us; 1302us; 6us; 65535us; 128us; 329us; 232us; 237us; 235us; 237us; 318us; 237us; 326us; 329us; 433us; 329us; 2us; 65535us; 129us; 130us; 327us; 328us; 3us; 65535us; 128us; 129us; 326us; 327us; 433us; 434us; 2us; 65535us; 330us; 331us; 338us; 339us; 3us; 65535us; 330us; 348us; 338us; 348us; 340us; 341us; 3us; 65535us; 330us; 351us; 338us; 351us; 340us; 351us; 3us; 65535us; 330us; 355us; 338us; 355us; 340us; 355us; 3us; 65535us; 157us; 158us; 356us; 357us; 465us; 466us; 10us; 65535us; 157us; 370us; 340us; 363us; 342us; 343us; 356us; 370us; 360us; 373us; 362us; 363us; 366us; 367us; 372us; 373us; 375us; 376us; 465us; 370us; 10us; 65535us; 157us; 371us; 340us; 371us; 342us; 371us; 356us; 371us; 360us; 371us; 362us; 371us; 366us; 371us; 372us; 371us; 375us; 371us; 465us; 371us; 1us; 65535us; 394us; 397us; 2us; 65535us; 377us; 378us; 379us; 380us; 3us; 65535us; 377us; 383us; 379us; 383us; 384us; 385us; 3us; 65535us; 406us; 407us; 495us; 496us; 501us; 502us; 2us; 65535us; 402us; 412us; 403us; 412us; 10us; 65535us; 157us; 374us; 340us; 374us; 342us; 374us; 356us; 374us; 360us; 374us; 362us; 374us; 366us; 374us; 372us; 374us; 375us; 374us; 465us; 374us; 3us; 65535us; 280us; 423us; 402us; 421us; 403us; 421us; 2us; 65535us; 406us; 425us; 495us; 498us; 1us; 65535us; 444us; 445us; 39us; 65535us; 387us; 807us; 392us; 807us; 427us; 839us; 722us; 807us; 798us; 807us; 799us; 807us; 803us; 807us; 804us; 807us; 805us; 807us; 806us; 807us; 808us; 839us; 810us; 839us; 812us; 839us; 817us; 839us; 819us; 839us; 821us; 839us; 829us; 807us; 832us; 807us; 844us; 807us; 865us; 807us; 870us; 807us; 871us; 807us; 873us; 807us; 874us; 807us; 875us; 807us; 876us; 807us; 883us; 807us; 885us; 807us; 974us; 807us; 1001us; 807us; 1007us; 807us; 1116us; 807us; 1118us; 807us; 1123us; 807us; 1130us; 807us; 1421us; 839us; 1426us; 839us; 1439us; 807us; 1441us; 807us; 10us; 65535us; 49us; 50us; 175us; 176us; 302us; 303us; 323us; 532us; 436us; 437us; 442us; 443us; 606us; 607us; 644us; 645us; 655us; 656us; 686us; 687us; 61us; 65535us; 33us; 461us; 49us; 457us; 68us; 461us; 73us; 461us; 103us; 461us; 121us; 461us; 162us; 461us; 175us; 457us; 297us; 461us; 298us; 461us; 302us; 457us; 323us; 457us; 333us; 461us; 387us; 455us; 392us; 455us; 400us; 461us; 401us; 461us; 427us; 455us; 436us; 457us; 442us; 457us; 506us; 461us; 606us; 457us; 644us; 457us; 655us; 457us; 686us; 457us; 722us; 455us; 798us; 455us; 799us; 455us; 803us; 455us; 804us; 455us; 805us; 455us; 806us; 455us; 808us; 455us; 810us; 455us; 812us; 455us; 817us; 455us; 819us; 455us; 821us; 455us; 829us; 455us; 832us; 455us; 844us; 455us; 865us; 455us; 870us; 455us; 871us; 455us; 873us; 455us; 874us; 455us; 875us; 455us; 876us; 455us; 883us; 455us; 885us; 455us; 974us; 455us; 1001us; 455us; 1007us; 455us; 1116us; 455us; 1118us; 455us; 1123us; 455us; 1130us; 455us; 1421us; 455us; 1426us; 455us; 1439us; 455us; 1441us; 455us; 12us; 65535us; 33us; 34us; 68us; 69us; 73us; 74us; 103us; 104us; 121us; 122us; 162us; 163us; 297us; 299us; 298us; 300us; 333us; 334us; 400us; 402us; 401us; 403us; 506us; 507us; 1us; 65535us; 410us; 411us; 4us; 65535us; 343us; 344us; 345us; 346us; 348us; 349us; 649us; 650us; 5us; 65535us; 237us; 240us; 244us; 245us; 246us; 247us; 248us; 249us; 651us; 652us; 2us; 65535us; 402us; 420us; 403us; 420us; 2us; 65535us; 336us; 337us; 428us; 429us; 2us; 65535us; 336us; 478us; 428us; 478us; 2us; 65535us; 472us; 473us; 475us; 476us; 3us; 65535us; 472us; 481us; 475us; 481us; 1184us; 1399us; 2us; 65535us; 462us; 463us; 1401us; 1406us; 4us; 65535us; 462us; 489us; 485us; 486us; 491us; 492us; 1401us; 489us; 4us; 65535us; 462us; 490us; 485us; 490us; 491us; 490us; 1401us; 490us; 2us; 65535us; 493us; 495us; 494us; 495us; 5us; 65535us; 238us; 250us; 241us; 250us; 330us; 350us; 338us; 350us; 340us; 350us; 6us; 65535us; 300us; 514us; 403us; 514us; 507us; 514us; 610us; 634us; 632us; 634us; 660us; 634us; 1us; 65535us; 515us; 516us; 5us; 65535us; 238us; 256us; 241us; 256us; 330us; 356us; 338us; 356us; 340us; 356us; 9us; 65535us; 299us; 310us; 300us; 310us; 402us; 409us; 403us; 409us; 1395us; 1414us; 1397us; 1414us; 1408us; 1414us; 1410us; 1414us; 1412us; 1414us; 1us; 65535us; 323us; 324us; 1us; 65535us; 532us; 534us; 3us; 65535us; 538us; 539us; 550us; 541us; 555us; 542us; 5us; 65535us; 538us; 546us; 543us; 545us; 544us; 545us; 550us; 546us; 555us; 546us; 1us; 65535us; 533us; 536us; 1us; 65535us; 555us; 556us; 4us; 65535us; 177us; 559us; 304us; 559us; 414us; 559us; 807us; 560us; 3us; 65535us; 177us; 178us; 304us; 305us; 414us; 415us; 1us; 65535us; 807us; 808us; 3us; 65535us; 324us; 325us; 541us; 551us; 556us; 557us; 3us; 65535us; 561us; 562us; 1445us; 563us; 1447us; 564us; 4us; 65535us; 561us; 567us; 565us; 566us; 1445us; 567us; 1447us; 567us; 1us; 65535us; 583us; 584us; 3us; 65535us; 300us; 513us; 403us; 513us; 507us; 513us; 5us; 65535us; 300us; 596us; 403us; 596us; 507us; 596us; 598us; 599us; 603us; 604us; 3us; 65535us; 596us; 597us; 599us; 600us; 604us; 605us; 3us; 65535us; 596us; 603us; 599us; 603us; 604us; 603us; 1us; 65535us; 607us; 608us; 3us; 65535us; 300us; 598us; 403us; 598us; 507us; 598us; 3us; 65535us; 300us; 601us; 403us; 601us; 507us; 601us; 3us; 65535us; 610us; 611us; 632us; 633us; 660us; 661us; 2us; 65535us; 518us; 519us; 639us; 640us; 2us; 65535us; 518us; 638us; 639us; 638us; 3us; 65535us; 314us; 315us; 316us; 317us; 642us; 643us; 4us; 65535us; 34us; 131us; 74us; 131us; 104us; 131us; 122us; 131us; 2us; 65535us; 69us; 169us; 163us; 169us; 6us; 65535us; 34us; 654us; 69us; 654us; 74us; 654us; 104us; 654us; 122us; 654us; 163us; 654us; 6us; 65535us; 34us; 649us; 69us; 651us; 74us; 649us; 104us; 649us; 122us; 649us; 163us; 651us; 1us; 65535us; 656us; 657us; 1us; 65535us; 657us; 658us; 15us; 65535us; 2us; 137us; 4us; 137us; 25us; 137us; 27us; 137us; 29us; 137us; 31us; 137us; 66us; 137us; 75us; 137us; 94us; 137us; 106us; 137us; 110us; 137us; 112us; 137us; 117us; 137us; 142us; 137us; 152us; 137us; 111us; 65535us; 34us; 124us; 74us; 124us; 104us; 124us; 122us; 123us; 126us; 927us; 182us; 927us; 184us; 927us; 280us; 679us; 390us; 927us; 395us; 927us; 402us; 679us; 403us; 679us; 430us; 927us; 446us; 927us; 670us; 927us; 676us; 927us; 725us; 927us; 729us; 927us; 739us; 927us; 887us; 927us; 892us; 927us; 904us; 927us; 906us; 927us; 909us; 927us; 912us; 927us; 928us; 927us; 931us; 927us; 934us; 927us; 940us; 927us; 944us; 927us; 948us; 927us; 950us; 927us; 955us; 927us; 957us; 927us; 959us; 927us; 961us; 927us; 963us; 927us; 965us; 927us; 976us; 927us; 984us; 927us; 991us; 927us; 997us; 927us; 999us; 927us; 1002us; 927us; 1005us; 927us; 1008us; 927us; 1011us; 927us; 1014us; 927us; 1017us; 927us; 1019us; 927us; 1024us; 927us; 1067us; 927us; 1069us; 927us; 1072us; 927us; 1073us; 927us; 1074us; 927us; 1075us; 927us; 1076us; 927us; 1077us; 927us; 1078us; 927us; 1079us; 927us; 1080us; 927us; 1081us; 927us; 1082us; 927us; 1083us; 927us; 1084us; 927us; 1085us; 927us; 1086us; 927us; 1087us; 927us; 1088us; 927us; 1089us; 927us; 1090us; 927us; 1091us; 927us; 1113us; 927us; 1135us; 927us; 1136us; 927us; 1140us; 927us; 1142us; 927us; 1146us; 927us; 1148us; 927us; 1152us; 927us; 1155us; 927us; 1157us; 927us; 1220us; 927us; 1229us; 927us; 1236us; 927us; 1244us; 927us; 1247us; 927us; 1250us; 927us; 1253us; 927us; 1254us; 927us; 1265us; 927us; 1272us; 927us; 1273us; 927us; 1279us; 927us; 1285us; 927us; 1286us; 927us; 1287us; 927us; 1303us; 927us; 1313us; 927us; 1326us; 927us; 1327us; 927us; 1329us; 927us; 1331us; 927us; 1335us; 927us; 1336us; 927us; 1359us; 927us; 1364us; 927us; 1389us; 927us; 1423us; 927us; 1428us; 927us; 7us; 65535us; 34us; 127us; 74us; 127us; 104us; 127us; 122us; 127us; 280us; 680us; 402us; 680us; 403us; 680us; 111us; 65535us; 34us; 126us; 74us; 126us; 104us; 126us; 122us; 125us; 126us; 912us; 182us; 931us; 184us; 931us; 280us; 681us; 390us; 912us; 395us; 912us; 402us; 681us; 403us; 681us; 430us; 912us; 446us; 912us; 670us; 912us; 676us; 912us; 725us; 912us; 729us; 912us; 739us; 912us; 887us; 912us; 892us; 912us; 904us; 912us; 906us; 912us; 909us; 912us; 912us; 912us; 928us; 912us; 931us; 912us; 934us; 912us; 940us; 912us; 944us; 912us; 948us; 912us; 950us; 931us; 955us; 931us; 957us; 931us; 959us; 931us; 961us; 931us; 963us; 931us; 965us; 912us; 976us; 912us; 984us; 912us; 991us; 912us; 997us; 931us; 999us; 931us; 1002us; 912us; 1005us; 912us; 1008us; 912us; 1011us; 912us; 1014us; 912us; 1017us; 912us; 1019us; 912us; 1024us; 912us; 1067us; 931us; 1069us; 931us; 1072us; 931us; 1073us; 931us; 1074us; 931us; 1075us; 931us; 1076us; 931us; 1077us; 931us; 1078us; 931us; 1079us; 931us; 1080us; 931us; 1081us; 931us; 1082us; 931us; 1083us; 931us; 1084us; 931us; 1085us; 931us; 1086us; 931us; 1087us; 931us; 1088us; 931us; 1089us; 931us; 1090us; 931us; 1091us; 931us; 1113us; 912us; 1135us; 931us; 1136us; 912us; 1140us; 931us; 1142us; 912us; 1146us; 931us; 1148us; 912us; 1152us; 931us; 1155us; 931us; 1157us; 931us; 1220us; 912us; 1229us; 912us; 1236us; 912us; 1244us; 931us; 1247us; 931us; 1250us; 931us; 1253us; 931us; 1254us; 931us; 1265us; 912us; 1272us; 912us; 1273us; 912us; 1279us; 912us; 1285us; 912us; 1286us; 912us; 1287us; 912us; 1303us; 912us; 1313us; 912us; 1326us; 931us; 1327us; 931us; 1329us; 912us; 1331us; 931us; 1335us; 931us; 1336us; 931us; 1359us; 931us; 1364us; 931us; 1389us; 931us; 1423us; 912us; 1428us; 912us; 110us; 65535us; 34us; 937us; 74us; 937us; 104us; 937us; 126us; 937us; 182us; 937us; 184us; 937us; 280us; 682us; 390us; 937us; 395us; 937us; 402us; 682us; 403us; 682us; 430us; 937us; 446us; 937us; 670us; 937us; 676us; 937us; 725us; 937us; 729us; 937us; 739us; 937us; 887us; 937us; 892us; 937us; 904us; 937us; 906us; 937us; 909us; 937us; 912us; 937us; 928us; 937us; 931us; 937us; 934us; 937us; 940us; 937us; 944us; 937us; 948us; 937us; 950us; 937us; 955us; 937us; 957us; 937us; 959us; 937us; 961us; 937us; 963us; 937us; 965us; 937us; 976us; 937us; 984us; 937us; 991us; 937us; 997us; 937us; 999us; 937us; 1002us; 937us; 1005us; 937us; 1008us; 937us; 1011us; 937us; 1014us; 937us; 1017us; 937us; 1019us; 937us; 1024us; 937us; 1067us; 937us; 1069us; 937us; 1072us; 937us; 1073us; 937us; 1074us; 937us; 1075us; 937us; 1076us; 937us; 1077us; 937us; 1078us; 937us; 1079us; 937us; 1080us; 937us; 1081us; 937us; 1082us; 937us; 1083us; 937us; 1084us; 937us; 1085us; 937us; 1086us; 937us; 1087us; 937us; 1088us; 937us; 1089us; 937us; 1090us; 937us; 1091us; 937us; 1113us; 937us; 1135us; 937us; 1136us; 937us; 1140us; 937us; 1142us; 937us; 1146us; 937us; 1148us; 937us; 1152us; 937us; 1155us; 937us; 1157us; 937us; 1220us; 937us; 1229us; 937us; 1236us; 937us; 1244us; 937us; 1247us; 937us; 1250us; 937us; 1253us; 937us; 1254us; 937us; 1265us; 937us; 1272us; 937us; 1273us; 937us; 1279us; 937us; 1285us; 937us; 1286us; 937us; 1287us; 937us; 1303us; 937us; 1313us; 937us; 1326us; 937us; 1327us; 937us; 1329us; 937us; 1331us; 937us; 1335us; 937us; 1336us; 937us; 1359us; 937us; 1364us; 937us; 1389us; 937us; 1423us; 937us; 1428us; 937us; 3us; 65535us; 280us; 405us; 402us; 404us; 403us; 404us; 4us; 65535us; 674us; 675us; 677us; 678us; 1009us; 1010us; 1020us; 1021us; 111us; 65535us; 34us; 669us; 74us; 669us; 104us; 669us; 122us; 669us; 126us; 669us; 182us; 669us; 184us; 669us; 280us; 669us; 390us; 669us; 395us; 669us; 402us; 669us; 403us; 669us; 430us; 669us; 446us; 669us; 670us; 669us; 676us; 669us; 725us; 669us; 729us; 669us; 739us; 669us; 887us; 669us; 892us; 669us; 904us; 669us; 906us; 669us; 909us; 669us; 912us; 669us; 928us; 669us; 931us; 669us; 934us; 669us; 940us; 669us; 944us; 669us; 948us; 669us; 950us; 669us; 955us; 669us; 957us; 669us; 959us; 669us; 961us; 669us; 963us; 669us; 965us; 669us; 976us; 669us; 984us; 669us; 991us; 669us; 997us; 669us; 999us; 669us; 1002us; 669us; 1005us; 669us; 1008us; 669us; 1011us; 669us; 1014us; 669us; 1017us; 669us; 1019us; 669us; 1024us; 669us; 1067us; 669us; 1069us; 669us; 1072us; 669us; 1073us; 669us; 1074us; 669us; 1075us; 669us; 1076us; 669us; 1077us; 669us; 1078us; 669us; 1079us; 669us; 1080us; 669us; 1081us; 669us; 1082us; 669us; 1083us; 669us; 1084us; 669us; 1085us; 669us; 1086us; 669us; 1087us; 669us; 1088us; 669us; 1089us; 669us; 1090us; 669us; 1091us; 669us; 1113us; 669us; 1135us; 669us; 1136us; 669us; 1140us; 669us; 1142us; 669us; 1146us; 669us; 1148us; 669us; 1152us; 669us; 1155us; 669us; 1157us; 669us; 1220us; 669us; 1229us; 669us; 1236us; 669us; 1244us; 669us; 1247us; 669us; 1250us; 669us; 1253us; 669us; 1254us; 669us; 1265us; 669us; 1272us; 669us; 1273us; 669us; 1279us; 669us; 1285us; 669us; 1286us; 669us; 1287us; 669us; 1303us; 669us; 1313us; 669us; 1326us; 669us; 1327us; 669us; 1329us; 669us; 1331us; 669us; 1335us; 669us; 1336us; 669us; 1359us; 669us; 1364us; 669us; 1389us; 669us; 1423us; 669us; 1428us; 669us; 1us; 65535us; 690us; 691us; 1us; 65535us; 690us; 693us; 3us; 65535us; 690us; 694us; 695us; 696us; 697us; 698us; 2us; 65535us; 699us; 700us; 712us; 703us; 1us; 65535us; 685us; 686us; 4us; 65535us; 667us; 668us; 673us; 674us; 1401us; 1402us; 1403us; 1404us; 2us; 65535us; 713us; 714us; 716us; 717us; 5us; 65535us; 667us; 713us; 673us; 713us; 715us; 716us; 1401us; 713us; 1403us; 713us; 2us; 65535us; 494us; 719us; 718us; 719us; 1us; 65535us; 725us; 726us; 2us; 65535us; 725us; 733us; 729us; 730us; 1us; 65535us; 734us; 735us; 1us; 65535us; 735us; 736us; 1us; 65535us; 737us; 738us; 2us; 65535us; 737us; 743us; 741us; 742us; 247us; 65535us; 34us; 766us; 74us; 766us; 104us; 766us; 126us; 766us; 179us; 1564us; 182us; 766us; 184us; 766us; 213us; 766us; 217us; 766us; 222us; 766us; 253us; 1564us; 300us; 1564us; 306us; 1564us; 310us; 1564us; 312us; 1564us; 321us; 1564us; 353us; 1564us; 387us; 766us; 390us; 766us; 392us; 766us; 395us; 766us; 403us; 1564us; 409us; 1564us; 416us; 1564us; 427us; 766us; 430us; 766us; 439us; 1564us; 446us; 766us; 449us; 1564us; 471us; 1564us; 474us; 766us; 507us; 1564us; 515us; 1564us; 524us; 1564us; 570us; 1564us; 573us; 1564us; 610us; 1564us; 613us; 1564us; 616us; 766us; 628us; 766us; 632us; 1564us; 636us; 1564us; 647us; 1564us; 660us; 1564us; 670us; 766us; 676us; 766us; 722us; 766us; 725us; 766us; 729us; 766us; 739us; 766us; 745us; 1564us; 775us; 1564us; 798us; 766us; 799us; 766us; 803us; 766us; 804us; 766us; 805us; 766us; 806us; 766us; 808us; 766us; 810us; 766us; 812us; 766us; 814us; 1564us; 817us; 766us; 819us; 766us; 821us; 766us; 829us; 766us; 832us; 766us; 844us; 766us; 865us; 766us; 868us; 1564us; 870us; 766us; 871us; 766us; 873us; 766us; 874us; 766us; 875us; 766us; 876us; 766us; 883us; 766us; 885us; 766us; 887us; 766us; 892us; 766us; 899us; 1564us; 904us; 766us; 906us; 766us; 909us; 766us; 912us; 766us; 928us; 766us; 931us; 766us; 934us; 766us; 940us; 766us; 944us; 766us; 948us; 766us; 950us; 766us; 955us; 766us; 957us; 766us; 959us; 766us; 961us; 766us; 963us; 766us; 965us; 766us; 974us; 766us; 976us; 766us; 984us; 766us; 991us; 766us; 997us; 766us; 999us; 766us; 1001us; 766us; 1002us; 766us; 1005us; 766us; 1007us; 766us; 1008us; 766us; 1011us; 766us; 1014us; 766us; 1017us; 766us; 1019us; 766us; 1024us; 766us; 1061us; 1564us; 1063us; 1564us; 1065us; 1564us; 1067us; 766us; 1069us; 766us; 1072us; 766us; 1073us; 766us; 1074us; 766us; 1075us; 766us; 1076us; 766us; 1077us; 766us; 1078us; 766us; 1079us; 766us; 1080us; 766us; 1081us; 766us; 1082us; 766us; 1083us; 766us; 1084us; 766us; 1085us; 766us; 1086us; 766us; 1087us; 766us; 1088us; 766us; 1089us; 766us; 1090us; 766us; 1091us; 766us; 1113us; 766us; 1116us; 766us; 1118us; 766us; 1123us; 766us; 1130us; 766us; 1135us; 766us; 1136us; 766us; 1140us; 766us; 1142us; 766us; 1146us; 766us; 1148us; 766us; 1152us; 766us; 1155us; 766us; 1157us; 766us; 1159us; 766us; 1160us; 766us; 1162us; 766us; 1163us; 766us; 1165us; 766us; 1166us; 766us; 1168us; 766us; 1169us; 766us; 1171us; 766us; 1172us; 766us; 1174us; 766us; 1175us; 766us; 1177us; 1564us; 1178us; 1564us; 1181us; 766us; 1182us; 766us; 1187us; 766us; 1189us; 766us; 1191us; 766us; 1192us; 766us; 1195us; 766us; 1202us; 766us; 1203us; 766us; 1206us; 766us; 1207us; 766us; 1220us; 766us; 1229us; 766us; 1236us; 766us; 1244us; 766us; 1247us; 766us; 1250us; 766us; 1253us; 766us; 1254us; 766us; 1265us; 766us; 1272us; 766us; 1273us; 766us; 1279us; 766us; 1285us; 766us; 1286us; 766us; 1287us; 766us; 1303us; 766us; 1313us; 766us; 1326us; 766us; 1327us; 766us; 1329us; 766us; 1331us; 766us; 1335us; 766us; 1336us; 766us; 1340us; 766us; 1346us; 1564us; 1349us; 1564us; 1351us; 1564us; 1353us; 1564us; 1355us; 766us; 1359us; 766us; 1364us; 766us; 1389us; 766us; 1414us; 1564us; 1421us; 766us; 1423us; 766us; 1426us; 766us; 1428us; 766us; 1439us; 766us; 1441us; 766us; 1448us; 1564us; 1451us; 1564us; 1454us; 1564us; 1457us; 1564us; 1459us; 1564us; 1461us; 1564us; 1465us; 1564us; 1468us; 1564us; 1472us; 1564us; 1475us; 1564us; 1478us; 1564us; 1480us; 1564us; 1482us; 1564us; 1485us; 1564us; 1487us; 1564us; 1490us; 1564us; 1509us; 1564us; 1510us; 1564us; 1518us; 1564us; 1519us; 1564us; 1524us; 1564us; 1525us; 1564us; 1537us; 1564us; 1541us; 1564us; 1555us; 1564us; 1559us; 1564us; 1566us; 766us; 1580us; 1564us; 1582us; 1564us; 1593us; 1564us; 178us; 65535us; 34us; 1256us; 74us; 1256us; 104us; 1256us; 126us; 1256us; 182us; 1256us; 184us; 1256us; 213us; 1256us; 217us; 1256us; 222us; 1256us; 387us; 840us; 390us; 1256us; 392us; 840us; 395us; 1256us; 427us; 840us; 430us; 1256us; 446us; 1256us; 474us; 1256us; 616us; 617us; 628us; 629us; 670us; 1256us; 676us; 1256us; 722us; 840us; 725us; 1256us; 729us; 1256us; 739us; 1256us; 798us; 840us; 799us; 840us; 803us; 840us; 804us; 840us; 805us; 840us; 806us; 840us; 808us; 840us; 810us; 840us; 812us; 840us; 817us; 840us; 819us; 840us; 821us; 840us; 829us; 840us; 832us; 840us; 844us; 840us; 865us; 840us; 870us; 840us; 871us; 840us; 873us; 840us; 874us; 840us; 875us; 840us; 876us; 840us; 883us; 840us; 885us; 840us; 887us; 1256us; 892us; 1256us; 904us; 1256us; 906us; 1256us; 909us; 1256us; 912us; 1256us; 928us; 1256us; 931us; 1256us; 934us; 1256us; 940us; 1256us; 944us; 1256us; 948us; 1256us; 950us; 1256us; 955us; 1256us; 957us; 1256us; 959us; 1256us; 961us; 1256us; 963us; 1256us; 965us; 1256us; 974us; 840us; 976us; 1256us; 984us; 1256us; 991us; 1256us; 997us; 1256us; 999us; 1256us; 1001us; 840us; 1002us; 1256us; 1005us; 1256us; 1007us; 840us; 1008us; 1256us; 1011us; 1256us; 1014us; 1256us; 1017us; 1256us; 1019us; 1256us; 1024us; 1256us; 1067us; 1256us; 1069us; 1256us; 1072us; 1256us; 1073us; 1256us; 1074us; 1256us; 1075us; 1256us; 1076us; 1256us; 1077us; 1256us; 1078us; 1256us; 1079us; 1256us; 1080us; 1256us; 1081us; 1256us; 1082us; 1256us; 1083us; 1256us; 1084us; 1256us; 1085us; 1256us; 1086us; 1256us; 1087us; 1256us; 1088us; 1256us; 1089us; 1256us; 1090us; 1256us; 1091us; 1256us; 1113us; 1256us; 1116us; 840us; 1118us; 840us; 1123us; 840us; 1130us; 840us; 1135us; 1256us; 1136us; 1256us; 1140us; 1256us; 1142us; 1256us; 1146us; 1256us; 1148us; 1256us; 1152us; 1256us; 1155us; 1256us; 1157us; 1256us; 1159us; 1256us; 1160us; 1256us; 1162us; 1256us; 1163us; 1256us; 1165us; 1256us; 1166us; 1256us; 1168us; 1256us; 1169us; 1256us; 1171us; 1256us; 1172us; 1256us; 1174us; 1256us; 1175us; 1256us; 1181us; 1256us; 1182us; 1256us; 1187us; 1256us; 1189us; 1256us; 1191us; 1256us; 1192us; 1256us; 1195us; 1256us; 1202us; 1256us; 1203us; 1256us; 1206us; 1256us; 1207us; 1256us; 1220us; 1256us; 1229us; 1256us; 1236us; 1256us; 1244us; 1256us; 1247us; 1256us; 1250us; 1256us; 1253us; 1256us; 1254us; 1256us; 1265us; 1256us; 1272us; 1256us; 1273us; 1256us; 1279us; 1256us; 1285us; 1256us; 1286us; 1256us; 1287us; 1256us; 1303us; 1256us; 1313us; 1256us; 1326us; 1256us; 1327us; 1256us; 1329us; 1256us; 1331us; 1256us; 1335us; 1256us; 1336us; 1256us; 1340us; 1256us; 1355us; 1256us; 1359us; 1256us; 1364us; 1256us; 1389us; 1256us; 1421us; 840us; 1423us; 1256us; 1426us; 840us; 1428us; 1256us; 1439us; 840us; 1441us; 840us; 1566us; 1256us; 3us; 65535us; 387us; 388us; 392us; 393us; 722us; 723us; 3us; 65535us; 777us; 773us; 778us; 774us; 780us; 774us; 2us; 65535us; 778us; 779us; 780us; 781us; 1us; 65535us; 335us; 336us; 11us; 65535us; 387us; 769us; 392us; 769us; 722us; 769us; 798us; 788us; 799us; 789us; 803us; 790us; 804us; 791us; 805us; 792us; 806us; 793us; 1001us; 794us; 1007us; 795us; 11us; 65535us; 387us; 800us; 392us; 800us; 722us; 800us; 798us; 800us; 799us; 800us; 803us; 800us; 804us; 800us; 805us; 800us; 806us; 800us; 1001us; 800us; 1007us; 800us; 11us; 65535us; 387us; 801us; 392us; 801us; 722us; 801us; 798us; 801us; 799us; 801us; 803us; 801us; 804us; 801us; 805us; 801us; 806us; 801us; 1001us; 801us; 1007us; 801us; 30us; 65535us; 387us; 802us; 392us; 802us; 722us; 802us; 798us; 802us; 799us; 802us; 803us; 802us; 804us; 802us; 805us; 802us; 806us; 802us; 829us; 872us; 832us; 872us; 844us; 872us; 865us; 872us; 870us; 872us; 871us; 872us; 873us; 872us; 874us; 872us; 875us; 872us; 876us; 872us; 883us; 872us; 885us; 872us; 974us; 872us; 1001us; 802us; 1007us; 802us; 1116us; 872us; 1118us; 872us; 1123us; 872us; 1130us; 872us; 1439us; 872us; 1441us; 872us; 8us; 65535us; 808us; 809us; 810us; 811us; 812us; 813us; 817us; 818us; 819us; 820us; 821us; 822us; 1421us; 1422us; 1426us; 1427us; 39us; 65535us; 387us; 816us; 392us; 816us; 427us; 428us; 722us; 816us; 798us; 816us; 799us; 816us; 803us; 816us; 804us; 816us; 805us; 816us; 806us; 816us; 808us; 817us; 810us; 817us; 812us; 817us; 817us; 817us; 819us; 817us; 821us; 817us; 829us; 816us; 832us; 816us; 844us; 816us; 865us; 816us; 870us; 816us; 871us; 816us; 873us; 816us; 874us; 816us; 875us; 816us; 876us; 816us; 883us; 816us; 885us; 816us; 974us; 816us; 1001us; 816us; 1007us; 816us; 1116us; 816us; 1118us; 816us; 1123us; 816us; 1130us; 816us; 1421us; 817us; 1426us; 817us; 1439us; 816us; 1441us; 816us; 1us; 65535us; 844us; 845us; 19us; 65535us; 829us; 860us; 832us; 860us; 844us; 851us; 865us; 852us; 870us; 853us; 871us; 854us; 873us; 855us; 874us; 856us; 875us; 857us; 876us; 858us; 883us; 859us; 885us; 860us; 974us; 861us; 1116us; 862us; 1118us; 862us; 1123us; 862us; 1130us; 862us; 1439us; 862us; 1441us; 862us; 19us; 65535us; 829us; 866us; 832us; 866us; 844us; 866us; 865us; 866us; 870us; 866us; 871us; 866us; 873us; 866us; 874us; 866us; 875us; 866us; 876us; 866us; 883us; 866us; 885us; 866us; 974us; 866us; 1116us; 866us; 1118us; 866us; 1123us; 866us; 1130us; 866us; 1439us; 866us; 1441us; 866us; 19us; 65535us; 829us; 867us; 832us; 867us; 844us; 867us; 865us; 867us; 870us; 867us; 871us; 867us; 873us; 867us; 874us; 867us; 875us; 867us; 876us; 867us; 883us; 867us; 885us; 867us; 974us; 867us; 1116us; 867us; 1118us; 867us; 1123us; 867us; 1130us; 867us; 1439us; 867us; 1441us; 867us; 1us; 65535us; 826us; 827us; 2us; 65535us; 826us; 877us; 880us; 881us; 2us; 65535us; 826us; 878us; 880us; 878us; 3us; 65535us; 829us; 830us; 832us; 833us; 885us; 886us; 23us; 65535us; 126us; 932us; 390us; 391us; 395us; 396us; 430us; 431us; 446us; 447us; 670us; 671us; 676us; 677us; 739us; 740us; 912us; 932us; 931us; 932us; 934us; 935us; 948us; 949us; 965us; 966us; 976us; 977us; 984us; 985us; 991us; 992us; 1002us; 1003us; 1005us; 1006us; 1008us; 1009us; 1011us; 1012us; 1017us; 1018us; 1019us; 1020us; 1423us; 1424us; 6us; 65535us; 959us; 960us; 961us; 962us; 1069us; 1070us; 1359us; 1360us; 1364us; 1365us; 1389us; 1390us; 5us; 65535us; 944us; 945us; 1024us; 1025us; 1136us; 1137us; 1329us; 1330us; 1428us; 1429us; 48us; 65535us; 126us; 891us; 390us; 891us; 395us; 891us; 430us; 891us; 446us; 891us; 670us; 891us; 676us; 891us; 725us; 734us; 729us; 734us; 739us; 891us; 887us; 888us; 892us; 893us; 909us; 910us; 912us; 891us; 928us; 929us; 931us; 891us; 934us; 891us; 940us; 941us; 944us; 896us; 948us; 891us; 965us; 891us; 976us; 891us; 984us; 891us; 991us; 891us; 1002us; 891us; 1005us; 891us; 1008us; 891us; 1011us; 891us; 1014us; 1015us; 1017us; 891us; 1019us; 891us; 1024us; 896us; 1113us; 1114us; 1136us; 896us; 1142us; 1143us; 1148us; 1149us; 1229us; 1234us; 1236us; 1237us; 1265us; 1266us; 1272us; 1274us; 1273us; 1274us; 1285us; 1305us; 1286us; 1305us; 1287us; 1305us; 1303us; 1304us; 1329us; 896us; 1423us; 891us; 1428us; 896us; 53us; 65535us; 126us; 898us; 390us; 898us; 395us; 898us; 430us; 898us; 446us; 898us; 670us; 898us; 676us; 898us; 725us; 898us; 729us; 898us; 739us; 898us; 887us; 898us; 892us; 898us; 904us; 905us; 906us; 907us; 909us; 898us; 912us; 898us; 928us; 898us; 931us; 898us; 934us; 898us; 940us; 898us; 944us; 898us; 948us; 898us; 965us; 898us; 976us; 898us; 984us; 898us; 991us; 898us; 1002us; 898us; 1005us; 898us; 1008us; 898us; 1011us; 898us; 1014us; 898us; 1017us; 898us; 1019us; 898us; 1024us; 898us; 1113us; 898us; 1136us; 898us; 1142us; 898us; 1148us; 898us; 1220us; 1324us; 1229us; 898us; 1236us; 898us; 1265us; 898us; 1272us; 898us; 1273us; 898us; 1279us; 1324us; 1285us; 898us; 1286us; 898us; 1287us; 898us; 1303us; 898us; 1313us; 1324us; 1329us; 898us; 1423us; 898us; 1428us; 898us; 84us; 65535us; 80us; 83us; 95us; 98us; 135us; 136us; 143us; 145us; 146us; 148us; 153us; 155us; 199us; 1759us; 201us; 1759us; 257us; 259us; 263us; 265us; 267us; 269us; 271us; 273us; 344us; 347us; 357us; 359us; 363us; 364us; 367us; 368us; 471us; 1759us; 486us; 488us; 510us; 511us; 519us; 521us; 674us; 684us; 677us; 684us; 724us; 728us; 730us; 732us; 780us; 787us; 781us; 784us; 844us; 850us; 845us; 847us; 861us; 996us; 888us; 890us; 941us; 943us; 945us; 947us; 950us; 954us; 951us; 953us; 963us; 972us; 964us; 971us; 966us; 968us; 974us; 1759us; 975us; 1759us; 976us; 1759us; 977us; 1759us; 983us; 990us; 984us; 989us; 985us; 987us; 1009us; 684us; 1020us; 684us; 1050us; 1154us; 1119us; 1121us; 1143us; 1145us; 1149us; 1151us; 1155us; 1759us; 1157us; 1759us; 1208us; 1228us; 1211us; 1228us; 1220us; 1225us; 1221us; 1223us; 1236us; 1241us; 1237us; 1239us; 1266us; 1268us; 1272us; 1278us; 1273us; 1278us; 1274us; 1276us; 1279us; 1284us; 1280us; 1282us; 1285us; 1298us; 1286us; 1298us; 1287us; 1298us; 1289us; 1753us; 1313us; 1318us; 1314us; 1316us; 1326us; 1328us; 1331us; 1759us; 1388us; 1759us; 1389us; 1759us; 1428us; 1434us; 1429us; 1431us; 1540us; 1585us; 1560us; 1563us; 1561us; 1563us; 1575us; 1759us; 1580us; 1591us; 1582us; 1759us; 1587us; 1589us; 1631us; 1759us; 107us; 65535us; 34us; 35us; 74us; 105us; 104us; 105us; 126us; 901us; 182us; 183us; 184us; 185us; 390us; 901us; 395us; 901us; 430us; 901us; 446us; 901us; 670us; 901us; 676us; 901us; 725us; 901us; 729us; 901us; 739us; 901us; 887us; 901us; 892us; 901us; 904us; 901us; 906us; 901us; 909us; 901us; 912us; 901us; 928us; 901us; 931us; 901us; 934us; 901us; 940us; 901us; 944us; 901us; 948us; 901us; 950us; 951us; 955us; 956us; 957us; 958us; 959us; 895us; 961us; 895us; 963us; 964us; 965us; 901us; 976us; 901us; 984us; 901us; 991us; 901us; 997us; 998us; 999us; 1000us; 1002us; 901us; 1005us; 901us; 1008us; 901us; 1011us; 901us; 1014us; 901us; 1017us; 901us; 1019us; 901us; 1024us; 901us; 1067us; 1026us; 1069us; 895us; 1072us; 1027us; 1073us; 1028us; 1074us; 1029us; 1075us; 1030us; 1076us; 1031us; 1077us; 1032us; 1078us; 1033us; 1079us; 1034us; 1080us; 1035us; 1081us; 1036us; 1082us; 1037us; 1083us; 1038us; 1084us; 1039us; 1085us; 1040us; 1086us; 1041us; 1087us; 1042us; 1088us; 1043us; 1089us; 1044us; 1090us; 1045us; 1091us; 1046us; 1113us; 901us; 1135us; 1047us; 1136us; 901us; 1140us; 1048us; 1142us; 901us; 1146us; 1049us; 1148us; 901us; 1152us; 1050us; 1155us; 1051us; 1157us; 1052us; 1220us; 903us; 1229us; 901us; 1236us; 902us; 1244us; 1053us; 1247us; 1053us; 1250us; 1053us; 1253us; 1054us; 1254us; 1055us; 1265us; 901us; 1272us; 901us; 1273us; 901us; 1279us; 903us; 1285us; 901us; 1286us; 901us; 1287us; 901us; 1303us; 901us; 1313us; 903us; 1326us; 1057us; 1327us; 1058us; 1329us; 901us; 1331us; 1056us; 1335us; 1059us; 1336us; 1060us; 1359us; 895us; 1364us; 895us; 1389us; 895us; 1423us; 901us; 1428us; 901us; 1us; 65535us; 1216us; 1217us; 2us; 65535us; 941us; 942us; 945us; 946us; 4us; 65535us; 1116us; 1117us; 1118us; 1119us; 1439us; 1440us; 1441us; 1442us; 6us; 65535us; 1116us; 1128us; 1118us; 1128us; 1123us; 1128us; 1130us; 1128us; 1439us; 1128us; 1441us; 1128us; 6us; 65535us; 1116us; 1122us; 1118us; 1122us; 1123us; 1124us; 1130us; 1131us; 1439us; 1122us; 1441us; 1122us; 1us; 65535us; 862us; 1127us; 1us; 65535us; 1128us; 1129us; 2us; 65535us; 951us; 952us; 1050us; 1153us; 2us; 65535us; 951us; 1138us; 1050us; 1138us; 1us; 65535us; 1138us; 1139us; 107us; 65535us; 34us; 1071us; 74us; 1071us; 104us; 1071us; 126us; 1071us; 182us; 1071us; 184us; 1071us; 390us; 1071us; 395us; 1071us; 430us; 1071us; 446us; 1071us; 670us; 1071us; 676us; 1071us; 725us; 1071us; 729us; 1071us; 739us; 1071us; 887us; 1071us; 892us; 1071us; 904us; 1071us; 906us; 1071us; 909us; 1071us; 912us; 1071us; 928us; 1071us; 931us; 1071us; 934us; 1071us; 940us; 1071us; 944us; 1071us; 948us; 1071us; 950us; 1071us; 955us; 1071us; 957us; 1071us; 959us; 1071us; 961us; 1071us; 963us; 1071us; 965us; 1071us; 976us; 1071us; 984us; 1071us; 991us; 1071us; 997us; 1071us; 999us; 1071us; 1002us; 1071us; 1005us; 1071us; 1008us; 1071us; 1011us; 1071us; 1014us; 1071us; 1017us; 1071us; 1019us; 1071us; 1024us; 1071us; 1067us; 1071us; 1069us; 1071us; 1072us; 1071us; 1073us; 1071us; 1074us; 1071us; 1075us; 1071us; 1076us; 1071us; 1077us; 1071us; 1078us; 1071us; 1079us; 1071us; 1080us; 1071us; 1081us; 1071us; 1082us; 1071us; 1083us; 1071us; 1084us; 1071us; 1085us; 1071us; 1086us; 1071us; 1087us; 1071us; 1088us; 1071us; 1089us; 1071us; 1090us; 1071us; 1091us; 1071us; 1113us; 1071us; 1135us; 1071us; 1136us; 1071us; 1140us; 1071us; 1142us; 1071us; 1146us; 1071us; 1148us; 1071us; 1152us; 1071us; 1155us; 1071us; 1157us; 1071us; 1220us; 1071us; 1229us; 1071us; 1236us; 1071us; 1244us; 1071us; 1247us; 1071us; 1250us; 1071us; 1253us; 1071us; 1254us; 1071us; 1265us; 1071us; 1272us; 1071us; 1273us; 1071us; 1279us; 1071us; 1285us; 1071us; 1286us; 1071us; 1287us; 1071us; 1303us; 1071us; 1313us; 1071us; 1326us; 1071us; 1327us; 1071us; 1329us; 1071us; 1331us; 1071us; 1335us; 1071us; 1336us; 1071us; 1359us; 1071us; 1364us; 1071us; 1389us; 1071us; 1423us; 1071us; 1428us; 1071us; 121us; 65535us; 34us; 1068us; 74us; 1068us; 104us; 1068us; 126us; 1068us; 182us; 1068us; 184us; 1068us; 390us; 1068us; 395us; 1068us; 430us; 1068us; 446us; 1068us; 670us; 1068us; 676us; 1068us; 725us; 1068us; 729us; 1068us; 739us; 1068us; 887us; 1068us; 892us; 1068us; 904us; 1068us; 906us; 1068us; 909us; 1068us; 912us; 1068us; 928us; 1068us; 931us; 1068us; 934us; 1068us; 940us; 1068us; 944us; 1068us; 948us; 1068us; 950us; 1068us; 955us; 1068us; 957us; 1068us; 959us; 1068us; 961us; 1068us; 963us; 1068us; 965us; 1068us; 976us; 1068us; 984us; 1068us; 991us; 1068us; 997us; 1068us; 999us; 1068us; 1002us; 1068us; 1005us; 1068us; 1008us; 1068us; 1011us; 1068us; 1014us; 1068us; 1017us; 1068us; 1019us; 1068us; 1024us; 1068us; 1067us; 1068us; 1069us; 1068us; 1072us; 1068us; 1073us; 1068us; 1074us; 1068us; 1075us; 1068us; 1076us; 1068us; 1077us; 1068us; 1078us; 1068us; 1079us; 1068us; 1080us; 1068us; 1081us; 1068us; 1082us; 1068us; 1083us; 1068us; 1084us; 1068us; 1085us; 1068us; 1086us; 1068us; 1087us; 1068us; 1088us; 1068us; 1089us; 1068us; 1090us; 1068us; 1091us; 1068us; 1113us; 1068us; 1135us; 1068us; 1136us; 1068us; 1140us; 1068us; 1142us; 1068us; 1146us; 1068us; 1148us; 1068us; 1152us; 1068us; 1155us; 1068us; 1157us; 1068us; 1159us; 1161us; 1160us; 1161us; 1162us; 1164us; 1163us; 1164us; 1165us; 1167us; 1166us; 1167us; 1168us; 1170us; 1169us; 1170us; 1171us; 1173us; 1172us; 1173us; 1174us; 1176us; 1175us; 1176us; 1187us; 1188us; 1189us; 1190us; 1220us; 1068us; 1229us; 1068us; 1236us; 1068us; 1244us; 1068us; 1247us; 1068us; 1250us; 1068us; 1253us; 1068us; 1254us; 1068us; 1265us; 1068us; 1272us; 1068us; 1273us; 1068us; 1279us; 1068us; 1285us; 1068us; 1286us; 1068us; 1287us; 1068us; 1303us; 1068us; 1313us; 1068us; 1326us; 1068us; 1327us; 1068us; 1329us; 1068us; 1331us; 1068us; 1335us; 1068us; 1336us; 1068us; 1359us; 1068us; 1364us; 1068us; 1389us; 1068us; 1423us; 1068us; 1428us; 1068us; 121us; 65535us; 34us; 1191us; 74us; 1191us; 104us; 1191us; 126us; 1191us; 182us; 1191us; 184us; 1191us; 390us; 1191us; 395us; 1191us; 430us; 1191us; 446us; 1191us; 670us; 1191us; 676us; 1191us; 725us; 1191us; 729us; 1191us; 739us; 1191us; 887us; 1191us; 892us; 1191us; 904us; 1191us; 906us; 1191us; 909us; 1191us; 912us; 1191us; 928us; 1191us; 931us; 1191us; 934us; 1191us; 940us; 1191us; 944us; 1191us; 948us; 1191us; 950us; 1191us; 955us; 1191us; 957us; 1191us; 959us; 1191us; 961us; 1191us; 963us; 1191us; 965us; 1191us; 976us; 1191us; 984us; 1191us; 991us; 1191us; 997us; 1191us; 999us; 1191us; 1002us; 1191us; 1005us; 1191us; 1008us; 1191us; 1011us; 1191us; 1014us; 1191us; 1017us; 1191us; 1019us; 1191us; 1024us; 1191us; 1067us; 1191us; 1069us; 1191us; 1072us; 1191us; 1073us; 1191us; 1074us; 1191us; 1075us; 1191us; 1076us; 1191us; 1077us; 1191us; 1078us; 1191us; 1079us; 1191us; 1080us; 1191us; 1081us; 1191us; 1082us; 1191us; 1083us; 1191us; 1084us; 1191us; 1085us; 1191us; 1086us; 1191us; 1087us; 1191us; 1088us; 1191us; 1089us; 1191us; 1090us; 1191us; 1091us; 1191us; 1113us; 1191us; 1135us; 1191us; 1136us; 1191us; 1140us; 1191us; 1142us; 1191us; 1146us; 1191us; 1148us; 1191us; 1152us; 1191us; 1155us; 1191us; 1157us; 1191us; 1159us; 1191us; 1160us; 1191us; 1162us; 1191us; 1163us; 1191us; 1165us; 1191us; 1166us; 1191us; 1168us; 1191us; 1169us; 1191us; 1171us; 1191us; 1172us; 1191us; 1174us; 1191us; 1175us; 1191us; 1187us; 1191us; 1189us; 1191us; 1220us; 1191us; 1229us; 1191us; 1236us; 1191us; 1244us; 1191us; 1247us; 1191us; 1250us; 1191us; 1253us; 1191us; 1254us; 1191us; 1265us; 1191us; 1272us; 1191us; 1273us; 1191us; 1279us; 1191us; 1285us; 1191us; 1286us; 1191us; 1287us; 1191us; 1303us; 1191us; 1313us; 1192us; 1326us; 1191us; 1327us; 1191us; 1329us; 1191us; 1331us; 1191us; 1335us; 1191us; 1336us; 1191us; 1359us; 1191us; 1364us; 1191us; 1389us; 1191us; 1423us; 1191us; 1428us; 1191us; 3us; 65535us; 1191us; 1193us; 1192us; 1193us; 1340us; 1343us; 130us; 65535us; 34us; 1194us; 74us; 1194us; 104us; 1194us; 126us; 1194us; 182us; 1194us; 184us; 1194us; 390us; 1194us; 395us; 1194us; 430us; 1194us; 446us; 1194us; 670us; 1194us; 676us; 1194us; 725us; 1194us; 729us; 1194us; 739us; 1194us; 887us; 1194us; 892us; 1194us; 904us; 1194us; 906us; 1194us; 909us; 1194us; 912us; 1194us; 928us; 1194us; 931us; 1194us; 934us; 1194us; 940us; 1194us; 944us; 1194us; 948us; 1194us; 950us; 1194us; 955us; 1194us; 957us; 1194us; 959us; 1194us; 961us; 1194us; 963us; 1194us; 965us; 1194us; 976us; 1194us; 984us; 1194us; 991us; 1194us; 997us; 1194us; 999us; 1194us; 1002us; 1194us; 1005us; 1194us; 1008us; 1194us; 1011us; 1194us; 1014us; 1194us; 1017us; 1194us; 1019us; 1194us; 1024us; 1194us; 1067us; 1194us; 1069us; 1194us; 1072us; 1194us; 1073us; 1194us; 1074us; 1194us; 1075us; 1194us; 1076us; 1194us; 1077us; 1194us; 1078us; 1194us; 1079us; 1194us; 1080us; 1194us; 1081us; 1194us; 1082us; 1194us; 1083us; 1194us; 1084us; 1194us; 1085us; 1194us; 1086us; 1194us; 1087us; 1194us; 1088us; 1194us; 1089us; 1194us; 1090us; 1194us; 1091us; 1194us; 1113us; 1194us; 1135us; 1194us; 1136us; 1194us; 1140us; 1194us; 1142us; 1194us; 1146us; 1194us; 1148us; 1194us; 1152us; 1194us; 1155us; 1194us; 1157us; 1194us; 1159us; 1194us; 1160us; 1194us; 1162us; 1194us; 1163us; 1194us; 1165us; 1194us; 1166us; 1194us; 1168us; 1194us; 1169us; 1194us; 1171us; 1194us; 1172us; 1194us; 1174us; 1194us; 1175us; 1194us; 1187us; 1194us; 1189us; 1194us; 1191us; 1197us; 1192us; 1197us; 1195us; 1196us; 1202us; 1198us; 1203us; 1199us; 1206us; 1200us; 1207us; 1200us; 1220us; 1194us; 1229us; 1194us; 1236us; 1194us; 1244us; 1194us; 1247us; 1194us; 1250us; 1194us; 1253us; 1194us; 1254us; 1194us; 1265us; 1194us; 1272us; 1194us; 1273us; 1194us; 1279us; 1194us; 1285us; 1194us; 1286us; 1194us; 1287us; 1194us; 1303us; 1194us; 1313us; 1194us; 1326us; 1194us; 1327us; 1194us; 1329us; 1194us; 1331us; 1194us; 1335us; 1194us; 1336us; 1194us; 1340us; 1197us; 1359us; 1194us; 1364us; 1194us; 1389us; 1194us; 1423us; 1194us; 1428us; 1194us; 1566us; 1201us; 2us; 65535us; 1208us; 1209us; 1211us; 1212us; 4us; 65535us; 1236us; 1242us; 1244us; 1245us; 1247us; 1248us; 1250us; 1251us; 137us; 65535us; 34us; 1226us; 74us; 1226us; 104us; 1226us; 126us; 1226us; 182us; 1226us; 184us; 1226us; 213us; 1344us; 217us; 1344us; 222us; 1344us; 390us; 1226us; 395us; 1226us; 430us; 1226us; 446us; 1226us; 474us; 475us; 670us; 1226us; 676us; 1226us; 725us; 1226us; 729us; 1226us; 739us; 1226us; 887us; 1226us; 892us; 1226us; 904us; 1226us; 906us; 1226us; 909us; 1226us; 912us; 1226us; 928us; 1226us; 931us; 1226us; 934us; 1226us; 940us; 1226us; 944us; 1226us; 948us; 1226us; 950us; 1226us; 955us; 1226us; 957us; 1226us; 959us; 1226us; 961us; 1226us; 963us; 1226us; 965us; 1226us; 976us; 1226us; 984us; 1226us; 991us; 1226us; 997us; 1226us; 999us; 1226us; 1002us; 1226us; 1005us; 1226us; 1008us; 1226us; 1011us; 1226us; 1014us; 1226us; 1017us; 1226us; 1019us; 1226us; 1024us; 1226us; 1067us; 1226us; 1069us; 1226us; 1072us; 1226us; 1073us; 1226us; 1074us; 1226us; 1075us; 1226us; 1076us; 1226us; 1077us; 1226us; 1078us; 1226us; 1079us; 1226us; 1080us; 1226us; 1081us; 1226us; 1082us; 1226us; 1083us; 1226us; 1084us; 1226us; 1085us; 1226us; 1086us; 1226us; 1087us; 1226us; 1088us; 1226us; 1089us; 1226us; 1090us; 1226us; 1091us; 1226us; 1113us; 1226us; 1135us; 1226us; 1136us; 1226us; 1140us; 1226us; 1142us; 1226us; 1146us; 1226us; 1148us; 1226us; 1152us; 1226us; 1155us; 1226us; 1157us; 1226us; 1159us; 1226us; 1160us; 1226us; 1162us; 1226us; 1163us; 1226us; 1165us; 1226us; 1166us; 1226us; 1168us; 1226us; 1169us; 1226us; 1171us; 1226us; 1172us; 1226us; 1174us; 1226us; 1175us; 1226us; 1181us; 1183us; 1182us; 1184us; 1187us; 1226us; 1189us; 1226us; 1191us; 1226us; 1192us; 1226us; 1195us; 1226us; 1202us; 1226us; 1203us; 1226us; 1206us; 1226us; 1207us; 1226us; 1220us; 1226us; 1229us; 1226us; 1236us; 1226us; 1244us; 1226us; 1247us; 1226us; 1250us; 1226us; 1253us; 1226us; 1254us; 1226us; 1265us; 1226us; 1272us; 1226us; 1273us; 1226us; 1279us; 1226us; 1285us; 1226us; 1286us; 1226us; 1287us; 1226us; 1303us; 1226us; 1313us; 1226us; 1326us; 1226us; 1327us; 1226us; 1329us; 1226us; 1331us; 1226us; 1335us; 1226us; 1336us; 1226us; 1340us; 1226us; 1355us; 1344us; 1359us; 1226us; 1364us; 1226us; 1389us; 1226us; 1423us; 1226us; 1428us; 1226us; 1566us; 1226us; 137us; 65535us; 34us; 1264us; 74us; 1264us; 104us; 1264us; 126us; 1264us; 182us; 1264us; 184us; 1264us; 213us; 1264us; 217us; 1264us; 222us; 1264us; 390us; 1264us; 395us; 1264us; 430us; 1264us; 446us; 1264us; 474us; 1264us; 670us; 1264us; 676us; 1264us; 725us; 1264us; 729us; 1264us; 739us; 1264us; 887us; 1264us; 892us; 1264us; 904us; 1264us; 906us; 1264us; 909us; 1264us; 912us; 1264us; 928us; 1264us; 931us; 1264us; 934us; 1264us; 940us; 1264us; 944us; 1264us; 948us; 1264us; 950us; 1264us; 955us; 1264us; 957us; 1264us; 959us; 1264us; 961us; 1264us; 963us; 1264us; 965us; 1264us; 976us; 1264us; 984us; 1264us; 991us; 1264us; 997us; 1264us; 999us; 1264us; 1002us; 1264us; 1005us; 1264us; 1008us; 1264us; 1011us; 1264us; 1014us; 1264us; 1017us; 1264us; 1019us; 1264us; 1024us; 1264us; 1067us; 1264us; 1069us; 1264us; 1072us; 1264us; 1073us; 1264us; 1074us; 1264us; 1075us; 1264us; 1076us; 1264us; 1077us; 1264us; 1078us; 1264us; 1079us; 1264us; 1080us; 1264us; 1081us; 1264us; 1082us; 1264us; 1083us; 1264us; 1084us; 1264us; 1085us; 1264us; 1086us; 1264us; 1087us; 1264us; 1088us; 1264us; 1089us; 1264us; 1090us; 1264us; 1091us; 1264us; 1113us; 1264us; 1135us; 1264us; 1136us; 1264us; 1140us; 1264us; 1142us; 1264us; 1146us; 1264us; 1148us; 1264us; 1152us; 1264us; 1155us; 1264us; 1157us; 1264us; 1159us; 1264us; 1160us; 1264us; 1162us; 1264us; 1163us; 1264us; 1165us; 1264us; 1166us; 1264us; 1168us; 1264us; 1169us; 1264us; 1171us; 1264us; 1172us; 1264us; 1174us; 1264us; 1175us; 1264us; 1181us; 1264us; 1182us; 1264us; 1187us; 1264us; 1189us; 1264us; 1191us; 1264us; 1192us; 1264us; 1195us; 1264us; 1202us; 1264us; 1203us; 1264us; 1206us; 1264us; 1207us; 1264us; 1220us; 1264us; 1229us; 1264us; 1236us; 1264us; 1244us; 1264us; 1247us; 1264us; 1250us; 1264us; 1253us; 1264us; 1254us; 1264us; 1265us; 1264us; 1272us; 1264us; 1273us; 1264us; 1279us; 1264us; 1285us; 1264us; 1286us; 1264us; 1287us; 1264us; 1303us; 1264us; 1313us; 1264us; 1326us; 1264us; 1327us; 1264us; 1329us; 1264us; 1331us; 1264us; 1335us; 1264us; 1336us; 1264us; 1340us; 1264us; 1355us; 1264us; 1359us; 1264us; 1364us; 1264us; 1389us; 1264us; 1423us; 1264us; 1428us; 1264us; 1566us; 1264us; 176us; 65535us; 34us; 1262us; 74us; 1262us; 104us; 1262us; 126us; 1262us; 182us; 1262us; 184us; 1262us; 213us; 1262us; 217us; 1262us; 222us; 1262us; 387us; 823us; 390us; 1262us; 392us; 823us; 395us; 1262us; 427us; 823us; 430us; 1262us; 446us; 1262us; 474us; 1262us; 670us; 1262us; 676us; 1262us; 722us; 823us; 725us; 1262us; 729us; 1262us; 739us; 1262us; 798us; 823us; 799us; 823us; 803us; 823us; 804us; 823us; 805us; 823us; 806us; 823us; 808us; 823us; 810us; 823us; 812us; 823us; 817us; 823us; 819us; 823us; 821us; 823us; 829us; 823us; 832us; 823us; 844us; 823us; 865us; 823us; 870us; 823us; 871us; 823us; 873us; 823us; 874us; 823us; 875us; 823us; 876us; 823us; 883us; 823us; 885us; 823us; 887us; 1262us; 892us; 1262us; 904us; 1262us; 906us; 1262us; 909us; 1262us; 912us; 1262us; 928us; 1262us; 931us; 1262us; 934us; 1262us; 940us; 1262us; 944us; 1262us; 948us; 1262us; 950us; 1262us; 955us; 1262us; 957us; 1262us; 959us; 1262us; 961us; 1262us; 963us; 1262us; 965us; 1262us; 974us; 823us; 976us; 1262us; 984us; 1262us; 991us; 1262us; 997us; 1262us; 999us; 1262us; 1001us; 823us; 1002us; 1262us; 1005us; 1262us; 1007us; 823us; 1008us; 1262us; 1011us; 1262us; 1014us; 1262us; 1017us; 1262us; 1019us; 1262us; 1024us; 1262us; 1067us; 1262us; 1069us; 1262us; 1072us; 1262us; 1073us; 1262us; 1074us; 1262us; 1075us; 1262us; 1076us; 1262us; 1077us; 1262us; 1078us; 1262us; 1079us; 1262us; 1080us; 1262us; 1081us; 1262us; 1082us; 1262us; 1083us; 1262us; 1084us; 1262us; 1085us; 1262us; 1086us; 1262us; 1087us; 1262us; 1088us; 1262us; 1089us; 1262us; 1090us; 1262us; 1091us; 1262us; 1113us; 1262us; 1116us; 823us; 1118us; 823us; 1123us; 823us; 1130us; 823us; 1135us; 1262us; 1136us; 1262us; 1140us; 1262us; 1142us; 1262us; 1146us; 1262us; 1148us; 1262us; 1152us; 1262us; 1155us; 1262us; 1157us; 1262us; 1159us; 1262us; 1160us; 1262us; 1162us; 1262us; 1163us; 1262us; 1165us; 1262us; 1166us; 1262us; 1168us; 1262us; 1169us; 1262us; 1171us; 1262us; 1172us; 1262us; 1174us; 1262us; 1175us; 1262us; 1181us; 1262us; 1182us; 1262us; 1187us; 1262us; 1189us; 1262us; 1191us; 1262us; 1192us; 1262us; 1195us; 1262us; 1202us; 1262us; 1203us; 1262us; 1206us; 1262us; 1207us; 1262us; 1220us; 1262us; 1229us; 1262us; 1236us; 1262us; 1244us; 1262us; 1247us; 1262us; 1250us; 1262us; 1253us; 1262us; 1254us; 1262us; 1265us; 1262us; 1272us; 1262us; 1273us; 1262us; 1279us; 1262us; 1285us; 1262us; 1286us; 1262us; 1287us; 1262us; 1303us; 1262us; 1313us; 1262us; 1326us; 1262us; 1327us; 1262us; 1329us; 1262us; 1331us; 1262us; 1335us; 1262us; 1336us; 1262us; 1340us; 1262us; 1355us; 1262us; 1359us; 1262us; 1364us; 1262us; 1389us; 1262us; 1421us; 823us; 1423us; 1262us; 1426us; 823us; 1428us; 1262us; 1439us; 823us; 1441us; 823us; 1566us; 1262us; 137us; 65535us; 34us; 1263us; 74us; 1263us; 104us; 1263us; 126us; 1263us; 182us; 1263us; 184us; 1263us; 213us; 1263us; 217us; 1263us; 222us; 1263us; 390us; 1263us; 395us; 1263us; 430us; 1263us; 446us; 1263us; 474us; 1263us; 670us; 1263us; 676us; 1263us; 725us; 1263us; 729us; 1263us; 739us; 1263us; 887us; 1263us; 892us; 1263us; 904us; 1263us; 906us; 1263us; 909us; 1263us; 912us; 1263us; 928us; 1263us; 931us; 1263us; 934us; 1263us; 940us; 1263us; 944us; 1263us; 948us; 1263us; 950us; 1263us; 955us; 1263us; 957us; 1263us; 959us; 1263us; 961us; 1263us; 963us; 1263us; 965us; 1263us; 976us; 1263us; 984us; 1263us; 991us; 1263us; 997us; 1263us; 999us; 1263us; 1002us; 1263us; 1005us; 1263us; 1008us; 1263us; 1011us; 1263us; 1014us; 1263us; 1017us; 1263us; 1019us; 1263us; 1024us; 1263us; 1067us; 1263us; 1069us; 1263us; 1072us; 1263us; 1073us; 1263us; 1074us; 1263us; 1075us; 1263us; 1076us; 1263us; 1077us; 1263us; 1078us; 1263us; 1079us; 1263us; 1080us; 1263us; 1081us; 1263us; 1082us; 1263us; 1083us; 1263us; 1084us; 1263us; 1085us; 1263us; 1086us; 1263us; 1087us; 1263us; 1088us; 1263us; 1089us; 1263us; 1090us; 1263us; 1091us; 1263us; 1113us; 1263us; 1135us; 1263us; 1136us; 1263us; 1140us; 1263us; 1142us; 1263us; 1146us; 1263us; 1148us; 1263us; 1152us; 1263us; 1155us; 1263us; 1157us; 1263us; 1159us; 1263us; 1160us; 1263us; 1162us; 1263us; 1163us; 1263us; 1165us; 1263us; 1166us; 1263us; 1168us; 1263us; 1169us; 1263us; 1171us; 1263us; 1172us; 1263us; 1174us; 1263us; 1175us; 1263us; 1181us; 1263us; 1182us; 1263us; 1187us; 1263us; 1189us; 1263us; 1191us; 1263us; 1192us; 1263us; 1195us; 1263us; 1202us; 1263us; 1203us; 1263us; 1206us; 1263us; 1207us; 1263us; 1220us; 1263us; 1229us; 1263us; 1236us; 1263us; 1244us; 1263us; 1247us; 1263us; 1250us; 1263us; 1253us; 1263us; 1254us; 1263us; 1265us; 1263us; 1272us; 1263us; 1273us; 1263us; 1279us; 1263us; 1285us; 1263us; 1286us; 1263us; 1287us; 1263us; 1303us; 1263us; 1313us; 1263us; 1326us; 1263us; 1327us; 1263us; 1329us; 1263us; 1331us; 1263us; 1335us; 1263us; 1336us; 1263us; 1340us; 1263us; 1355us; 1263us; 1359us; 1263us; 1364us; 1263us; 1389us; 1263us; 1423us; 1263us; 1428us; 1263us; 1566us; 1263us; 137us; 65535us; 34us; 1257us; 74us; 1257us; 104us; 1257us; 126us; 1257us; 182us; 1257us; 184us; 1257us; 213us; 1257us; 217us; 1257us; 222us; 1257us; 390us; 1257us; 395us; 1257us; 430us; 1257us; 446us; 1257us; 474us; 1257us; 670us; 1257us; 676us; 1257us; 725us; 1257us; 729us; 1257us; 739us; 1257us; 887us; 1257us; 892us; 1257us; 904us; 1257us; 906us; 1257us; 909us; 1257us; 912us; 1257us; 928us; 1257us; 931us; 1257us; 934us; 1257us; 940us; 1257us; 944us; 1257us; 948us; 1257us; 950us; 1257us; 955us; 1257us; 957us; 1257us; 959us; 1257us; 961us; 1257us; 963us; 1257us; 965us; 1257us; 976us; 1257us; 984us; 1257us; 991us; 1257us; 997us; 1257us; 999us; 1257us; 1002us; 1257us; 1005us; 1257us; 1008us; 1257us; 1011us; 1257us; 1014us; 1257us; 1017us; 1257us; 1019us; 1257us; 1024us; 1257us; 1067us; 1257us; 1069us; 1257us; 1072us; 1257us; 1073us; 1257us; 1074us; 1257us; 1075us; 1257us; 1076us; 1257us; 1077us; 1257us; 1078us; 1257us; 1079us; 1257us; 1080us; 1257us; 1081us; 1257us; 1082us; 1257us; 1083us; 1257us; 1084us; 1257us; 1085us; 1257us; 1086us; 1257us; 1087us; 1257us; 1088us; 1257us; 1089us; 1257us; 1090us; 1257us; 1091us; 1257us; 1113us; 1257us; 1135us; 1257us; 1136us; 1257us; 1140us; 1257us; 1142us; 1257us; 1146us; 1257us; 1148us; 1257us; 1152us; 1257us; 1155us; 1257us; 1157us; 1257us; 1159us; 1257us; 1160us; 1257us; 1162us; 1257us; 1163us; 1257us; 1165us; 1257us; 1166us; 1257us; 1168us; 1257us; 1169us; 1257us; 1171us; 1257us; 1172us; 1257us; 1174us; 1257us; 1175us; 1257us; 1181us; 1257us; 1182us; 1257us; 1187us; 1257us; 1189us; 1257us; 1191us; 1257us; 1192us; 1257us; 1195us; 1257us; 1202us; 1257us; 1203us; 1257us; 1206us; 1257us; 1207us; 1257us; 1220us; 1257us; 1229us; 1257us; 1236us; 1257us; 1244us; 1257us; 1247us; 1257us; 1250us; 1257us; 1253us; 1257us; 1254us; 1257us; 1265us; 1257us; 1272us; 1257us; 1273us; 1257us; 1279us; 1257us; 1285us; 1257us; 1286us; 1257us; 1287us; 1257us; 1303us; 1257us; 1313us; 1257us; 1326us; 1257us; 1327us; 1257us; 1329us; 1257us; 1331us; 1257us; 1335us; 1257us; 1336us; 1257us; 1340us; 1257us; 1355us; 1257us; 1359us; 1257us; 1364us; 1257us; 1389us; 1257us; 1423us; 1257us; 1428us; 1257us; 1566us; 1257us; 3us; 65535us; 1285us; 1289us; 1286us; 1289us; 1287us; 1289us; 3us; 65535us; 1285us; 1299us; 1286us; 1299us; 1287us; 1299us; 1us; 65535us; 1286us; 1309us; 137us; 65535us; 34us; 1258us; 74us; 1258us; 104us; 1258us; 126us; 1258us; 182us; 1258us; 184us; 1258us; 213us; 1258us; 217us; 1258us; 222us; 1258us; 390us; 1258us; 395us; 1258us; 430us; 1258us; 446us; 1258us; 474us; 1258us; 670us; 1258us; 676us; 1258us; 725us; 1258us; 729us; 1258us; 739us; 1258us; 887us; 1258us; 892us; 1258us; 904us; 1258us; 906us; 1258us; 909us; 1258us; 912us; 1258us; 928us; 1258us; 931us; 1258us; 934us; 1258us; 940us; 1258us; 944us; 1258us; 948us; 1258us; 950us; 1258us; 955us; 1258us; 957us; 1258us; 959us; 1258us; 961us; 1258us; 963us; 1258us; 965us; 1258us; 976us; 1258us; 984us; 1258us; 991us; 1258us; 997us; 1258us; 999us; 1258us; 1002us; 1258us; 1005us; 1258us; 1008us; 1258us; 1011us; 1258us; 1014us; 1258us; 1017us; 1258us; 1019us; 1258us; 1024us; 1258us; 1067us; 1258us; 1069us; 1258us; 1072us; 1258us; 1073us; 1258us; 1074us; 1258us; 1075us; 1258us; 1076us; 1258us; 1077us; 1258us; 1078us; 1258us; 1079us; 1258us; 1080us; 1258us; 1081us; 1258us; 1082us; 1258us; 1083us; 1258us; 1084us; 1258us; 1085us; 1258us; 1086us; 1258us; 1087us; 1258us; 1088us; 1258us; 1089us; 1258us; 1090us; 1258us; 1091us; 1258us; 1113us; 1258us; 1135us; 1258us; 1136us; 1258us; 1140us; 1258us; 1142us; 1258us; 1146us; 1258us; 1148us; 1258us; 1152us; 1258us; 1155us; 1258us; 1157us; 1258us; 1159us; 1258us; 1160us; 1258us; 1162us; 1258us; 1163us; 1258us; 1165us; 1258us; 1166us; 1258us; 1168us; 1258us; 1169us; 1258us; 1171us; 1258us; 1172us; 1258us; 1174us; 1258us; 1175us; 1258us; 1181us; 1258us; 1182us; 1258us; 1187us; 1258us; 1189us; 1258us; 1191us; 1258us; 1192us; 1258us; 1195us; 1258us; 1202us; 1258us; 1203us; 1258us; 1206us; 1258us; 1207us; 1258us; 1220us; 1258us; 1229us; 1258us; 1236us; 1258us; 1244us; 1258us; 1247us; 1258us; 1250us; 1258us; 1253us; 1258us; 1254us; 1258us; 1265us; 1258us; 1272us; 1258us; 1273us; 1258us; 1279us; 1258us; 1285us; 1258us; 1286us; 1258us; 1287us; 1258us; 1303us; 1258us; 1313us; 1258us; 1326us; 1258us; 1327us; 1258us; 1329us; 1258us; 1331us; 1258us; 1335us; 1258us; 1336us; 1258us; 1340us; 1258us; 1355us; 1258us; 1359us; 1258us; 1364us; 1258us; 1389us; 1258us; 1423us; 1258us; 1428us; 1258us; 1566us; 1258us; 1us; 65535us; 1313us; 1314us; 2us; 65535us; 1220us; 1221us; 1279us; 1280us; 3us; 65535us; 1220us; 1323us; 1279us; 1323us; 1313us; 1322us; 4us; 65535us; 1220us; 1325us; 1279us; 1325us; 1313us; 1325us; 1331us; 1332us; 1us; 65535us; 1022us; 1023us; 1us; 65535us; 974us; 975us; 1us; 65535us; 974us; 983us; 3us; 65535us; 1285us; 1306us; 1286us; 1306us; 1287us; 1306us; 1us; 65535us; 1339us; 1340us; 4us; 65535us; 213us; 214us; 217us; 218us; 222us; 223us; 1355us; 1356us; 1us; 65535us; 1338us; 1339us; 1us; 65535us; 1340us; 1341us; 1us; 65535us; 1313us; 1320us; 6us; 65535us; 1357us; 1358us; 1361us; 1362us; 1366us; 1367us; 1370us; 1371us; 1372us; 1373us; 1376us; 1377us; 6us; 65535us; 1357us; 1380us; 1361us; 1380us; 1366us; 1380us; 1370us; 1380us; 1372us; 1379us; 1376us; 1380us; 3us; 65535us; 1368us; 1388us; 1372us; 1388us; 1380us; 1388us; 5us; 65535us; 1356us; 1357us; 1360us; 1361us; 1365us; 1366us; 1369us; 1370us; 1375us; 1376us; 3us; 65535us; 1368us; 1369us; 1372us; 1375us; 1380us; 1387us; 1us; 65535us; 1313us; 1321us; 1us; 65535us; 1313us; 1393us; 1us; 65535us; 1415us; 1416us; 2us; 65535us; 1393us; 1394us; 1415us; 1400us; 1us; 65535us; 1397us; 1398us; 4us; 65535us; 1395us; 1396us; 1408us; 1409us; 1410us; 1411us; 1412us; 1413us; 5us; 65535us; 1395us; 1410us; 1397us; 1408us; 1408us; 1410us; 1410us; 1410us; 1412us; 1410us; 1us; 65535us; 1059us; 1336us; 107us; 65535us; 34us; 939us; 74us; 939us; 104us; 939us; 126us; 939us; 182us; 939us; 184us; 939us; 390us; 939us; 395us; 939us; 430us; 939us; 446us; 939us; 670us; 939us; 676us; 939us; 725us; 939us; 729us; 939us; 739us; 939us; 887us; 939us; 892us; 939us; 904us; 939us; 906us; 939us; 909us; 939us; 912us; 939us; 928us; 939us; 931us; 939us; 934us; 939us; 940us; 939us; 944us; 939us; 948us; 939us; 950us; 939us; 955us; 939us; 957us; 939us; 959us; 939us; 961us; 939us; 963us; 939us; 965us; 939us; 976us; 939us; 984us; 939us; 991us; 939us; 997us; 939us; 999us; 939us; 1002us; 939us; 1005us; 939us; 1008us; 939us; 1011us; 939us; 1014us; 939us; 1017us; 939us; 1019us; 939us; 1024us; 939us; 1067us; 939us; 1069us; 939us; 1072us; 939us; 1073us; 939us; 1074us; 939us; 1075us; 939us; 1076us; 939us; 1077us; 939us; 1078us; 939us; 1079us; 939us; 1080us; 939us; 1081us; 939us; 1082us; 939us; 1083us; 939us; 1084us; 939us; 1085us; 939us; 1086us; 939us; 1087us; 939us; 1088us; 939us; 1089us; 939us; 1090us; 939us; 1091us; 939us; 1113us; 939us; 1135us; 939us; 1136us; 939us; 1140us; 939us; 1142us; 939us; 1146us; 939us; 1148us; 939us; 1152us; 939us; 1155us; 939us; 1157us; 939us; 1220us; 939us; 1229us; 939us; 1236us; 939us; 1244us; 939us; 1247us; 939us; 1250us; 939us; 1253us; 939us; 1254us; 939us; 1265us; 939us; 1272us; 939us; 1273us; 939us; 1279us; 939us; 1285us; 939us; 1286us; 939us; 1287us; 939us; 1303us; 939us; 1313us; 939us; 1326us; 939us; 1327us; 939us; 1329us; 939us; 1331us; 939us; 1335us; 939us; 1336us; 939us; 1359us; 939us; 1364us; 939us; 1389us; 939us; 1423us; 939us; 1428us; 939us; 107us; 65535us; 34us; 938us; 74us; 938us; 104us; 938us; 126us; 938us; 182us; 938us; 184us; 938us; 390us; 938us; 395us; 938us; 430us; 938us; 446us; 938us; 670us; 938us; 676us; 938us; 725us; 938us; 729us; 938us; 739us; 938us; 887us; 938us; 892us; 938us; 904us; 938us; 906us; 938us; 909us; 938us; 912us; 938us; 928us; 938us; 931us; 938us; 934us; 938us; 940us; 938us; 944us; 938us; 948us; 938us; 950us; 938us; 955us; 938us; 957us; 938us; 959us; 938us; 961us; 938us; 963us; 938us; 965us; 938us; 976us; 938us; 984us; 938us; 991us; 938us; 997us; 938us; 999us; 938us; 1002us; 938us; 1005us; 938us; 1008us; 938us; 1011us; 938us; 1014us; 938us; 1017us; 938us; 1019us; 938us; 1024us; 938us; 1067us; 938us; 1069us; 938us; 1072us; 938us; 1073us; 938us; 1074us; 938us; 1075us; 938us; 1076us; 938us; 1077us; 938us; 1078us; 938us; 1079us; 938us; 1080us; 938us; 1081us; 938us; 1082us; 938us; 1083us; 938us; 1084us; 938us; 1085us; 938us; 1086us; 938us; 1087us; 938us; 1088us; 938us; 1089us; 938us; 1090us; 938us; 1091us; 938us; 1113us; 938us; 1135us; 938us; 1136us; 938us; 1140us; 938us; 1142us; 938us; 1146us; 938us; 1148us; 938us; 1152us; 938us; 1155us; 938us; 1157us; 938us; 1220us; 938us; 1229us; 938us; 1236us; 938us; 1244us; 938us; 1247us; 938us; 1250us; 938us; 1253us; 938us; 1254us; 938us; 1265us; 938us; 1272us; 938us; 1273us; 938us; 1279us; 938us; 1285us; 938us; 1286us; 938us; 1287us; 938us; 1303us; 938us; 1313us; 938us; 1326us; 938us; 1327us; 938us; 1329us; 938us; 1331us; 938us; 1335us; 938us; 1336us; 938us; 1359us; 938us; 1364us; 938us; 1389us; 938us; 1423us; 938us; 1428us; 938us; 3us; 65535us; 775us; 776us; 868us; 869us; 899us; 900us; 5us; 65535us; 179us; 180us; 306us; 307us; 321us; 322us; 416us; 417us; 1448us; 1449us; 3us; 65535us; 388us; 389us; 393us; 394us; 723us; 724us; 9us; 65535us; 179us; 1446us; 253us; 254us; 306us; 1446us; 321us; 1446us; 353us; 354us; 416us; 1446us; 613us; 614us; 1448us; 1446us; 1451us; 1452us; 9us; 65535us; 179us; 1450us; 253us; 1450us; 306us; 1450us; 321us; 1450us; 353us; 1450us; 416us; 1450us; 613us; 1450us; 1448us; 1450us; 1451us; 1450us; 2us; 65535us; 1454us; 1455us; 1457us; 1458us; 11us; 65535us; 179us; 1453us; 253us; 1453us; 306us; 1453us; 321us; 1453us; 353us; 1453us; 416us; 1453us; 613us; 1453us; 1448us; 1453us; 1451us; 1453us; 1454us; 1456us; 1457us; 1456us; 32us; 65535us; 300us; 512us; 403us; 512us; 439us; 440us; 449us; 450us; 507us; 512us; 515us; 1561us; 570us; 571us; 573us; 574us; 647us; 648us; 745us; 746us; 775us; 1444us; 868us; 1444us; 899us; 1444us; 1061us; 1062us; 1063us; 1064us; 1065us; 1066us; 1346us; 1347us; 1349us; 1350us; 1351us; 1561us; 1475us; 1476us; 1509us; 1561us; 1510us; 1561us; 1518us; 1520us; 1519us; 1521us; 1524us; 1526us; 1525us; 1527us; 1537us; 1592us; 1541us; 1592us; 1559us; 1560us; 1580us; 1592us; 1582us; 1592us; 1593us; 1594us; 32us; 65535us; 300us; 1474us; 403us; 1474us; 439us; 1474us; 449us; 1474us; 507us; 1474us; 515us; 1474us; 570us; 1474us; 573us; 1474us; 647us; 1474us; 745us; 1474us; 775us; 1474us; 868us; 1474us; 899us; 1474us; 1061us; 1474us; 1063us; 1474us; 1065us; 1474us; 1346us; 1474us; 1349us; 1474us; 1351us; 1474us; 1475us; 1474us; 1509us; 1474us; 1510us; 1474us; 1518us; 1474us; 1519us; 1474us; 1524us; 1474us; 1525us; 1474us; 1537us; 1474us; 1541us; 1474us; 1559us; 1474us; 1580us; 1474us; 1582us; 1474us; 1593us; 1474us; 5us; 65535us; 1478us; 1479us; 1480us; 1481us; 1482us; 1483us; 1485us; 1486us; 1487us; 1488us; 2us; 65535us; 636us; 637us; 1490us; 1491us; 86us; 65535us; 179us; 1497us; 253us; 1497us; 300us; 1497us; 306us; 1497us; 310us; 1497us; 311us; 1496us; 312us; 1497us; 313us; 1496us; 321us; 1497us; 353us; 1497us; 403us; 1497us; 409us; 1497us; 410us; 1496us; 416us; 1497us; 439us; 1497us; 449us; 1497us; 471us; 1497us; 507us; 1497us; 515us; 1497us; 524us; 1497us; 570us; 1497us; 573us; 1497us; 610us; 1497us; 613us; 1497us; 632us; 1497us; 635us; 1496us; 636us; 1497us; 647us; 1497us; 660us; 1497us; 745us; 1497us; 775us; 1497us; 814us; 1497us; 868us; 1497us; 899us; 1497us; 1061us; 1497us; 1063us; 1497us; 1065us; 1497us; 1177us; 1497us; 1178us; 1497us; 1346us; 1497us; 1349us; 1497us; 1351us; 1497us; 1353us; 1497us; 1414us; 1497us; 1415us; 1496us; 1448us; 1497us; 1451us; 1497us; 1454us; 1497us; 1457us; 1497us; 1459us; 1497us; 1460us; 1496us; 1461us; 1497us; 1462us; 1496us; 1465us; 1497us; 1466us; 1496us; 1467us; 1496us; 1468us; 1497us; 1469us; 1496us; 1472us; 1497us; 1473us; 1496us; 1475us; 1497us; 1477us; 1496us; 1478us; 1497us; 1480us; 1497us; 1482us; 1497us; 1484us; 1496us; 1485us; 1497us; 1487us; 1497us; 1489us; 1496us; 1490us; 1497us; 1500us; 1496us; 1509us; 1497us; 1510us; 1497us; 1513us; 1496us; 1514us; 1496us; 1518us; 1497us; 1519us; 1497us; 1524us; 1497us; 1525us; 1497us; 1537us; 1497us; 1541us; 1497us; 1555us; 1497us; 1559us; 1497us; 1580us; 1497us; 1582us; 1497us; 1593us; 1497us; 86us; 65535us; 179us; 1557us; 253us; 1557us; 300us; 1557us; 306us; 1557us; 310us; 1557us; 311us; 1507us; 312us; 1557us; 313us; 1507us; 321us; 1557us; 353us; 1557us; 403us; 1557us; 409us; 1557us; 410us; 1507us; 416us; 1557us; 439us; 1557us; 449us; 1557us; 471us; 1557us; 507us; 1557us; 515us; 1557us; 524us; 1557us; 570us; 1557us; 573us; 1557us; 610us; 1557us; 613us; 1557us; 632us; 1557us; 635us; 1507us; 636us; 1557us; 647us; 1557us; 660us; 1557us; 745us; 1557us; 775us; 1557us; 814us; 1557us; 868us; 1557us; 899us; 1557us; 1061us; 1557us; 1063us; 1557us; 1065us; 1557us; 1177us; 1557us; 1178us; 1557us; 1346us; 1557us; 1349us; 1557us; 1351us; 1557us; 1353us; 1557us; 1414us; 1557us; 1415us; 1507us; 1448us; 1557us; 1451us; 1557us; 1454us; 1557us; 1457us; 1557us; 1459us; 1557us; 1460us; 1507us; 1461us; 1557us; 1462us; 1507us; 1465us; 1557us; 1466us; 1507us; 1467us; 1507us; 1468us; 1557us; 1469us; 1507us; 1472us; 1557us; 1473us; 1507us; 1475us; 1557us; 1477us; 1507us; 1478us; 1557us; 1480us; 1557us; 1482us; 1557us; 1484us; 1507us; 1485us; 1557us; 1487us; 1557us; 1489us; 1507us; 1490us; 1557us; 1500us; 1508us; 1509us; 1557us; 1510us; 1557us; 1513us; 1515us; 1514us; 1516us; 1518us; 1557us; 1519us; 1557us; 1524us; 1557us; 1525us; 1557us; 1537us; 1557us; 1541us; 1557us; 1555us; 1557us; 1559us; 1557us; 1580us; 1557us; 1582us; 1557us; 1593us; 1557us; 66us; 65535us; 179us; 1467us; 253us; 1467us; 300us; 1477us; 306us; 1467us; 310us; 311us; 312us; 313us; 321us; 1467us; 353us; 1467us; 403us; 1477us; 409us; 410us; 416us; 1467us; 439us; 1477us; 449us; 1477us; 471us; 1500us; 507us; 1477us; 515us; 1477us; 570us; 1477us; 573us; 1477us; 610us; 635us; 613us; 1467us; 632us; 635us; 636us; 1489us; 647us; 1477us; 660us; 635us; 745us; 1477us; 775us; 1477us; 868us; 1477us; 899us; 1477us; 1061us; 1477us; 1063us; 1477us; 1065us; 1477us; 1177us; 1500us; 1178us; 1500us; 1346us; 1477us; 1349us; 1477us; 1351us; 1477us; 1353us; 1500us; 1414us; 1415us; 1448us; 1467us; 1451us; 1467us; 1454us; 1467us; 1457us; 1467us; 1459us; 1460us; 1461us; 1462us; 1465us; 1466us; 1468us; 1469us; 1472us; 1473us; 1475us; 1477us; 1478us; 1484us; 1480us; 1484us; 1482us; 1484us; 1485us; 1484us; 1487us; 1484us; 1490us; 1489us; 1509us; 1477us; 1510us; 1477us; 1518us; 1477us; 1519us; 1477us; 1524us; 1477us; 1525us; 1477us; 1537us; 1477us; 1541us; 1477us; 1559us; 1477us; 1580us; 1477us; 1582us; 1477us; 1593us; 1477us; 17us; 65535us; 311us; 1501us; 313us; 1501us; 410us; 1501us; 635us; 1501us; 1415us; 1501us; 1460us; 1501us; 1462us; 1501us; 1466us; 1501us; 1467us; 1501us; 1469us; 1501us; 1473us; 1501us; 1477us; 1501us; 1484us; 1501us; 1489us; 1501us; 1500us; 1502us; 1503us; 1505us; 1504us; 1506us; 4us; 65535us; 515us; 1511us; 1351us; 1511us; 1509us; 1512us; 1510us; 1511us; 2us; 65535us; 1538us; 1539us; 1583us; 1540us; 66us; 65535us; 179us; 1517us; 253us; 1517us; 300us; 1517us; 306us; 1517us; 310us; 1517us; 312us; 1517us; 321us; 1517us; 353us; 1517us; 403us; 1517us; 409us; 1517us; 416us; 1517us; 439us; 1517us; 449us; 1517us; 471us; 1517us; 507us; 1517us; 515us; 1517us; 570us; 1517us; 573us; 1517us; 610us; 1517us; 613us; 1517us; 632us; 1517us; 636us; 1517us; 647us; 1517us; 660us; 1517us; 745us; 1517us; 775us; 1517us; 868us; 1517us; 899us; 1517us; 1061us; 1517us; 1063us; 1517us; 1065us; 1517us; 1177us; 1517us; 1178us; 1517us; 1346us; 1517us; 1349us; 1517us; 1351us; 1517us; 1353us; 1517us; 1414us; 1517us; 1448us; 1517us; 1451us; 1517us; 1454us; 1517us; 1457us; 1517us; 1459us; 1517us; 1461us; 1517us; 1465us; 1517us; 1468us; 1517us; 1472us; 1517us; 1475us; 1517us; 1478us; 1517us; 1480us; 1517us; 1482us; 1517us; 1485us; 1517us; 1487us; 1517us; 1490us; 1517us; 1509us; 1517us; 1510us; 1517us; 1518us; 1517us; 1519us; 1517us; 1524us; 1517us; 1525us; 1517us; 1537us; 1517us; 1541us; 1517us; 1559us; 1517us; 1580us; 1517us; 1582us; 1517us; 1593us; 1517us; 4us; 65535us; 471us; 472us; 1177us; 1179us; 1178us; 1180us; 1353us; 1354us; 4us; 65535us; 471us; 1554us; 1177us; 1554us; 1178us; 1554us; 1353us; 1554us; 69us; 65535us; 179us; 1545us; 253us; 1545us; 300us; 1545us; 306us; 1545us; 310us; 1545us; 312us; 1545us; 321us; 1545us; 353us; 1545us; 403us; 1545us; 409us; 1545us; 416us; 1545us; 439us; 1545us; 449us; 1545us; 471us; 1544us; 507us; 1545us; 515us; 1545us; 524us; 1556us; 570us; 1545us; 573us; 1545us; 610us; 1545us; 613us; 1545us; 632us; 1545us; 636us; 1545us; 647us; 1545us; 660us; 1545us; 745us; 1545us; 775us; 1545us; 814us; 815us; 868us; 1545us; 899us; 1545us; 1061us; 1545us; 1063us; 1545us; 1065us; 1545us; 1177us; 1544us; 1178us; 1544us; 1346us; 1545us; 1349us; 1545us; 1351us; 1545us; 1353us; 1544us; 1414us; 1545us; 1448us; 1545us; 1451us; 1545us; 1454us; 1545us; 1457us; 1545us; 1459us; 1545us; 1461us; 1545us; 1465us; 1545us; 1468us; 1545us; 1472us; 1545us; 1475us; 1545us; 1478us; 1545us; 1480us; 1545us; 1482us; 1545us; 1485us; 1545us; 1487us; 1545us; 1490us; 1545us; 1509us; 1545us; 1510us; 1545us; 1518us; 1545us; 1519us; 1545us; 1524us; 1545us; 1525us; 1545us; 1537us; 1545us; 1541us; 1545us; 1555us; 1556us; 1559us; 1545us; 1580us; 1545us; 1582us; 1545us; 1593us; 1545us; 4us; 65535us; 577us; 592us; 590us; 591us; 1497us; 1571us; 1573us; 1574us; 6us; 65535us; 577us; 1577us; 590us; 1577us; 1204us; 1205us; 1497us; 1577us; 1573us; 1577us; 1578us; 1579us; 8us; 65535us; 515us; 1536us; 1351us; 1536us; 1509us; 1536us; 1510us; 1536us; 1537us; 1538us; 1541us; 1542us; 1580us; 1587us; 1582us; 1595us; 2us; 65535us; 1580us; 1581us; 1582us; 1583us; 3us; 65535us; 1541us; 1543us; 1580us; 1596us; 1582us; 1596us; 1us; 65535us; 767us; 768us; 6us; 65535us; 1597us; 1607us; 1604us; 1607us; 1613us; 1607us; 1619us; 1607us; 1620us; 1607us; 1621us; 1607us; 6us; 65535us; 1597us; 1613us; 1604us; 1613us; 1613us; 1613us; 1619us; 1613us; 1620us; 1613us; 1621us; 1613us; 6us; 65535us; 1597us; 1615us; 1604us; 1615us; 1613us; 1614us; 1619us; 1615us; 1620us; 1615us; 1621us; 1615us; 5us; 65535us; 1597us; 1598us; 1604us; 1605us; 1619us; 1616us; 1620us; 1617us; 1621us; 1618us; 103us; 65535us; 179us; 1494us; 253us; 1494us; 300us; 1494us; 306us; 1494us; 310us; 1494us; 311us; 1493us; 312us; 1494us; 313us; 1493us; 321us; 1494us; 353us; 1494us; 403us; 1494us; 409us; 1494us; 410us; 1493us; 416us; 1494us; 439us; 1494us; 449us; 1494us; 471us; 1495us; 507us; 1494us; 515us; 1494us; 524us; 1493us; 532us; 537us; 547us; 548us; 561us; 572us; 565us; 572us; 568us; 569us; 570us; 1494us; 573us; 1494us; 583us; 595us; 593us; 594us; 610us; 1494us; 613us; 1494us; 632us; 1494us; 635us; 1493us; 636us; 1494us; 647us; 1494us; 660us; 1494us; 737us; 744us; 741us; 744us; 745us; 1494us; 775us; 1494us; 814us; 1493us; 868us; 1494us; 899us; 1494us; 1061us; 1494us; 1063us; 1494us; 1065us; 1494us; 1177us; 1495us; 1178us; 1495us; 1346us; 1494us; 1349us; 1494us; 1351us; 1494us; 1353us; 1495us; 1414us; 1494us; 1415us; 1493us; 1445us; 572us; 1447us; 572us; 1448us; 1494us; 1451us; 1494us; 1454us; 1494us; 1457us; 1494us; 1459us; 1494us; 1460us; 1493us; 1461us; 1494us; 1462us; 1493us; 1465us; 1494us; 1466us; 1493us; 1467us; 1493us; 1468us; 1494us; 1469us; 1493us; 1472us; 1494us; 1473us; 1493us; 1475us; 1494us; 1477us; 1493us; 1478us; 1494us; 1480us; 1494us; 1482us; 1494us; 1484us; 1493us; 1485us; 1494us; 1487us; 1494us; 1489us; 1493us; 1490us; 1494us; 1500us; 1493us; 1509us; 1494us; 1510us; 1494us; 1513us; 1493us; 1514us; 1493us; 1518us; 1494us; 1519us; 1494us; 1524us; 1494us; 1525us; 1494us; 1537us; 1494us; 1541us; 1494us; 1555us; 1493us; 1559us; 1494us; 1580us; 1494us; 1582us; 1494us; 1593us; 1494us; 1597us; 1603us; 1604us; 1603us; 1613us; 1603us; 1619us; 1603us; 1620us; 1603us; 1621us; 1603us; 107us; 65535us; 179us; 1624us; 253us; 1624us; 300us; 1624us; 306us; 1624us; 310us; 1624us; 311us; 1624us; 312us; 1624us; 313us; 1624us; 321us; 1624us; 353us; 1624us; 403us; 1624us; 409us; 1624us; 410us; 1624us; 416us; 1624us; 439us; 1624us; 449us; 1624us; 471us; 1624us; 507us; 1624us; 515us; 1624us; 524us; 1624us; 532us; 1624us; 547us; 1624us; 561us; 1624us; 565us; 1624us; 568us; 1624us; 570us; 1624us; 573us; 1624us; 583us; 1624us; 593us; 1624us; 610us; 1624us; 613us; 1624us; 632us; 1624us; 635us; 1624us; 636us; 1624us; 647us; 1624us; 660us; 1624us; 737us; 1624us; 741us; 1624us; 745us; 1624us; 775us; 1624us; 814us; 1624us; 868us; 1624us; 899us; 1624us; 1061us; 1624us; 1063us; 1624us; 1065us; 1624us; 1177us; 1624us; 1178us; 1624us; 1285us; 1307us; 1286us; 1308us; 1287us; 1307us; 1311us; 1312us; 1346us; 1624us; 1349us; 1624us; 1351us; 1624us; 1353us; 1624us; 1414us; 1624us; 1415us; 1624us; 1445us; 1624us; 1447us; 1624us; 1448us; 1624us; 1451us; 1624us; 1454us; 1624us; 1457us; 1624us; 1459us; 1624us; 1460us; 1624us; 1461us; 1624us; 1462us; 1624us; 1465us; 1624us; 1466us; 1624us; 1467us; 1624us; 1468us; 1624us; 1469us; 1624us; 1472us; 1624us; 1473us; 1624us; 1475us; 1624us; 1477us; 1624us; 1478us; 1624us; 1480us; 1624us; 1482us; 1624us; 1484us; 1624us; 1485us; 1624us; 1487us; 1624us; 1489us; 1624us; 1490us; 1624us; 1500us; 1624us; 1509us; 1624us; 1510us; 1624us; 1513us; 1624us; 1514us; 1624us; 1518us; 1624us; 1519us; 1624us; 1524us; 1624us; 1525us; 1624us; 1537us; 1624us; 1541us; 1624us; 1555us; 1624us; 1559us; 1624us; 1580us; 1624us; 1582us; 1624us; 1593us; 1624us; 1597us; 1624us; 1604us; 1624us; 1613us; 1624us; 1619us; 1624us; 1620us; 1624us; 1621us; 1624us; 319us; 65535us; 34us; 1677us; 50us; 1630us; 52us; 1630us; 74us; 1677us; 104us; 1677us; 126us; 1677us; 133us; 1630us; 138us; 1630us; 165us; 1630us; 170us; 1630us; 176us; 1677us; 179us; 1630us; 182us; 1677us; 184us; 1677us; 199us; 228us; 210us; 228us; 215us; 1630us; 219us; 1630us; 253us; 1630us; 288us; 1677us; 290us; 1677us; 295us; 1677us; 300us; 626us; 303us; 1677us; 306us; 1630us; 310us; 1630us; 311us; 1630us; 312us; 1630us; 313us; 1630us; 321us; 1630us; 353us; 1630us; 387us; 1679us; 390us; 1677us; 392us; 1679us; 395us; 1677us; 403us; 626us; 409us; 1630us; 410us; 1630us; 413us; 1677us; 416us; 1630us; 427us; 1679us; 430us; 1677us; 437us; 438us; 439us; 1630us; 443us; 444us; 446us; 1677us; 449us; 1630us; 452us; 1679us; 455us; 1679us; 471us; 1630us; 479us; 480us; 482us; 483us; 507us; 626us; 515us; 1630us; 524us; 1630us; 532us; 1630us; 534us; 1630us; 570us; 1630us; 573us; 1630us; 607us; 1677us; 610us; 1630us; 613us; 1630us; 632us; 1630us; 635us; 1630us; 636us; 1630us; 645us; 646us; 647us; 1630us; 656us; 659us; 660us; 1630us; 662us; 1630us; 664us; 1630us; 670us; 1677us; 676us; 1677us; 687us; 688us; 699us; 1630us; 700us; 701us; 712us; 1630us; 722us; 1679us; 725us; 1677us; 729us; 1677us; 739us; 1677us; 745us; 1630us; 771us; 772us; 775us; 1630us; 777us; 770us; 778us; 770us; 780us; 770us; 796us; 797us; 798us; 1679us; 799us; 1679us; 803us; 1679us; 804us; 1679us; 805us; 1679us; 806us; 1679us; 808us; 1679us; 810us; 1679us; 812us; 1679us; 814us; 1630us; 817us; 1679us; 819us; 1679us; 821us; 1679us; 826us; 1630us; 829us; 1679us; 832us; 1679us; 836us; 838us; 837us; 838us; 844us; 1679us; 863us; 864us; 865us; 1679us; 868us; 1630us; 870us; 1679us; 871us; 1679us; 873us; 1679us; 874us; 1679us; 875us; 1679us; 876us; 1679us; 880us; 1630us; 883us; 1679us; 885us; 1679us; 887us; 1677us; 892us; 1677us; 899us; 1630us; 904us; 1677us; 906us; 1677us; 909us; 1677us; 912us; 1677us; 928us; 1677us; 931us; 1677us; 934us; 1677us; 940us; 1677us; 944us; 1677us; 948us; 1677us; 950us; 1677us; 955us; 1677us; 957us; 1677us; 959us; 1677us; 961us; 1677us; 963us; 1677us; 965us; 1677us; 974us; 1679us; 976us; 1677us; 984us; 1677us; 991us; 1677us; 997us; 1677us; 999us; 1677us; 1001us; 1679us; 1002us; 1677us; 1005us; 1677us; 1007us; 1679us; 1008us; 1677us; 1011us; 1677us; 1014us; 1677us; 1017us; 1677us; 1019us; 1677us; 1024us; 1677us; 1061us; 1630us; 1063us; 1630us; 1065us; 1630us; 1067us; 1677us; 1069us; 1677us; 1072us; 1677us; 1073us; 1677us; 1074us; 1677us; 1075us; 1677us; 1076us; 1677us; 1077us; 1677us; 1078us; 1677us; 1079us; 1677us; 1080us; 1677us; 1081us; 1677us; 1082us; 1677us; 1083us; 1677us; 1084us; 1677us; 1085us; 1677us; 1086us; 1677us; 1087us; 1677us; 1088us; 1677us; 1089us; 1677us; 1090us; 1677us; 1091us; 1677us; 1113us; 1677us; 1116us; 1679us; 1118us; 1679us; 1123us; 1679us; 1130us; 1679us; 1135us; 1677us; 1136us; 1677us; 1140us; 1677us; 1142us; 1677us; 1146us; 1677us; 1148us; 1677us; 1152us; 1677us; 1155us; 1677us; 1157us; 1677us; 1159us; 1677us; 1160us; 1677us; 1162us; 1677us; 1163us; 1677us; 1165us; 1677us; 1166us; 1677us; 1168us; 1677us; 1169us; 1677us; 1171us; 1677us; 1172us; 1677us; 1174us; 1677us; 1175us; 1677us; 1177us; 1630us; 1178us; 1630us; 1187us; 1677us; 1189us; 1677us; 1191us; 1677us; 1192us; 1677us; 1195us; 1677us; 1202us; 1677us; 1203us; 1677us; 1206us; 1677us; 1207us; 1677us; 1208us; 1677us; 1211us; 1677us; 1213us; 1677us; 1214us; 1677us; 1220us; 1677us; 1229us; 1677us; 1236us; 1677us; 1244us; 1677us; 1247us; 1677us; 1250us; 1677us; 1253us; 1677us; 1254us; 1677us; 1265us; 1677us; 1272us; 1677us; 1273us; 1677us; 1279us; 1677us; 1285us; 1677us; 1286us; 1677us; 1287us; 1677us; 1303us; 1677us; 1313us; 1677us; 1326us; 1677us; 1327us; 1677us; 1329us; 1677us; 1331us; 1677us; 1335us; 1677us; 1336us; 1677us; 1340us; 1677us; 1346us; 1630us; 1349us; 1630us; 1351us; 1630us; 1353us; 1630us; 1359us; 1677us; 1364us; 1677us; 1368us; 1630us; 1372us; 1630us; 1380us; 1630us; 1389us; 1677us; 1414us; 1630us; 1415us; 1630us; 1421us; 1679us; 1423us; 1677us; 1426us; 1679us; 1428us; 1677us; 1439us; 1679us; 1441us; 1679us; 1448us; 1630us; 1451us; 1630us; 1454us; 1630us; 1457us; 1630us; 1459us; 1630us; 1460us; 1630us; 1461us; 1630us; 1462us; 1630us; 1463us; 1464us; 1465us; 1630us; 1466us; 1630us; 1467us; 1630us; 1468us; 1630us; 1469us; 1630us; 1470us; 1471us; 1472us; 1630us; 1473us; 1630us; 1475us; 1630us; 1477us; 1630us; 1478us; 1630us; 1480us; 1630us; 1482us; 1630us; 1484us; 1630us; 1485us; 1630us; 1487us; 1630us; 1489us; 1630us; 1490us; 1630us; 1500us; 1630us; 1509us; 1630us; 1510us; 1630us; 1513us; 1630us; 1514us; 1630us; 1518us; 1630us; 1519us; 1630us; 1524us; 1630us; 1525us; 1630us; 1537us; 1630us; 1541us; 1630us; 1555us; 1630us; 1559us; 1630us; 1566us; 1677us; 1572us; 1630us; 1580us; 1630us; 1582us; 1630us; 1593us; 1630us; 1597us; 1630us; 1604us; 1630us; 1613us; 1630us; 1619us; 1630us; 1620us; 1630us; 1621us; 1630us; 1622us; 1623us; 1625us; 1627us; 1626us; 1627us; 1631us; 1632us; 1681us; 1679us; 114us; 65535us; 50us; 51us; 52us; 53us; 133us; 151us; 138us; 139us; 165us; 141us; 170us; 171us; 179us; 1492us; 199us; 212us; 210us; 212us; 215us; 216us; 219us; 220us; 253us; 1492us; 300us; 508us; 306us; 1492us; 310us; 1492us; 311us; 1492us; 312us; 1492us; 313us; 1492us; 321us; 1492us; 353us; 1492us; 403us; 508us; 409us; 1492us; 410us; 1492us; 416us; 1492us; 439us; 1492us; 449us; 1492us; 471us; 1492us; 507us; 508us; 515us; 1492us; 524us; 1492us; 532us; 533us; 534us; 535us; 570us; 1492us; 573us; 1492us; 610us; 1492us; 613us; 1492us; 632us; 1492us; 635us; 1492us; 636us; 1492us; 647us; 1492us; 660us; 1492us; 662us; 663us; 664us; 665us; 699us; 702us; 712us; 702us; 745us; 1492us; 775us; 1492us; 814us; 1492us; 826us; 882us; 868us; 1492us; 880us; 882us; 899us; 1492us; 1061us; 1492us; 1063us; 1492us; 1065us; 1492us; 1177us; 1492us; 1178us; 1492us; 1346us; 1492us; 1349us; 1492us; 1351us; 1492us; 1353us; 1492us; 1368us; 1385us; 1372us; 1385us; 1380us; 1385us; 1414us; 1492us; 1415us; 1492us; 1448us; 1492us; 1451us; 1492us; 1454us; 1492us; 1457us; 1492us; 1459us; 1492us; 1460us; 1492us; 1461us; 1492us; 1462us; 1492us; 1465us; 1492us; 1466us; 1492us; 1467us; 1492us; 1468us; 1492us; 1469us; 1492us; 1472us; 1492us; 1473us; 1492us; 1475us; 1492us; 1477us; 1492us; 1478us; 1492us; 1480us; 1492us; 1482us; 1492us; 1484us; 1492us; 1485us; 1492us; 1487us; 1492us; 1489us; 1492us; 1490us; 1492us; 1500us; 1492us; 1509us; 1492us; 1510us; 1492us; 1513us; 1492us; 1514us; 1492us; 1518us; 1492us; 1519us; 1492us; 1524us; 1492us; 1525us; 1492us; 1537us; 1492us; 1541us; 1492us; 1555us; 1492us; 1559us; 1492us; 1572us; 1573us; 1580us; 1492us; 1582us; 1492us; 1593us; 1492us; 1597us; 1602us; 1604us; 1602us; 1613us; 1602us; 1619us; 1602us; 1620us; 1602us; 1621us; 1602us; 183us; 65535us; 34us; 1678us; 74us; 1678us; 104us; 1678us; 126us; 1678us; 176us; 1678us; 182us; 1678us; 184us; 1678us; 288us; 1678us; 290us; 1678us; 295us; 1678us; 303us; 1678us; 387us; 1680us; 390us; 1678us; 392us; 1680us; 395us; 1678us; 413us; 1678us; 427us; 1680us; 430us; 1678us; 446us; 1678us; 452us; 1680us; 455us; 1680us; 607us; 1678us; 670us; 1678us; 676us; 1678us; 722us; 1680us; 725us; 1678us; 729us; 1678us; 739us; 1678us; 798us; 1680us; 799us; 1680us; 803us; 1680us; 804us; 1680us; 805us; 1680us; 806us; 1680us; 808us; 1680us; 810us; 1680us; 812us; 1680us; 817us; 1680us; 819us; 1680us; 821us; 1680us; 829us; 1680us; 832us; 1680us; 844us; 1680us; 865us; 1680us; 870us; 1680us; 871us; 1680us; 873us; 1680us; 874us; 1680us; 875us; 1680us; 876us; 1680us; 883us; 1680us; 885us; 1680us; 887us; 1678us; 892us; 1678us; 904us; 1678us; 906us; 1678us; 909us; 1678us; 912us; 1678us; 928us; 1678us; 931us; 1678us; 934us; 1678us; 940us; 1678us; 944us; 1678us; 948us; 1678us; 950us; 1678us; 955us; 1678us; 957us; 1678us; 959us; 1678us; 961us; 1678us; 963us; 1678us; 965us; 1678us; 974us; 1680us; 976us; 1678us; 984us; 1678us; 991us; 1678us; 997us; 1678us; 999us; 1678us; 1001us; 1680us; 1002us; 1678us; 1005us; 1678us; 1007us; 1680us; 1008us; 1678us; 1011us; 1678us; 1014us; 1678us; 1017us; 1678us; 1019us; 1678us; 1024us; 1678us; 1067us; 1678us; 1069us; 1678us; 1072us; 1678us; 1073us; 1678us; 1074us; 1678us; 1075us; 1678us; 1076us; 1678us; 1077us; 1678us; 1078us; 1678us; 1079us; 1678us; 1080us; 1678us; 1081us; 1678us; 1082us; 1678us; 1083us; 1678us; 1084us; 1678us; 1085us; 1678us; 1086us; 1678us; 1087us; 1678us; 1088us; 1678us; 1089us; 1678us; 1090us; 1678us; 1091us; 1678us; 1113us; 1678us; 1116us; 1680us; 1118us; 1680us; 1123us; 1680us; 1130us; 1680us; 1135us; 1678us; 1136us; 1678us; 1140us; 1678us; 1142us; 1678us; 1146us; 1678us; 1148us; 1678us; 1152us; 1678us; 1155us; 1678us; 1157us; 1678us; 1159us; 1678us; 1160us; 1678us; 1162us; 1678us; 1163us; 1678us; 1165us; 1678us; 1166us; 1678us; 1168us; 1678us; 1169us; 1678us; 1171us; 1678us; 1172us; 1678us; 1174us; 1678us; 1175us; 1678us; 1187us; 1678us; 1189us; 1678us; 1191us; 1678us; 1192us; 1678us; 1195us; 1678us; 1202us; 1678us; 1203us; 1678us; 1206us; 1678us; 1207us; 1678us; 1208us; 1678us; 1211us; 1678us; 1213us; 1678us; 1214us; 1678us; 1220us; 1678us; 1229us; 1678us; 1236us; 1678us; 1244us; 1678us; 1247us; 1678us; 1250us; 1678us; 1253us; 1678us; 1254us; 1678us; 1265us; 1678us; 1272us; 1678us; 1273us; 1678us; 1279us; 1678us; 1285us; 1678us; 1286us; 1678us; 1287us; 1678us; 1303us; 1678us; 1313us; 1678us; 1326us; 1678us; 1327us; 1678us; 1329us; 1678us; 1331us; 1678us; 1335us; 1678us; 1336us; 1678us; 1340us; 1678us; 1359us; 1678us; 1364us; 1678us; 1389us; 1678us; 1421us; 1680us; 1423us; 1678us; 1426us; 1680us; 1428us; 1678us; 1439us; 1680us; 1441us; 1680us; 1566us; 1678us; 1681us; 1680us; 6us; 65535us; 620us; 1635us; 844us; 1635us; 1229us; 1635us; 1286us; 1635us; 1287us; 1635us; 1634us; 1635us; 2us; 65535us; 1641us; 1676us; 1674us; 1675us; 6us; 65535us; 620us; 1640us; 844us; 1640us; 1229us; 1640us; 1286us; 1640us; 1287us; 1640us; 1634us; 1640us; 141us; 65535us; 34us; 1684us; 74us; 1684us; 104us; 1684us; 126us; 1684us; 176us; 1684us; 182us; 1684us; 184us; 1684us; 288us; 1684us; 290us; 1684us; 295us; 1684us; 303us; 1684us; 390us; 1684us; 395us; 1684us; 413us; 1684us; 430us; 1684us; 446us; 1684us; 607us; 1684us; 670us; 1684us; 676us; 1684us; 725us; 1684us; 729us; 1684us; 739us; 1684us; 887us; 1684us; 892us; 1684us; 904us; 1684us; 906us; 1684us; 909us; 1684us; 912us; 1684us; 928us; 1684us; 931us; 1684us; 934us; 1684us; 940us; 1684us; 944us; 1684us; 948us; 1684us; 950us; 1684us; 955us; 1684us; 957us; 1684us; 959us; 1684us; 961us; 1684us; 963us; 1684us; 965us; 1684us; 976us; 1684us; 984us; 1684us; 991us; 1684us; 997us; 1684us; 999us; 1684us; 1002us; 1684us; 1005us; 1684us; 1008us; 1684us; 1011us; 1684us; 1014us; 1684us; 1017us; 1684us; 1019us; 1684us; 1024us; 1684us; 1067us; 1684us; 1069us; 1684us; 1072us; 1684us; 1073us; 1684us; 1074us; 1684us; 1075us; 1684us; 1076us; 1684us; 1077us; 1684us; 1078us; 1684us; 1079us; 1684us; 1080us; 1684us; 1081us; 1684us; 1082us; 1684us; 1083us; 1684us; 1084us; 1684us; 1085us; 1684us; 1086us; 1684us; 1087us; 1684us; 1088us; 1684us; 1089us; 1684us; 1090us; 1684us; 1091us; 1684us; 1113us; 1684us; 1135us; 1684us; 1136us; 1684us; 1140us; 1684us; 1142us; 1684us; 1146us; 1684us; 1148us; 1684us; 1152us; 1684us; 1155us; 1684us; 1157us; 1684us; 1159us; 1684us; 1160us; 1684us; 1162us; 1684us; 1163us; 1684us; 1165us; 1684us; 1166us; 1684us; 1168us; 1684us; 1169us; 1684us; 1171us; 1684us; 1172us; 1684us; 1174us; 1684us; 1175us; 1684us; 1187us; 1684us; 1189us; 1684us; 1191us; 1684us; 1192us; 1684us; 1195us; 1684us; 1202us; 1684us; 1203us; 1684us; 1206us; 1684us; 1207us; 1684us; 1208us; 1227us; 1211us; 1227us; 1213us; 1684us; 1214us; 1684us; 1220us; 1684us; 1229us; 1684us; 1236us; 1684us; 1244us; 1684us; 1247us; 1684us; 1250us; 1684us; 1253us; 1684us; 1254us; 1684us; 1265us; 1684us; 1272us; 1684us; 1273us; 1684us; 1279us; 1684us; 1285us; 1684us; 1286us; 1684us; 1287us; 1684us; 1303us; 1684us; 1313us; 1684us; 1326us; 1684us; 1327us; 1684us; 1329us; 1684us; 1331us; 1684us; 1335us; 1684us; 1336us; 1684us; 1340us; 1684us; 1359us; 1684us; 1364us; 1684us; 1389us; 1684us; 1423us; 1684us; 1428us; 1684us; 1566us; 1684us; 42us; 65535us; 387us; 454us; 392us; 454us; 427us; 454us; 452us; 453us; 455us; 456us; 722us; 454us; 798us; 454us; 799us; 454us; 803us; 454us; 804us; 454us; 805us; 454us; 806us; 454us; 808us; 454us; 810us; 454us; 812us; 454us; 817us; 454us; 819us; 454us; 821us; 454us; 829us; 454us; 832us; 454us; 844us; 454us; 865us; 454us; 870us; 454us; 871us; 454us; 873us; 454us; 874us; 454us; 875us; 454us; 876us; 454us; 883us; 454us; 885us; 454us; 974us; 454us; 1001us; 454us; 1007us; 454us; 1116us; 454us; 1118us; 454us; 1123us; 454us; 1130us; 454us; 1421us; 454us; 1426us; 454us; 1439us; 454us; 1441us; 454us; 1681us; 1682us; 139us; 65535us; 34us; 1219us; 74us; 1219us; 104us; 1219us; 126us; 1219us; 176us; 177us; 182us; 1219us; 184us; 1219us; 288us; 294us; 290us; 294us; 295us; 296us; 303us; 304us; 390us; 1219us; 395us; 1219us; 413us; 414us; 430us; 1219us; 446us; 1219us; 607us; 619us; 670us; 1219us; 676us; 1219us; 725us; 1219us; 729us; 1219us; 739us; 1219us; 887us; 1219us; 892us; 1219us; 904us; 1219us; 906us; 1219us; 909us; 1219us; 912us; 1219us; 928us; 1219us; 931us; 1219us; 934us; 1219us; 940us; 1219us; 944us; 1219us; 948us; 1219us; 950us; 1219us; 955us; 1219us; 957us; 1219us; 959us; 1219us; 961us; 1219us; 963us; 1219us; 965us; 1219us; 976us; 1219us; 984us; 1219us; 991us; 1219us; 997us; 1219us; 999us; 1219us; 1002us; 1219us; 1005us; 1219us; 1008us; 1219us; 1011us; 1219us; 1014us; 1219us; 1017us; 1219us; 1019us; 1219us; 1024us; 1219us; 1067us; 1219us; 1069us; 1219us; 1072us; 1219us; 1073us; 1219us; 1074us; 1219us; 1075us; 1219us; 1076us; 1219us; 1077us; 1219us; 1078us; 1219us; 1079us; 1219us; 1080us; 1219us; 1081us; 1219us; 1082us; 1219us; 1083us; 1219us; 1084us; 1219us; 1085us; 1219us; 1086us; 1219us; 1087us; 1219us; 1088us; 1219us; 1089us; 1219us; 1090us; 1219us; 1091us; 1219us; 1113us; 1219us; 1135us; 1219us; 1136us; 1219us; 1140us; 1219us; 1142us; 1219us; 1146us; 1219us; 1148us; 1219us; 1152us; 1219us; 1155us; 1219us; 1157us; 1219us; 1159us; 1219us; 1160us; 1219us; 1162us; 1219us; 1163us; 1219us; 1165us; 1219us; 1166us; 1219us; 1168us; 1219us; 1169us; 1219us; 1171us; 1219us; 1172us; 1219us; 1174us; 1219us; 1175us; 1219us; 1187us; 1219us; 1189us; 1219us; 1191us; 1219us; 1192us; 1219us; 1195us; 1219us; 1202us; 1219us; 1203us; 1219us; 1206us; 1219us; 1207us; 1219us; 1213us; 1215us; 1214us; 1215us; 1220us; 1219us; 1229us; 1219us; 1236us; 1219us; 1244us; 1219us; 1247us; 1219us; 1250us; 1219us; 1253us; 1219us; 1254us; 1219us; 1265us; 1219us; 1272us; 1219us; 1273us; 1219us; 1279us; 1219us; 1285us; 1219us; 1286us; 1219us; 1287us; 1219us; 1303us; 1219us; 1313us; 1219us; 1326us; 1219us; 1327us; 1219us; 1329us; 1219us; 1331us; 1219us; 1335us; 1219us; 1336us; 1219us; 1340us; 1219us; 1359us; 1219us; 1364us; 1219us; 1389us; 1219us; 1423us; 1219us; 1428us; 1219us; 1566us; 1219us; 14us; 65535us; 41us; 1688us; 47us; 1688us; 84us; 1688us; 87us; 1688us; 88us; 1694us; 91us; 1688us; 99us; 1688us; 105us; 1688us; 110us; 1688us; 114us; 1688us; 115us; 1688us; 116us; 1688us; 1688us; 1688us; 1694us; 1694us; 12us; 65535us; 41us; 92us; 47us; 117us; 84us; 92us; 87us; 92us; 91us; 92us; 99us; 117us; 105us; 106us; 110us; 112us; 114us; 117us; 115us; 117us; 116us; 117us; 1688us; 1689us; 4us; 65535us; 19us; 1692us; 21us; 1692us; 23us; 1692us; 1692us; 1692us; 4us; 65535us; 19us; 25us; 21us; 27us; 23us; 29us; 1692us; 1693us; 0us; 65535us; 2us; 65535us; 88us; 89us; 1694us; 1695us; 10us; 65535us; 200us; 210us; 276us; 1709us; 374us; 1709us; 490us; 1709us; 638us; 639us; 860us; 885us; 878us; 880us; 901us; 904us; 902us; 904us; 903us; 904us; 4us; 65535us; 158us; 159us; 463us; 464us; 466us; 467us; 469us; 470us; 2us; 65535us; 1406us; 1407us; 1416us; 1417us; 9us; 65535us; 407us; 408us; 418us; 419us; 421us; 422us; 423us; 424us; 425us; 426us; 431us; 432us; 496us; 497us; 498us; 499us; 502us; 503us; 2us; 65535us; 58us; 59us; 65us; 66us; 20us; 65535us; 81us; 82us; 96us; 97us; 202us; 203us; 205us; 206us; 242us; 243us; 341us; 342us; 601us; 631us; 608us; 609us; 611us; 612us; 614us; 615us; 617us; 618us; 626us; 627us; 629us; 630us; 975us; 1022us; 1004us; 1005us; 1010us; 1011us; 1016us; 1017us; 1393us; 1397us; 1394us; 1395us; 1417us; 1418us; 7us; 65535us; 200us; 201us; 276us; 277us; 374us; 375us; 490us; 491us; 638us; 641us; 860us; 884us; 878us; 879us; 2us; 65535us; 666us; 667us; 672us; 673us; 0us; 65535us; 11us; 65535us; 173us; 174us; 301us; 302us; 377us; 386us; 379us; 386us; 384us; 386us; 406us; 392us; 412us; 413us; 494us; 721us; 495us; 392us; 501us; 392us; 718us; 721us; 7us; 65535us; 174us; 175us; 314us; 644us; 316us; 644us; 435us; 436us; 441us; 442us; 642us; 644us; 721us; 722us; 4us; 65535us; 917us; 991us; 964us; 965us; 975us; 976us; 983us; 984us; 9us; 65535us; 914us; 973us; 915us; 980us; 916us; 988us; 918us; 995us; 966us; 967us; 969us; 970us; 977us; 978us; 985us; 986us; 992us; 993us; 2us; 65535us; 133us; 152us; 142us; 152us; 2us; 65535us; 138us; 189us; 165us; 193us; 2us; 65535us; 70us; 165us; 164us; 165us; 2us; 65535us; 525us; 526us; 1341us; 1342us; 11us; 65535us; 212us; 213us; 216us; 217us; 221us; 222us; 334us; 335us; 472us; 474us; 688us; 689us; 700us; 704us; 703us; 704us; 1179us; 1181us; 1180us; 1182us; 1354us; 1355us; 5us; 65535us; 177us; 554us; 304us; 554us; 414us; 554us; 533us; 549us; 807us; 554us; 13us; 65535us; 34us; 128us; 69us; 232us; 74us; 128us; 104us; 128us; 122us; 128us; 163us; 232us; 199us; 226us; 210us; 226us; 279us; 318us; 280us; 433us; 1338us; 1345us; 1727us; 1729us; 1728us; 1729us; 10us; 65535us; 34us; 49us; 69us; 49us; 74us; 49us; 104us; 49us; 122us; 49us; 163us; 49us; 199us; 224us; 210us; 224us; 1732us; 1734us; 1733us; 1734us; 7us; 65535us; 519us; 520us; 522us; 523us; 827us; 828us; 925us; 1317us; 1313us; 1319us; 1314us; 1315us; 1737us; 1738us; 37us; 65535us; 516us; 517us; 539us; 540us; 581us; 582us; 584us; 585us; 588us; 589us; 621us; 622us; 624us; 625us; 691us; 692us; 780us; 783us; 781us; 782us; 785us; 786us; 845us; 846us; 848us; 849us; 923us; 1292us; 924us; 1293us; 1114us; 1115us; 1230us; 1231us; 1234us; 1235us; 1285us; 1288us; 1286us; 1288us; 1287us; 1288us; 1289us; 1290us; 1302us; 1303us; 1309us; 1310us; 1347us; 1348us; 1351us; 1352us; 1511us; 1513us; 1512us; 1514us; 1560us; 1562us; 1561us; 1562us; 1569us; 1570us; 1605us; 1606us; 1635us; 1636us; 1637us; 1638us; 1641us; 1642us; 1644us; 1645us; 1741us; 1742us; 26us; 65535us; 80us; 81us; 84us; 85us; 95us; 96us; 99us; 100us; 115us; 149us; 139us; 140us; 143us; 144us; 146us; 147us; 185us; 186us; 187us; 188us; 191us; 192us; 220us; 221us; 245us; 246us; 263us; 264us; 271us; 272us; 344us; 345us; 363us; 365us; 367us; 369us; 486us; 487us; 730us; 731us; 888us; 889us; 893us; 894us; 910us; 911us; 1143us; 1144us; 1149us; 1150us; 1745us; 1746us; 1us; 65535us; 1289us; 1291us; 16us; 65535us; 199us; 208us; 201us; 207us; 471us; 477us; 861us; 1334us; 974us; 994us; 975us; 982us; 976us; 981us; 977us; 979us; 1155us; 1156us; 1157us; 1158us; 1331us; 1333us; 1388us; 1392us; 1389us; 1391us; 1575us; 1576us; 1582us; 1586us; 1631us; 1633us; |] +let _fsyacc_sparseGotoTableRowOffsets = [|0us; 1us; 2us; 3us; 5us; 29us; 279us; 281us; 283us; 291us; 296us; 302us; 307us; 312us; 314us; 316us; 323us; 328us; 330us; 333us; 336us; 338us; 341us; 344us; 347us; 350us; 354us; 361us; 371us; 375us; 381us; 391us; 402us; 413us; 429us; 431us; 433us; 436us; 437us; 439us; 449us; 459us; 462us; 464us; 545us; 660us; 775us; 777us; 780us; 783us; 786us; 789us; 793us; 795us; 798us; 801us; 804us; 808us; 817us; 826us; 831us; 834us; 838us; 841us; 853us; 860us; 863us; 867us; 870us; 874us; 878us; 882us; 886us; 897us; 908us; 910us; 913us; 917us; 921us; 924us; 935us; 939us; 942us; 944us; 984us; 995us; 1057us; 1070us; 1072us; 1077us; 1083us; 1086us; 1089us; 1092us; 1095us; 1099us; 1102us; 1107us; 1112us; 1115us; 1121us; 1128us; 1130us; 1136us; 1146us; 1148us; 1150us; 1154us; 1160us; 1162us; 1164us; 1169us; 1173us; 1175us; 1179us; 1183us; 1188us; 1190us; 1194us; 1200us; 1204us; 1208us; 1210us; 1214us; 1218us; 1222us; 1225us; 1228us; 1232us; 1237us; 1240us; 1247us; 1254us; 1256us; 1258us; 1274us; 1386us; 1394us; 1506us; 1617us; 1621us; 1626us; 1738us; 1740us; 1742us; 1746us; 1749us; 1751us; 1756us; 1759us; 1765us; 1768us; 1770us; 1773us; 1775us; 1777us; 1779us; 1782us; 2030us; 2209us; 2213us; 2217us; 2220us; 2222us; 2234us; 2246us; 2258us; 2289us; 2298us; 2338us; 2340us; 2360us; 2380us; 2400us; 2402us; 2405us; 2408us; 2412us; 2436us; 2443us; 2449us; 2498us; 2552us; 2637us; 2745us; 2747us; 2750us; 2755us; 2762us; 2769us; 2771us; 2773us; 2776us; 2779us; 2781us; 2889us; 3011us; 3133us; 3137us; 3268us; 3271us; 3276us; 3414us; 3552us; 3729us; 3867us; 4005us; 4009us; 4013us; 4015us; 4153us; 4155us; 4158us; 4162us; 4167us; 4169us; 4171us; 4173us; 4177us; 4179us; 4184us; 4186us; 4188us; 4190us; 4197us; 4204us; 4208us; 4214us; 4218us; 4220us; 4222us; 4224us; 4227us; 4229us; 4234us; 4240us; 4242us; 4350us; 4458us; 4462us; 4468us; 4472us; 4482us; 4492us; 4495us; 4507us; 4540us; 4573us; 4579us; 4582us; 4669us; 4756us; 4823us; 4841us; 4846us; 4849us; 4916us; 4921us; 4926us; 4996us; 5001us; 5008us; 5017us; 5020us; 5024us; 5026us; 5033us; 5040us; 5047us; 5053us; 5157us; 5265us; 5585us; 5700us; 5884us; 5891us; 5894us; 5901us; 6043us; 6086us; 6226us; 6241us; 6254us; 6259us; 6264us; 6265us; 6268us; 6279us; 6284us; 6287us; 6297us; 6300us; 6321us; 6329us; 6332us; 6333us; 6345us; 6353us; 6358us; 6368us; 6371us; 6374us; 6377us; 6380us; 6392us; 6398us; 6412us; 6423us; 6431us; 6469us; 6496us; 6498us; |] +let _fsyacc_stateToProdIdxsTableElements = [| 1us; 0us; 1us; 0us; 1us; 1us; 1us; 1us; 1us; 2us; 1us; 2us; 1us; 3us; 1us; 4us; 1us; 5us; 1us; 6us; 1us; 6us; 2us; 6us; 11us; 1us; 7us; 1us; 8us; 1us; 9us; 1us; 11us; 1us; 12us; 1us; 13us; 1us; 14us; 2us; 15us; 18us; 1us; 15us; 2us; 16us; 19us; 1us; 16us; 2us; 17us; 20us; 1us; 17us; 1us; 18us; 1us; 18us; 1us; 19us; 1us; 19us; 1us; 20us; 1us; 20us; 2us; 21us; 22us; 1us; 22us; 7us; 23us; 75us; 76us; 77us; 78us; 79us; 80us; 7us; 23us; 75us; 76us; 77us; 78us; 79us; 80us; 47us; 23us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 1us; 24us; 2us; 25us; 26us; 1us; 25us; 1us; 26us; 1us; 26us; 3us; 27us; 52us; 55us; 1us; 27us; 2us; 28us; 29us; 1us; 28us; 1us; 29us; 1us; 29us; 2us; 30us; 72us; 1us; 30us; 1us; 31us; 1us; 31us; 3us; 31us; 901us; 902us; 1us; 32us; 3us; 32us; 901us; 902us; 2us; 33us; 34us; 1us; 34us; 2us; 35us; 36us; 1us; 35us; 1us; 37us; 1us; 37us; 1us; 37us; 2us; 38us; 39us; 1us; 39us; 2us; 40us; 41us; 1us; 40us; 1us; 42us; 1us; 42us; 1us; 42us; 6us; 43us; 99us; 100us; 101us; 102us; 104us; 6us; 43us; 99us; 100us; 101us; 102us; 104us; 3us; 43us; 99us; 100us; 1us; 43us; 1us; 44us; 11us; 45us; 63us; 64us; 65us; 67us; 75us; 76us; 77us; 78us; 79us; 80us; 10us; 45us; 63us; 64us; 65us; 75us; 76us; 77us; 78us; 79us; 80us; 2us; 45us; 80us; 1us; 45us; 1us; 46us; 1us; 47us; 3us; 48us; 49us; 50us; 2us; 48us; 49us; 1us; 48us; 1us; 48us; 1us; 49us; 3us; 50us; 52us; 55us; 1us; 50us; 1us; 51us; 2us; 52us; 55us; 2us; 54us; 56us; 2us; 54us; 56us; 1us; 54us; 1us; 55us; 1us; 55us; 1us; 55us; 3us; 57us; 58us; 59us; 2us; 57us; 58us; 1us; 57us; 1us; 57us; 1us; 58us; 2us; 59us; 72us; 1us; 59us; 1us; 60us; 1us; 61us; 10us; 63us; 64us; 65us; 67us; 75us; 76us; 77us; 78us; 79us; 80us; 9us; 63us; 64us; 65us; 75us; 76us; 77us; 78us; 79us; 80us; 49us; 63us; 64us; 65us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 2us; 63us; 64us; 1us; 63us; 1us; 66us; 1us; 67us; 4us; 68us; 69us; 70us; 71us; 1us; 68us; 2us; 69us; 71us; 1us; 69us; 1us; 72us; 2us; 72us; 89us; 2us; 72us; 94us; 1us; 72us; 1us; 72us; 1us; 73us; 1us; 74us; 6us; 75us; 76us; 77us; 78us; 79us; 80us; 6us; 75us; 76us; 77us; 78us; 79us; 80us; 1us; 75us; 3us; 75us; 491us; 492us; 1us; 76us; 5us; 76us; 493us; 494us; 495us; 496us; 1us; 77us; 1us; 78us; 1us; 78us; 1us; 78us; 1us; 79us; 1us; 80us; 1us; 80us; 1us; 80us; 2us; 81us; 111us; 1us; 81us; 1us; 82us; 3us; 83us; 108us; 109us; 3us; 83us; 901us; 902us; 1us; 83us; 3us; 84us; 901us; 902us; 5us; 85us; 86us; 87us; 88us; 89us; 2us; 85us; 86us; 1us; 85us; 1us; 86us; 2us; 87us; 88us; 1us; 87us; 1us; 88us; 1us; 89us; 1us; 90us; 3us; 91us; 901us; 902us; 3us; 92us; 93us; 94us; 2us; 92us; 93us; 1us; 92us; 1us; 93us; 1us; 94us; 1us; 96us; 1us; 96us; 1us; 96us; 1us; 97us; 1us; 98us; 5us; 99us; 100us; 101us; 102us; 104us; 5us; 99us; 100us; 101us; 102us; 104us; 2us; 99us; 100us; 2us; 99us; 100us; 1us; 99us; 1us; 100us; 1us; 101us; 1us; 102us; 1us; 103us; 3us; 103us; 901us; 902us; 1us; 104us; 1us; 104us; 1us; 104us; 1us; 104us; 1us; 104us; 1us; 104us; 1us; 104us; 1us; 104us; 1us; 104us; 1us; 104us; 2us; 106us; 107us; 47us; 106us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 1us; 107us; 47us; 107us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 1us; 107us; 1us; 108us; 1us; 108us; 1us; 109us; 1us; 109us; 1us; 109us; 1us; 109us; 1us; 110us; 1us; 110us; 1us; 110us; 1us; 111us; 2us; 113us; 114us; 1us; 114us; 4us; 115us; 116us; 117us; 118us; 3us; 115us; 117us; 120us; 2us; 115us; 117us; 1us; 115us; 1us; 115us; 2us; 116us; 489us; 1us; 116us; 1us; 116us; 1us; 117us; 1us; 118us; 1us; 119us; 2us; 120us; 974us; 1us; 120us; 3us; 121us; 901us; 902us; 1us; 121us; 1us; 121us; 2us; 122us; 123us; 3us; 122us; 901us; 902us; 1us; 122us; 1us; 122us; 1us; 123us; 3us; 123us; 901us; 902us; 1us; 123us; 1us; 123us; 1us; 123us; 1us; 124us; 1us; 124us; 1us; 125us; 1us; 125us; 2us; 126us; 900us; 1us; 126us; 1us; 127us; 1us; 127us; 1us; 128us; 1us; 128us; 2us; 129us; 130us; 1us; 129us; 1us; 129us; 2us; 131us; 132us; 1us; 131us; 1us; 131us; 1us; 132us; 3us; 133us; 142us; 143us; 1us; 133us; 1us; 133us; 1us; 133us; 1us; 133us; 1us; 133us; 1us; 133us; 1us; 134us; 1us; 134us; 1us; 135us; 1us; 136us; 1us; 137us; 1us; 137us; 1us; 137us; 1us; 138us; 3us; 139us; 140us; 141us; 2us; 139us; 140us; 1us; 139us; 1us; 140us; 1us; 141us; 1us; 141us; 2us; 142us; 143us; 2us; 142us; 143us; 1us; 142us; 1us; 143us; 2us; 144us; 145us; 2us; 144us; 145us; 1us; 144us; 1us; 145us; 2us; 146us; 147us; 2us; 146us; 147us; 1us; 146us; 1us; 147us; 1us; 148us; 1us; 149us; 1us; 151us; 1us; 151us; 1us; 151us; 3us; 152us; 169us; 170us; 4us; 152us; 209us; 215us; 218us; 1us; 152us; 1us; 153us; 1us; 154us; 1us; 155us; 1us; 156us; 2us; 157us; 158us; 1us; 158us; 1us; 160us; 1us; 160us; 2us; 161us; 162us; 2us; 161us; 162us; 1us; 161us; 1us; 162us; 2us; 163us; 164us; 1us; 164us; 1us; 164us; 7us; 165us; 166us; 167us; 168us; 169us; 170us; 171us; 12us; 165us; 166us; 167us; 168us; 169us; 170us; 171us; 260us; 261us; 262us; 263us; 264us; 7us; 165us; 166us; 167us; 168us; 169us; 170us; 171us; 12us; 165us; 166us; 167us; 168us; 169us; 170us; 171us; 260us; 261us; 262us; 263us; 264us; 1us; 165us; 1us; 165us; 1us; 165us; 1us; 165us; 1us; 165us; 1us; 165us; 1us; 165us; 1us; 165us; 1us; 165us; 1us; 166us; 4us; 166us; 822us; 823us; 824us; 1us; 167us; 4us; 167us; 822us; 823us; 824us; 1us; 168us; 1us; 168us; 1us; 169us; 1us; 169us; 1us; 170us; 1us; 170us; 1us; 171us; 1us; 171us; 1us; 171us; 1us; 172us; 1us; 172us; 1us; 172us; 1us; 173us; 1us; 173us; 1us; 173us; 4us; 175us; 176us; 177us; 178us; 1us; 176us; 1us; 176us; 1us; 177us; 1us; 178us; 1us; 178us; 1us; 178us; 1us; 178us; 1us; 178us; 1us; 178us; 1us; 178us; 4us; 179us; 180us; 189us; 190us; 2us; 179us; 180us; 2us; 179us; 180us; 2us; 179us; 180us; 2us; 179us; 180us; 1us; 179us; 1us; 179us; 1us; 180us; 1us; 181us; 1us; 181us; 1us; 182us; 1us; 183us; 1us; 184us; 1us; 184us; 1us; 184us; 1us; 185us; 3us; 186us; 187us; 188us; 2us; 186us; 187us; 1us; 186us; 1us; 187us; 2us; 188us; 195us; 1us; 188us; 2us; 189us; 190us; 2us; 189us; 190us; 1us; 189us; 1us; 190us; 2us; 191us; 192us; 2us; 191us; 192us; 1us; 191us; 1us; 192us; 1us; 193us; 1us; 194us; 1us; 195us; 1us; 195us; 1us; 197us; 1us; 197us; 1us; 197us; 1us; 198us; 1us; 198us; 2us; 199us; 200us; 2us; 199us; 200us; 1us; 199us; 1us; 200us; 2us; 201us; 202us; 1us; 202us; 1us; 202us; 1us; 203us; 1us; 203us; 1us; 203us; 1us; 203us; 1us; 203us; 1us; 203us; 2us; 204us; 205us; 2us; 204us; 205us; 2us; 204us; 205us; 1us; 204us; 1us; 204us; 1us; 205us; 2us; 206us; 207us; 1us; 207us; 11us; 208us; 209us; 210us; 211us; 212us; 213us; 214us; 215us; 216us; 217us; 218us; 16us; 208us; 209us; 210us; 211us; 212us; 213us; 214us; 215us; 216us; 217us; 218us; 260us; 261us; 262us; 263us; 264us; 11us; 208us; 209us; 210us; 211us; 212us; 213us; 214us; 215us; 216us; 217us; 218us; 16us; 208us; 209us; 210us; 211us; 212us; 213us; 214us; 215us; 216us; 217us; 218us; 260us; 261us; 262us; 263us; 264us; 1us; 208us; 1us; 209us; 2us; 210us; 216us; 1us; 210us; 1us; 210us; 1us; 211us; 4us; 211us; 822us; 823us; 824us; 1us; 211us; 1us; 212us; 1us; 212us; 1us; 212us; 1us; 212us; 1us; 212us; 1us; 212us; 1us; 212us; 1us; 212us; 1us; 213us; 1us; 214us; 1us; 214us; 1us; 215us; 1us; 215us; 1us; 216us; 1us; 216us; 1us; 217us; 1us; 217us; 1us; 217us; 1us; 217us; 1us; 217us; 1us; 217us; 1us; 218us; 1us; 218us; 1us; 219us; 1us; 219us; 1us; 219us; 1us; 219us; 1us; 219us; 1us; 219us; 1us; 220us; 1us; 220us; 1us; 220us; 1us; 220us; 1us; 220us; 1us; 220us; 1us; 220us; 1us; 220us; 1us; 222us; 1us; 222us; 1us; 223us; 1us; 223us; 1us; 223us; 1us; 224us; 1us; 225us; 1us; 225us; 1us; 227us; 1us; 228us; 1us; 229us; 1us; 230us; 1us; 231us; 1us; 233us; 1us; 233us; 1us; 233us; 1us; 235us; 1us; 235us; 1us; 235us; 1us; 237us; 1us; 237us; 1us; 237us; 3us; 239us; 240us; 241us; 2us; 239us; 240us; 1us; 239us; 1us; 240us; 1us; 240us; 1us; 240us; 1us; 241us; 1us; 242us; 1us; 244us; 1us; 244us; 1us; 245us; 2us; 247us; 248us; 1us; 247us; 1us; 248us; 2us; 249us; 250us; 2us; 249us; 250us; 1us; 249us; 1us; 250us; 1us; 251us; 2us; 252us; 253us; 2us; 252us; 253us; 1us; 252us; 4us; 254us; 255us; 256us; 257us; 5us; 254us; 255us; 256us; 257us; 370us; 3us; 254us; 255us; 256us; 1us; 254us; 1us; 254us; 1us; 255us; 1us; 255us; 1us; 256us; 1us; 257us; 1us; 257us; 1us; 257us; 1us; 258us; 1us; 259us; 5us; 260us; 261us; 262us; 263us; 264us; 5us; 260us; 261us; 262us; 263us; 264us; 4us; 260us; 818us; 901us; 902us; 1us; 260us; 1us; 260us; 1us; 260us; 1us; 261us; 1us; 262us; 1us; 263us; 5us; 264us; 825us; 853us; 854us; 860us; 1us; 264us; 1us; 264us; 3us; 265us; 266us; 267us; 2us; 265us; 266us; 1us; 265us; 1us; 266us; 1us; 267us; 1us; 267us; 2us; 268us; 850us; 2us; 268us; 401us; 1us; 268us; 1us; 269us; 1us; 270us; 1us; 271us; 1us; 272us; 1us; 273us; 3us; 274us; 275us; 276us; 4us; 274us; 276us; 901us; 902us; 1us; 275us; 3us; 275us; 901us; 902us; 1us; 276us; 1us; 277us; 1us; 278us; 2us; 278us; 279us; 1us; 278us; 2us; 279us; 282us; 3us; 279us; 283us; 284us; 1us; 279us; 2us; 279us; 283us; 1us; 279us; 1us; 280us; 1us; 281us; 1us; 281us; 1us; 282us; 1us; 282us; 1us; 282us; 1us; 282us; 1us; 283us; 1us; 286us; 1us; 286us; 1us; 286us; 1us; 286us; 1us; 286us; 1us; 287us; 2us; 289us; 427us; 1us; 292us; 2us; 292us; 293us; 2us; 293us; 790us; 2us; 293us; 792us; 1us; 293us; 1us; 293us; 1us; 294us; 1us; 295us; 1us; 295us; 1us; 295us; 1us; 295us; 8us; 296us; 297us; 298us; 299us; 300us; 302us; 303us; 304us; 1us; 296us; 1us; 296us; 7us; 297us; 298us; 299us; 300us; 302us; 303us; 304us; 1us; 297us; 3us; 298us; 303us; 304us; 1us; 298us; 1us; 299us; 1us; 300us; 1us; 300us; 1us; 300us; 1us; 301us; 2us; 301us; 305us; 1us; 301us; 1us; 301us; 1us; 301us; 1us; 301us; 1us; 301us; 1us; 302us; 1us; 302us; 1us; 303us; 1us; 305us; 1us; 305us; 1us; 306us; 1us; 307us; 1us; 307us; 1us; 308us; 1us; 308us; 1us; 308us; 2us; 309us; 322us; 1us; 310us; 2us; 311us; 312us; 1us; 311us; 1us; 311us; 4us; 313us; 314us; 315us; 316us; 4us; 313us; 314us; 315us; 316us; 4us; 313us; 314us; 315us; 316us; 1us; 313us; 1us; 314us; 1us; 314us; 1us; 314us; 1us; 315us; 1us; 315us; 1us; 315us; 1us; 316us; 1us; 316us; 1us; 316us; 1us; 317us; 6us; 318us; 319us; 903us; 904us; 906us; 907us; 1us; 318us; 1us; 318us; 1us; 319us; 1us; 319us; 1us; 319us; 5us; 320us; 321us; 323us; 324us; 900us; 1us; 320us; 2us; 321us; 324us; 2us; 321us; 324us; 2us; 321us; 324us; 1us; 322us; 1us; 323us; 1us; 323us; 1us; 325us; 5us; 326us; 327us; 822us; 823us; 824us; 1us; 326us; 1us; 326us; 2us; 328us; 329us; 2us; 328us; 974us; 1us; 328us; 1us; 329us; 1us; 330us; 1us; 330us; 1us; 331us; 1us; 331us; 1us; 331us; 1us; 331us; 1us; 331us; 1us; 332us; 1us; 332us; 1us; 333us; 1us; 333us; 1us; 334us; 1us; 335us; 1us; 335us; 1us; 335us; 1us; 335us; 1us; 335us; 2us; 336us; 337us; 1us; 337us; 1us; 337us; 1us; 339us; 3us; 339us; 901us; 902us; 1us; 340us; 3us; 340us; 901us; 902us; 1us; 341us; 1us; 341us; 1us; 341us; 1us; 342us; 1us; 343us; 1us; 343us; 1us; 344us; 1us; 344us; 1us; 344us; 1us; 344us; 1us; 345us; 1us; 345us; 1us; 345us; 1us; 346us; 1us; 347us; 1us; 348us; 1us; 349us; 1us; 350us; 1us; 351us; 1us; 352us; 1us; 352us; 1us; 352us; 1us; 352us; 1us; 352us; 1us; 352us; 1us; 352us; 1us; 352us; 2us; 353us; 356us; 2us; 354us; 357us; 1us; 356us; 1us; 356us; 1us; 357us; 1us; 357us; 2us; 358us; 359us; 5us; 358us; 359us; 361us; 362us; 363us; 1us; 359us; 3us; 360us; 901us; 902us; 4us; 361us; 362us; 363us; 365us; 1us; 361us; 1us; 361us; 1us; 361us; 1us; 362us; 1us; 363us; 1us; 364us; 2us; 364us; 366us; 1us; 364us; 2us; 365us; 366us; 1us; 367us; 1us; 367us; 1us; 368us; 1us; 368us; 1us; 368us; 1us; 370us; 1us; 370us; 1us; 371us; 3us; 372us; 373us; 374us; 3us; 372us; 373us; 374us; 3us; 372us; 373us; 374us; 3us; 372us; 373us; 374us; 2us; 372us; 373us; 1us; 372us; 1us; 373us; 1us; 374us; 2us; 375us; 376us; 2us; 375us; 376us; 1us; 375us; 1us; 376us; 1us; 377us; 1us; 378us; 2us; 378us; 379us; 1us; 379us; 1us; 381us; 2us; 381us; 382us; 1us; 381us; 1us; 381us; 1us; 382us; 1us; 382us; 1us; 383us; 2us; 384us; 385us; 1us; 384us; 1us; 384us; 1us; 385us; 1us; 386us; 1us; 387us; 1us; 388us; 1us; 389us; 1us; 390us; 1us; 391us; 1us; 392us; 1us; 393us; 1us; 394us; 1us; 395us; 1us; 396us; 1us; 397us; 1us; 398us; 2us; 398us; 438us; 1us; 399us; 1us; 400us; 1us; 401us; 1us; 402us; 2us; 403us; 404us; 1us; 404us; 1us; 404us; 6us; 405us; 417us; 418us; 419us; 424us; 426us; 1us; 406us; 1us; 407us; 1us; 407us; 2us; 408us; 409us; 3us; 408us; 410us; 411us; 1us; 408us; 1us; 408us; 1us; 409us; 1us; 411us; 1us; 411us; 5us; 412us; 413us; 414us; 415us; 416us; 2us; 412us; 414us; 1us; 412us; 1us; 413us; 1us; 414us; 2us; 415us; 489us; 1us; 415us; 1us; 416us; 6us; 417us; 418us; 418us; 419us; 424us; 426us; 6us; 417us; 418us; 419us; 419us; 424us; 426us; 6us; 417us; 418us; 419us; 423us; 424us; 426us; 6us; 417us; 418us; 419us; 424us; 424us; 426us; 6us; 417us; 418us; 419us; 424us; 425us; 426us; 6us; 417us; 418us; 419us; 424us; 426us; 426us; 6us; 417us; 418us; 419us; 424us; 426us; 536us; 7us; 417us; 418us; 419us; 424us; 426us; 537us; 538us; 1us; 417us; 1us; 417us; 1us; 418us; 1us; 419us; 2us; 420us; 423us; 2us; 421us; 425us; 1us; 422us; 1us; 423us; 1us; 424us; 1us; 425us; 1us; 426us; 5us; 427us; 428us; 429us; 430us; 444us; 3us; 428us; 429us; 430us; 1us; 428us; 1us; 429us; 1us; 429us; 1us; 430us; 1us; 430us; 1us; 431us; 3us; 431us; 862us; 863us; 1us; 432us; 4us; 433us; 434us; 435us; 436us; 1us; 433us; 1us; 434us; 1us; 434us; 1us; 435us; 1us; 435us; 1us; 437us; 1us; 438us; 1us; 438us; 1us; 439us; 1us; 439us; 1us; 439us; 1us; 440us; 1us; 440us; 1us; 440us; 1us; 441us; 1us; 441us; 1us; 441us; 1us; 442us; 1us; 443us; 2us; 443us; 924us; 1us; 443us; 1us; 444us; 1us; 445us; 1us; 446us; 1us; 447us; 1us; 448us; 8us; 449us; 450us; 451us; 452us; 903us; 904us; 906us; 907us; 2us; 449us; 450us; 1us; 449us; 1us; 450us; 3us; 451us; 489us; 904us; 2us; 451us; 904us; 1us; 452us; 7us; 453us; 455us; 456us; 459us; 461us; 464us; 466us; 7us; 455us; 456us; 456us; 459us; 461us; 464us; 466us; 7us; 455us; 456us; 459us; 460us; 461us; 464us; 466us; 7us; 455us; 456us; 459us; 461us; 461us; 464us; 466us; 7us; 455us; 456us; 459us; 461us; 463us; 464us; 466us; 7us; 455us; 456us; 459us; 461us; 464us; 464us; 466us; 7us; 455us; 456us; 459us; 461us; 464us; 465us; 466us; 7us; 455us; 456us; 459us; 461us; 464us; 466us; 466us; 7us; 455us; 456us; 459us; 461us; 464us; 466us; 470us; 8us; 455us; 456us; 459us; 461us; 464us; 466us; 472us; 473us; 13us; 455us; 456us; 459us; 461us; 464us; 466us; 532us; 533us; 723us; 724us; 725us; 726us; 727us; 7us; 455us; 456us; 459us; 461us; 464us; 466us; 599us; 1us; 455us; 1us; 455us; 1us; 456us; 2us; 457us; 463us; 2us; 458us; 465us; 1us; 459us; 1us; 459us; 1us; 460us; 1us; 461us; 1us; 462us; 1us; 463us; 1us; 464us; 1us; 465us; 1us; 466us; 1us; 467us; 2us; 468us; 469us; 1us; 468us; 2us; 469us; 974us; 1us; 469us; 3us; 470us; 901us; 902us; 1us; 470us; 1us; 472us; 2us; 473us; 974us; 1us; 473us; 2us; 474us; 475us; 2us; 474us; 475us; 1us; 474us; 1us; 475us; 1us; 476us; 1us; 477us; 1us; 477us; 1us; 477us; 47us; 478us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 2us; 479us; 480us; 1us; 479us; 2us; 481us; 482us; 1us; 481us; 1us; 481us; 51us; 483us; 484us; 485us; 486us; 487us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 53us; 483us; 484us; 485us; 486us; 487us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 666us; 667us; 54us; 483us; 484us; 485us; 486us; 487us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 719us; 720us; 721us; 2us; 483us; 484us; 1us; 483us; 1us; 486us; 1us; 486us; 1us; 487us; 1us; 487us; 1us; 487us; 1us; 487us; 5us; 488us; 493us; 494us; 495us; 496us; 1us; 489us; 2us; 489us; 519us; 2us; 489us; 522us; 2us; 489us; 527us; 2us; 489us; 530us; 2us; 489us; 532us; 2us; 489us; 650us; 2us; 489us; 660us; 2us; 489us; 685us; 2us; 489us; 689us; 2us; 489us; 694us; 3us; 489us; 694us; 904us; 2us; 489us; 709us; 1us; 490us; 2us; 491us; 492us; 2us; 491us; 492us; 1us; 491us; 1us; 492us; 4us; 493us; 494us; 495us; 496us; 1us; 493us; 1us; 494us; 2us; 495us; 496us; 1us; 495us; 1us; 496us; 1us; 497us; 1us; 498us; 1us; 499us; 2us; 500us; 501us; 2us; 500us; 501us; 1us; 500us; 1us; 501us; 3us; 502us; 503us; 504us; 3us; 502us; 503us; 504us; 1us; 502us; 1us; 503us; 1us; 504us; 1us; 504us; 3us; 505us; 506us; 507us; 48us; 505us; 506us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 1us; 505us; 1us; 506us; 1us; 507us; 1us; 508us; 47us; 508us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 2us; 509us; 510us; 47us; 509us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 1us; 511us; 1us; 511us; 2us; 512us; 513us; 1us; 512us; 6us; 514us; 515us; 516us; 517us; 518us; 519us; 50us; 514us; 515us; 516us; 517us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 3us; 514us; 515us; 516us; 2us; 514us; 515us; 1us; 514us; 1us; 515us; 1us; 516us; 1us; 516us; 1us; 517us; 1us; 518us; 1us; 519us; 15us; 520us; 521us; 522us; 523us; 524us; 525us; 526us; 527us; 528us; 529us; 530us; 531us; 532us; 533us; 541us; 6us; 520us; 521us; 522us; 523us; 524us; 541us; 4us; 520us; 521us; 522us; 523us; 2us; 520us; 521us; 1us; 520us; 1us; 521us; 1us; 522us; 1us; 523us; 1us; 524us; 5us; 525us; 526us; 527us; 528us; 529us; 4us; 525us; 526us; 527us; 528us; 2us; 525us; 526us; 1us; 525us; 1us; 526us; 1us; 527us; 1us; 528us; 1us; 529us; 1us; 530us; 1us; 530us; 1us; 530us; 1us; 531us; 1us; 532us; 2us; 533us; 1025us; 1us; 534us; 47us; 534us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 1us; 535us; 47us; 535us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 1us; 536us; 1us; 536us; 1us; 536us; 1us; 536us; 1us; 536us; 1us; 536us; 2us; 537us; 538us; 2us; 537us; 538us; 2us; 537us; 538us; 2us; 537us; 538us; 2us; 537us; 538us; 1us; 537us; 1us; 538us; 1us; 539us; 1us; 539us; 1us; 539us; 1us; 539us; 1us; 539us; 1us; 540us; 1us; 540us; 1us; 540us; 1us; 541us; 1us; 541us; 1us; 542us; 1us; 542us; 47us; 543us; 544us; 545us; 546us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 605us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 609us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 613us; 620us; 621us; 48us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 616us; 617us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 618us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 621us; 48us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 666us; 667us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 666us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 668us; 50us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 719us; 720us; 721us; 723us; 48us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 719us; 720us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 720us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 727us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 727us; 1us; 543us; 1us; 543us; 1us; 544us; 1us; 544us; 1us; 545us; 1us; 545us; 1us; 546us; 2us; 547us; 589us; 1us; 547us; 1us; 547us; 3us; 548us; 618us; 619us; 2us; 549us; 569us; 2us; 550us; 570us; 2us; 551us; 571us; 2us; 552us; 572us; 2us; 553us; 573us; 2us; 554us; 574us; 2us; 555us; 575us; 2us; 556us; 576us; 2us; 557us; 577us; 2us; 558us; 578us; 2us; 559us; 579us; 2us; 560us; 580us; 2us; 561us; 581us; 2us; 562us; 582us; 2us; 563us; 583us; 2us; 564us; 584us; 2us; 565us; 585us; 2us; 566us; 586us; 2us; 567us; 587us; 2us; 568us; 588us; 1us; 569us; 1us; 570us; 1us; 571us; 1us; 572us; 1us; 573us; 1us; 574us; 1us; 575us; 1us; 576us; 1us; 577us; 1us; 578us; 1us; 579us; 1us; 580us; 1us; 581us; 1us; 582us; 1us; 583us; 1us; 584us; 1us; 585us; 1us; 586us; 1us; 587us; 1us; 588us; 1us; 590us; 1us; 591us; 1us; 591us; 1us; 591us; 1us; 592us; 1us; 592us; 2us; 593us; 594us; 2us; 593us; 594us; 1us; 593us; 1us; 594us; 1us; 595us; 2us; 596us; 597us; 1us; 596us; 1us; 597us; 1us; 598us; 1us; 599us; 5us; 600us; 601us; 602us; 603us; 604us; 4us; 600us; 601us; 602us; 603us; 2us; 601us; 602us; 1us; 601us; 1us; 602us; 1us; 603us; 1us; 604us; 1us; 605us; 1us; 607us; 1us; 607us; 1us; 608us; 1us; 608us; 1us; 609us; 2us; 610us; 611us; 2us; 610us; 611us; 2us; 610us; 611us; 1us; 610us; 1us; 611us; 1us; 613us; 2us; 614us; 615us; 2us; 614us; 615us; 2us; 614us; 615us; 1us; 614us; 1us; 615us; 2us; 616us; 617us; 1us; 616us; 1us; 617us; 2us; 618us; 619us; 1us; 619us; 2us; 620us; 621us; 1us; 620us; 1us; 622us; 2us; 622us; 918us; 1us; 622us; 1us; 623us; 2us; 623us; 914us; 1us; 623us; 1us; 624us; 2us; 624us; 917us; 1us; 624us; 1us; 625us; 2us; 625us; 930us; 1us; 625us; 1us; 626us; 2us; 626us; 925us; 1us; 626us; 1us; 627us; 2us; 627us; 926us; 1us; 627us; 3us; 628us; 629us; 630us; 7us; 628us; 629us; 630us; 763us; 764us; 765us; 766us; 2us; 628us; 629us; 6us; 628us; 629us; 763us; 764us; 765us; 766us; 2us; 628us; 629us; 4us; 628us; 629us; 764us; 765us; 1us; 628us; 3us; 628us; 764us; 765us; 1us; 629us; 1us; 630us; 1us; 631us; 1us; 631us; 1us; 632us; 1us; 632us; 2us; 633us; 634us; 6us; 633us; 634us; 739us; 743us; 744us; 745us; 1us; 634us; 6us; 635us; 638us; 639us; 640us; 642us; 645us; 1us; 636us; 6us; 636us; 638us; 639us; 640us; 642us; 645us; 6us; 637us; 638us; 639us; 640us; 642us; 645us; 6us; 638us; 638us; 639us; 640us; 642us; 645us; 6us; 638us; 639us; 639us; 640us; 642us; 645us; 6us; 638us; 639us; 640us; 641us; 642us; 645us; 6us; 638us; 639us; 640us; 642us; 645us; 857us; 1us; 638us; 1us; 639us; 1us; 640us; 1us; 640us; 1us; 641us; 2us; 641us; 908us; 1us; 642us; 1us; 642us; 1us; 643us; 1us; 643us; 1us; 643us; 1us; 644us; 2us; 644us; 924us; 1us; 644us; 1us; 645us; 1us; 645us; 1us; 646us; 1us; 647us; 4us; 648us; 649us; 650us; 651us; 2us; 648us; 649us; 1us; 648us; 1us; 649us; 1us; 650us; 1us; 651us; 1us; 652us; 1us; 653us; 1us; 655us; 6us; 656us; 657us; 903us; 904us; 906us; 907us; 1us; 656us; 1us; 656us; 1us; 656us; 1us; 656us; 1us; 657us; 1us; 657us; 8us; 658us; 659us; 660us; 661us; 662us; 663us; 664us; 665us; 2us; 658us; 659us; 1us; 658us; 1us; 659us; 1us; 660us; 1us; 661us; 4us; 662us; 663us; 664us; 665us; 1us; 662us; 3us; 663us; 664us; 665us; 3us; 663us; 664us; 665us; 1us; 663us; 2us; 664us; 665us; 2us; 664us; 665us; 1us; 664us; 1us; 665us; 1us; 665us; 1us; 665us; 2us; 666us; 667us; 1us; 668us; 1us; 669us; 1us; 670us; 1us; 671us; 1us; 672us; 1us; 673us; 1us; 674us; 1us; 675us; 1us; 676us; 1us; 677us; 1us; 678us; 4us; 679us; 680us; 681us; 682us; 2us; 679us; 680us; 1us; 679us; 1us; 680us; 1us; 681us; 1us; 681us; 1us; 682us; 4us; 683us; 684us; 685us; 686us; 5us; 683us; 684us; 685us; 686us; 933us; 2us; 683us; 684us; 1us; 683us; 1us; 684us; 1us; 685us; 1us; 686us; 4us; 687us; 688us; 689us; 690us; 2us; 687us; 688us; 1us; 687us; 1us; 688us; 1us; 689us; 1us; 690us; 9us; 691us; 692us; 693us; 694us; 695us; 696us; 697us; 698us; 699us; 14us; 691us; 692us; 693us; 694us; 695us; 696us; 697us; 698us; 699us; 704us; 903us; 904us; 906us; 907us; 13us; 691us; 692us; 693us; 694us; 695us; 696us; 697us; 698us; 699us; 903us; 904us; 906us; 907us; 1us; 691us; 2us; 692us; 693us; 1us; 692us; 1us; 693us; 1us; 694us; 2us; 694us; 904us; 1us; 695us; 1us; 696us; 1us; 697us; 1us; 698us; 1us; 699us; 1us; 700us; 1us; 700us; 1us; 700us; 1us; 700us; 1us; 700us; 1us; 700us; 1us; 701us; 1us; 702us; 1us; 703us; 2us; 703us; 706us; 2us; 704us; 705us; 1us; 704us; 1us; 705us; 1us; 705us; 5us; 707us; 708us; 709us; 710us; 711us; 2us; 707us; 708us; 1us; 707us; 1us; 708us; 1us; 709us; 1us; 710us; 1us; 711us; 1us; 712us; 1us; 713us; 1us; 714us; 1us; 715us; 1us; 717us; 1us; 718us; 3us; 719us; 720us; 721us; 1us; 720us; 1us; 721us; 1us; 722us; 1us; 722us; 3us; 723us; 724us; 725us; 1us; 724us; 1us; 725us; 1us; 726us; 1us; 727us; 1us; 727us; 1us; 728us; 1us; 728us; 1us; 728us; 2us; 728us; 729us; 1us; 728us; 1us; 728us; 1us; 729us; 1us; 732us; 1us; 734us; 1us; 734us; 1us; 734us; 1us; 734us; 2us; 736us; 737us; 1us; 736us; 5us; 737us; 825us; 853us; 854us; 860us; 1us; 737us; 1us; 738us; 1us; 738us; 1us; 738us; 1us; 738us; 2us; 738us; 754us; 1us; 738us; 1us; 739us; 1us; 739us; 2us; 739us; 754us; 1us; 739us; 3us; 740us; 741us; 742us; 2us; 741us; 742us; 1us; 742us; 2us; 742us; 754us; 1us; 742us; 1us; 743us; 1us; 743us; 2us; 743us; 754us; 1us; 743us; 2us; 744us; 745us; 1us; 744us; 1us; 744us; 1us; 745us; 2us; 745us; 754us; 1us; 745us; 1us; 745us; 1us; 746us; 2us; 746us; 754us; 2us; 748us; 751us; 2us; 749us; 750us; 1us; 750us; 1us; 751us; 3us; 752us; 901us; 902us; 1us; 753us; 1us; 754us; 5us; 756us; 757us; 758us; 759us; 760us; 3us; 756us; 757us; 758us; 1us; 756us; 1us; 758us; 1us; 760us; 2us; 761us; 762us; 1us; 761us; 1us; 761us; 1us; 761us; 1us; 762us; 1us; 762us; 1us; 764us; 1us; 767us; 2us; 769us; 771us; 1us; 769us; 1us; 770us; 1us; 770us; 1us; 770us; 1us; 771us; 1us; 771us; 1us; 772us; 1us; 772us; 1us; 774us; 1us; 774us; 1us; 775us; 1us; 775us; 1us; 776us; 4us; 776us; 822us; 823us; 824us; 1us; 776us; 1us; 776us; 1us; 776us; 1us; 777us; 1us; 778us; 2us; 779us; 780us; 2us; 779us; 780us; 2us; 779us; 780us; 1us; 779us; 1us; 780us; 6us; 781us; 782us; 783us; 784us; 785us; 786us; 5us; 781us; 782us; 783us; 784us; 785us; 4us; 781us; 782us; 783us; 784us; 2us; 781us; 782us; 1us; 781us; 1us; 782us; 1us; 783us; 1us; 783us; 1us; 784us; 1us; 785us; 1us; 785us; 1us; 786us; 1us; 786us; 1us; 787us; 1us; 787us; 1us; 788us; 1us; 788us; 1us; 788us; 2us; 789us; 790us; 1us; 790us; 2us; 791us; 792us; 1us; 792us; 1us; 794us; 1us; 794us; 2us; 795us; 796us; 1us; 795us; 1us; 795us; 2us; 797us; 798us; 1us; 797us; 1us; 797us; 2us; 799us; 800us; 1us; 799us; 1us; 799us; 3us; 801us; 802us; 803us; 5us; 801us; 803us; 822us; 823us; 824us; 1us; 801us; 4us; 801us; 822us; 823us; 824us; 1us; 802us; 1us; 802us; 1us; 802us; 4us; 802us; 822us; 823us; 824us; 5us; 804us; 806us; 822us; 823us; 824us; 1us; 804us; 4us; 804us; 822us; 823us; 824us; 1us; 805us; 1us; 805us; 1us; 805us; 4us; 805us; 822us; 823us; 824us; 2us; 807us; 808us; 1us; 807us; 1us; 807us; 6us; 809us; 811us; 812us; 822us; 823us; 824us; 1us; 809us; 1us; 809us; 1us; 810us; 1us; 810us; 1us; 811us; 1us; 811us; 6us; 813us; 814us; 815us; 822us; 823us; 824us; 1us; 813us; 1us; 813us; 1us; 814us; 1us; 814us; 5us; 816us; 817us; 822us; 823us; 824us; 1us; 816us; 1us; 816us; 3us; 818us; 901us; 902us; 1us; 819us; 2us; 819us; 827us; 3us; 819us; 827us; 845us; 2us; 820us; 821us; 4us; 820us; 821us; 861us; 864us; 1us; 820us; 1us; 820us; 6us; 822us; 823us; 824us; 840us; 841us; 842us; 1us; 822us; 2us; 822us; 840us; 1us; 823us; 2us; 823us; 841us; 1us; 823us; 2us; 823us; 841us; 1us; 824us; 2us; 824us; 842us; 5us; 825us; 843us; 853us; 854us; 860us; 4us; 825us; 853us; 854us; 860us; 1us; 825us; 2us; 825us; 843us; 1us; 825us; 2us; 825us; 843us; 1us; 825us; 2us; 825us; 843us; 1us; 826us; 1us; 827us; 2us; 827us; 845us; 1us; 827us; 2us; 827us; 845us; 3us; 828us; 846us; 852us; 2us; 828us; 852us; 1us; 828us; 2us; 828us; 846us; 1us; 828us; 2us; 828us; 846us; 4us; 829us; 830us; 831us; 832us; 1us; 829us; 3us; 830us; 831us; 832us; 1us; 830us; 2us; 831us; 832us; 1us; 831us; 1us; 832us; 1us; 832us; 1us; 833us; 1us; 833us; 1us; 833us; 3us; 833us; 834us; 835us; 4us; 834us; 835us; 867us; 868us; 2us; 834us; 835us; 1us; 834us; 1us; 835us; 8us; 837us; 838us; 839us; 847us; 848us; 849us; 862us; 863us; 5us; 837us; 838us; 839us; 862us; 863us; 2us; 838us; 839us; 4us; 838us; 839us; 848us; 849us; 1us; 838us; 2us; 838us; 848us; 1us; 839us; 2us; 839us; 849us; 1us; 839us; 2us; 839us; 849us; 1us; 844us; 1us; 850us; 3us; 850us; 862us; 863us; 1us; 851us; 1us; 852us; 3us; 853us; 854us; 860us; 2us; 853us; 854us; 5us; 853us; 854us; 874us; 875us; 876us; 1us; 853us; 1us; 854us; 1us; 855us; 1us; 856us; 1us; 857us; 1us; 858us; 1us; 859us; 1us; 860us; 1us; 860us; 1us; 861us; 2us; 862us; 863us; 4us; 862us; 863us; 901us; 902us; 1us; 863us; 1us; 864us; 1us; 864us; 1us; 865us; 1us; 866us; 1us; 866us; 7us; 867us; 868us; 869us; 870us; 871us; 872us; 873us; 3us; 867us; 868us; 869us; 3us; 867us; 868us; 869us; 2us; 867us; 868us; 1us; 867us; 1us; 868us; 1us; 869us; 3us; 870us; 871us; 877us; 1us; 870us; 1us; 871us; 1us; 872us; 1us; 873us; 3us; 874us; 875us; 876us; 2us; 875us; 876us; 1us; 875us; 1us; 877us; 1us; 878us; 2us; 880us; 881us; 3us; 880us; 892us; 893us; 1us; 880us; 1us; 881us; 1us; 881us; 3us; 882us; 901us; 902us; 1us; 883us; 1us; 884us; 3us; 884us; 892us; 893us; 1us; 884us; 3us; 885us; 886us; 887us; 2us; 886us; 887us; 1us; 886us; 1us; 887us; 1us; 887us; 1us; 888us; 2us; 889us; 890us; 1us; 890us; 1us; 891us; 3us; 892us; 892us; 893us; 3us; 892us; 893us; 893us; 3us; 892us; 893us; 894us; 1us; 892us; 1us; 893us; 1us; 894us; 1us; 895us; 1us; 895us; 1us; 896us; 1us; 897us; 2us; 897us; 911us; 1us; 897us; 1us; 898us; 1us; 899us; 1us; 900us; 2us; 901us; 902us; 1us; 901us; 1us; 902us; 4us; 903us; 904us; 906us; 907us; 1us; 903us; 1us; 903us; 1us; 904us; 1us; 904us; 1us; 905us; 3us; 906us; 907us; 936us; 3us; 906us; 907us; 936us; 1us; 906us; 1us; 907us; 1us; 907us; 1us; 907us; 1us; 908us; 1us; 909us; 1us; 910us; 1us; 911us; 1us; 912us; 1us; 913us; 1us; 914us; 1us; 915us; 1us; 916us; 1us; 917us; 1us; 918us; 1us; 919us; 1us; 920us; 1us; 921us; 1us; 922us; 1us; 923us; 1us; 924us; 1us; 925us; 1us; 926us; 1us; 927us; 1us; 928us; 1us; 929us; 1us; 930us; 2us; 931us; 932us; 1us; 932us; 1us; 933us; 1us; 933us; 1us; 934us; 1us; 935us; 1us; 935us; 1us; 936us; 1us; 937us; 1us; 938us; 3us; 939us; 941us; 942us; 1us; 940us; 2us; 941us; 942us; 1us; 941us; 1us; 942us; 1us; 943us; 1us; 944us; 1us; 945us; 1us; 946us; 2us; 947us; 948us; 1us; 948us; 1us; 949us; 1us; 950us; 2us; 951us; 952us; 1us; 952us; 1us; 955us; 1us; 955us; 2us; 957us; 959us; 2us; 958us; 960us; 1us; 959us; 1us; 960us; 1us; 961us; 1us; 962us; 1us; 963us; 1us; 964us; 1us; 965us; 1us; 966us; 1us; 968us; 1us; 970us; 1us; 972us; 1us; 974us; 1us; 976us; 1us; 980us; 1us; 982us; 1us; 984us; 1us; 985us; 1us; 986us; 1us; 987us; 1us; 988us; 1us; 989us; 1us; 990us; 1us; 991us; 1us; 992us; 1us; 993us; 1us; 994us; 1us; 995us; 1us; 996us; 1us; 998us; 1us; 1000us; 2us; 1000us; 1020us; 1us; 1000us; 1us; 1001us; 1us; 1002us; 1us; 1003us; 2us; 1003us; 1021us; 1us; 1003us; 1us; 1004us; 1us; 1005us; 1us; 1006us; 1us; 1006us; 1us; 1007us; 1us; 1008us; 1us; 1009us; 1us; 1009us; 1us; 1010us; 1us; 1011us; 1us; 1012us; 1us; 1012us; 1us; 1013us; 1us; 1014us; 1us; 1015us; 1us; 1016us; 1us; 1017us; 1us; 1018us; 1us; 1019us; 1us; 1020us; 1us; 1021us; 1us; 1022us; 1us; 1023us; 1us; 1024us; 1us; 1025us; |] +let _fsyacc_stateToProdIdxsTableRowOffsets = [|0us; 2us; 4us; 6us; 8us; 10us; 12us; 14us; 16us; 18us; 20us; 22us; 25us; 27us; 29us; 31us; 33us; 35us; 37us; 39us; 42us; 44us; 47us; 49us; 52us; 54us; 56us; 58us; 60us; 62us; 64us; 66us; 69us; 71us; 79us; 87us; 135us; 137us; 140us; 142us; 144us; 146us; 150us; 152us; 155us; 157us; 159us; 161us; 164us; 166us; 168us; 170us; 174us; 176us; 180us; 183us; 185us; 188us; 190us; 192us; 194us; 196us; 199us; 201us; 204us; 206us; 208us; 210us; 212us; 219us; 226us; 230us; 232us; 234us; 246us; 257us; 260us; 262us; 264us; 266us; 270us; 273us; 275us; 277us; 279us; 283us; 285us; 287us; 290us; 293us; 296us; 298us; 300us; 302us; 304us; 308us; 311us; 313us; 315us; 317us; 320us; 322us; 324us; 326us; 337us; 347us; 397us; 400us; 402us; 404us; 406us; 411us; 413us; 416us; 418us; 420us; 423us; 426us; 428us; 430us; 432us; 434us; 441us; 448us; 450us; 454us; 456us; 462us; 464us; 466us; 468us; 470us; 472us; 474us; 476us; 478us; 481us; 483us; 485us; 489us; 493us; 495us; 499us; 505us; 508us; 510us; 512us; 515us; 517us; 519us; 521us; 523us; 527us; 531us; 534us; 536us; 538us; 540us; 542us; 544us; 546us; 548us; 550us; 556us; 562us; 565us; 568us; 570us; 572us; 574us; 576us; 578us; 582us; 584us; 586us; 588us; 590us; 592us; 594us; 596us; 598us; 600us; 602us; 605us; 653us; 655us; 703us; 705us; 707us; 709us; 711us; 713us; 715us; 717us; 719us; 721us; 723us; 725us; 728us; 730us; 735us; 739us; 742us; 744us; 746us; 749us; 751us; 753us; 755us; 757us; 759us; 762us; 764us; 768us; 770us; 772us; 775us; 779us; 781us; 783us; 785us; 789us; 791us; 793us; 795us; 797us; 799us; 801us; 803us; 806us; 808us; 810us; 812us; 814us; 816us; 819us; 821us; 823us; 826us; 828us; 830us; 832us; 836us; 838us; 840us; 842us; 844us; 846us; 848us; 850us; 852us; 854us; 856us; 858us; 860us; 862us; 864us; 868us; 871us; 873us; 875us; 877us; 879us; 882us; 885us; 887us; 889us; 892us; 895us; 897us; 899us; 902us; 905us; 907us; 909us; 911us; 913us; 915us; 917us; 919us; 923us; 928us; 930us; 932us; 934us; 936us; 938us; 941us; 943us; 945us; 947us; 950us; 953us; 955us; 957us; 960us; 962us; 964us; 972us; 985us; 993us; 1006us; 1008us; 1010us; 1012us; 1014us; 1016us; 1018us; 1020us; 1022us; 1024us; 1026us; 1031us; 1033us; 1038us; 1040us; 1042us; 1044us; 1046us; 1048us; 1050us; 1052us; 1054us; 1056us; 1058us; 1060us; 1062us; 1064us; 1066us; 1068us; 1073us; 1075us; 1077us; 1079us; 1081us; 1083us; 1085us; 1087us; 1089us; 1091us; 1093us; 1098us; 1101us; 1104us; 1107us; 1110us; 1112us; 1114us; 1116us; 1118us; 1120us; 1122us; 1124us; 1126us; 1128us; 1130us; 1132us; 1136us; 1139us; 1141us; 1143us; 1146us; 1148us; 1151us; 1154us; 1156us; 1158us; 1161us; 1164us; 1166us; 1168us; 1170us; 1172us; 1174us; 1176us; 1178us; 1180us; 1182us; 1184us; 1186us; 1189us; 1192us; 1194us; 1196us; 1199us; 1201us; 1203us; 1205us; 1207us; 1209us; 1211us; 1213us; 1215us; 1218us; 1221us; 1224us; 1226us; 1228us; 1230us; 1233us; 1235us; 1247us; 1264us; 1276us; 1293us; 1295us; 1297us; 1300us; 1302us; 1304us; 1306us; 1311us; 1313us; 1315us; 1317us; 1319us; 1321us; 1323us; 1325us; 1327us; 1329us; 1331us; 1333us; 1335us; 1337us; 1339us; 1341us; 1343us; 1345us; 1347us; 1349us; 1351us; 1353us; 1355us; 1357us; 1359us; 1361us; 1363us; 1365us; 1367us; 1369us; 1371us; 1373us; 1375us; 1377us; 1379us; 1381us; 1383us; 1385us; 1387us; 1389us; 1391us; 1393us; 1395us; 1397us; 1399us; 1401us; 1403us; 1405us; 1407us; 1409us; 1411us; 1413us; 1415us; 1417us; 1419us; 1421us; 1423us; 1425us; 1427us; 1429us; 1431us; 1435us; 1438us; 1440us; 1442us; 1444us; 1446us; 1448us; 1450us; 1452us; 1454us; 1456us; 1459us; 1461us; 1463us; 1466us; 1469us; 1471us; 1473us; 1475us; 1478us; 1481us; 1483us; 1488us; 1494us; 1498us; 1500us; 1502us; 1504us; 1506us; 1508us; 1510us; 1512us; 1514us; 1516us; 1518us; 1524us; 1530us; 1535us; 1537us; 1539us; 1541us; 1543us; 1545us; 1547us; 1553us; 1555us; 1557us; 1561us; 1564us; 1566us; 1568us; 1570us; 1572us; 1575us; 1578us; 1580us; 1582us; 1584us; 1586us; 1588us; 1590us; 1594us; 1599us; 1601us; 1605us; 1607us; 1609us; 1611us; 1614us; 1616us; 1619us; 1623us; 1625us; 1628us; 1630us; 1632us; 1634us; 1636us; 1638us; 1640us; 1642us; 1644us; 1646us; 1648us; 1650us; 1652us; 1654us; 1656us; 1658us; 1661us; 1663us; 1666us; 1669us; 1672us; 1674us; 1676us; 1678us; 1680us; 1682us; 1684us; 1686us; 1695us; 1697us; 1699us; 1707us; 1709us; 1713us; 1715us; 1717us; 1719us; 1721us; 1723us; 1725us; 1728us; 1730us; 1732us; 1734us; 1736us; 1738us; 1740us; 1742us; 1744us; 1746us; 1748us; 1750us; 1752us; 1754us; 1756us; 1758us; 1760us; 1763us; 1765us; 1768us; 1770us; 1772us; 1777us; 1782us; 1787us; 1789us; 1791us; 1793us; 1795us; 1797us; 1799us; 1801us; 1803us; 1805us; 1807us; 1809us; 1816us; 1818us; 1820us; 1822us; 1824us; 1826us; 1832us; 1834us; 1837us; 1840us; 1843us; 1845us; 1847us; 1849us; 1851us; 1857us; 1859us; 1861us; 1864us; 1867us; 1869us; 1871us; 1873us; 1875us; 1877us; 1879us; 1881us; 1883us; 1885us; 1887us; 1889us; 1891us; 1893us; 1895us; 1897us; 1899us; 1901us; 1903us; 1905us; 1908us; 1910us; 1912us; 1914us; 1918us; 1920us; 1924us; 1926us; 1928us; 1930us; 1932us; 1934us; 1936us; 1938us; 1940us; 1942us; 1944us; 1946us; 1948us; 1950us; 1952us; 1954us; 1956us; 1958us; 1960us; 1962us; 1964us; 1966us; 1968us; 1970us; 1972us; 1974us; 1976us; 1978us; 1981us; 1984us; 1986us; 1988us; 1990us; 1992us; 1995us; 2001us; 2003us; 2007us; 2012us; 2014us; 2016us; 2018us; 2020us; 2022us; 2024us; 2027us; 2029us; 2032us; 2034us; 2036us; 2038us; 2040us; 2042us; 2044us; 2046us; 2048us; 2052us; 2056us; 2060us; 2064us; 2067us; 2069us; 2071us; 2073us; 2076us; 2079us; 2081us; 2083us; 2085us; 2087us; 2090us; 2092us; 2094us; 2097us; 2099us; 2101us; 2103us; 2105us; 2107us; 2110us; 2112us; 2114us; 2116us; 2118us; 2120us; 2122us; 2124us; 2126us; 2128us; 2130us; 2132us; 2134us; 2136us; 2138us; 2140us; 2142us; 2145us; 2147us; 2149us; 2151us; 2153us; 2156us; 2158us; 2160us; 2167us; 2169us; 2171us; 2173us; 2176us; 2180us; 2182us; 2184us; 2186us; 2188us; 2190us; 2196us; 2199us; 2201us; 2203us; 2205us; 2208us; 2210us; 2212us; 2219us; 2226us; 2233us; 2240us; 2247us; 2254us; 2261us; 2269us; 2271us; 2273us; 2275us; 2277us; 2280us; 2283us; 2285us; 2287us; 2289us; 2291us; 2293us; 2299us; 2303us; 2305us; 2307us; 2309us; 2311us; 2313us; 2315us; 2319us; 2321us; 2326us; 2328us; 2330us; 2332us; 2334us; 2336us; 2338us; 2340us; 2342us; 2344us; 2346us; 2348us; 2350us; 2352us; 2354us; 2356us; 2358us; 2360us; 2362us; 2364us; 2367us; 2369us; 2371us; 2373us; 2375us; 2377us; 2379us; 2388us; 2391us; 2393us; 2395us; 2399us; 2402us; 2404us; 2412us; 2420us; 2428us; 2436us; 2444us; 2452us; 2460us; 2468us; 2476us; 2485us; 2499us; 2507us; 2509us; 2511us; 2513us; 2516us; 2519us; 2521us; 2523us; 2525us; 2527us; 2529us; 2531us; 2533us; 2535us; 2537us; 2539us; 2542us; 2544us; 2547us; 2549us; 2553us; 2555us; 2557us; 2560us; 2562us; 2565us; 2568us; 2570us; 2572us; 2574us; 2576us; 2578us; 2580us; 2628us; 2631us; 2633us; 2636us; 2638us; 2640us; 2692us; 2746us; 2801us; 2804us; 2806us; 2808us; 2810us; 2812us; 2814us; 2816us; 2818us; 2824us; 2826us; 2829us; 2832us; 2835us; 2838us; 2841us; 2844us; 2847us; 2850us; 2853us; 2856us; 2860us; 2863us; 2865us; 2868us; 2871us; 2873us; 2875us; 2880us; 2882us; 2884us; 2887us; 2889us; 2891us; 2893us; 2895us; 2897us; 2900us; 2903us; 2905us; 2907us; 2911us; 2915us; 2917us; 2919us; 2921us; 2923us; 2927us; 2976us; 2978us; 2980us; 2982us; 2984us; 3032us; 3035us; 3083us; 3085us; 3087us; 3090us; 3092us; 3099us; 3150us; 3154us; 3157us; 3159us; 3161us; 3163us; 3165us; 3167us; 3169us; 3171us; 3187us; 3194us; 3199us; 3202us; 3204us; 3206us; 3208us; 3210us; 3212us; 3218us; 3223us; 3226us; 3228us; 3230us; 3232us; 3234us; 3236us; 3238us; 3240us; 3242us; 3244us; 3246us; 3249us; 3251us; 3299us; 3301us; 3349us; 3351us; 3353us; 3355us; 3357us; 3359us; 3361us; 3364us; 3367us; 3370us; 3373us; 3376us; 3378us; 3380us; 3382us; 3384us; 3386us; 3388us; 3390us; 3392us; 3394us; 3396us; 3398us; 3400us; 3402us; 3404us; 3452us; 3500us; 3548us; 3596us; 3644us; 3692us; 3740us; 3788us; 3836us; 3884us; 3932us; 3980us; 4028us; 4076us; 4124us; 4172us; 4220us; 4268us; 4316us; 4364us; 4412us; 4460us; 4508us; 4556us; 4605us; 4653us; 4701us; 4750us; 4798us; 4846us; 4897us; 4946us; 4994us; 5042us; 5090us; 5092us; 5094us; 5096us; 5098us; 5100us; 5102us; 5104us; 5107us; 5109us; 5111us; 5115us; 5118us; 5121us; 5124us; 5127us; 5130us; 5133us; 5136us; 5139us; 5142us; 5145us; 5148us; 5151us; 5154us; 5157us; 5160us; 5163us; 5166us; 5169us; 5172us; 5175us; 5177us; 5179us; 5181us; 5183us; 5185us; 5187us; 5189us; 5191us; 5193us; 5195us; 5197us; 5199us; 5201us; 5203us; 5205us; 5207us; 5209us; 5211us; 5213us; 5215us; 5217us; 5219us; 5221us; 5223us; 5225us; 5227us; 5230us; 5233us; 5235us; 5237us; 5239us; 5242us; 5244us; 5246us; 5248us; 5250us; 5256us; 5261us; 5264us; 5266us; 5268us; 5270us; 5272us; 5274us; 5276us; 5278us; 5280us; 5282us; 5284us; 5287us; 5290us; 5293us; 5295us; 5297us; 5299us; 5302us; 5305us; 5308us; 5310us; 5312us; 5315us; 5317us; 5319us; 5322us; 5324us; 5327us; 5329us; 5331us; 5334us; 5336us; 5338us; 5341us; 5343us; 5345us; 5348us; 5350us; 5352us; 5355us; 5357us; 5359us; 5362us; 5364us; 5366us; 5369us; 5371us; 5375us; 5383us; 5386us; 5393us; 5396us; 5401us; 5403us; 5407us; 5409us; 5411us; 5413us; 5415us; 5417us; 5419us; 5422us; 5429us; 5431us; 5438us; 5440us; 5447us; 5454us; 5461us; 5468us; 5475us; 5482us; 5484us; 5486us; 5488us; 5490us; 5492us; 5495us; 5497us; 5499us; 5501us; 5503us; 5505us; 5507us; 5510us; 5512us; 5514us; 5516us; 5518us; 5520us; 5525us; 5528us; 5530us; 5532us; 5534us; 5536us; 5538us; 5540us; 5542us; 5549us; 5551us; 5553us; 5555us; 5557us; 5559us; 5561us; 5570us; 5573us; 5575us; 5577us; 5579us; 5581us; 5586us; 5588us; 5592us; 5596us; 5598us; 5601us; 5604us; 5606us; 5608us; 5610us; 5612us; 5615us; 5617us; 5619us; 5621us; 5623us; 5625us; 5627us; 5629us; 5631us; 5633us; 5635us; 5637us; 5642us; 5645us; 5647us; 5649us; 5651us; 5653us; 5655us; 5660us; 5666us; 5669us; 5671us; 5673us; 5675us; 5677us; 5682us; 5685us; 5687us; 5689us; 5691us; 5693us; 5703us; 5718us; 5732us; 5734us; 5737us; 5739us; 5741us; 5743us; 5746us; 5748us; 5750us; 5752us; 5754us; 5756us; 5758us; 5760us; 5762us; 5764us; 5766us; 5768us; 5770us; 5772us; 5774us; 5777us; 5780us; 5782us; 5784us; 5786us; 5792us; 5795us; 5797us; 5799us; 5801us; 5803us; 5805us; 5807us; 5809us; 5811us; 5813us; 5815us; 5817us; 5821us; 5823us; 5825us; 5827us; 5829us; 5833us; 5835us; 5837us; 5839us; 5841us; 5843us; 5845us; 5847us; 5849us; 5852us; 5854us; 5856us; 5858us; 5860us; 5862us; 5864us; 5866us; 5868us; 5871us; 5873us; 5879us; 5881us; 5883us; 5885us; 5887us; 5889us; 5892us; 5894us; 5896us; 5898us; 5901us; 5903us; 5907us; 5910us; 5912us; 5915us; 5917us; 5919us; 5921us; 5924us; 5926us; 5929us; 5931us; 5933us; 5935us; 5938us; 5940us; 5942us; 5944us; 5947us; 5950us; 5953us; 5955us; 5957us; 5961us; 5963us; 5965us; 5971us; 5975us; 5977us; 5979us; 5981us; 5984us; 5986us; 5988us; 5990us; 5992us; 5994us; 5996us; 5998us; 6001us; 6003us; 6005us; 6007us; 6009us; 6011us; 6013us; 6015us; 6017us; 6019us; 6021us; 6023us; 6025us; 6027us; 6032us; 6034us; 6036us; 6038us; 6040us; 6042us; 6045us; 6048us; 6051us; 6053us; 6055us; 6062us; 6068us; 6073us; 6076us; 6078us; 6080us; 6082us; 6084us; 6086us; 6088us; 6090us; 6092us; 6094us; 6096us; 6098us; 6100us; 6102us; 6104us; 6107us; 6109us; 6112us; 6114us; 6116us; 6118us; 6121us; 6123us; 6125us; 6128us; 6130us; 6132us; 6135us; 6137us; 6139us; 6143us; 6149us; 6151us; 6156us; 6158us; 6160us; 6162us; 6167us; 6173us; 6175us; 6180us; 6182us; 6184us; 6186us; 6191us; 6194us; 6196us; 6198us; 6205us; 6207us; 6209us; 6211us; 6213us; 6215us; 6217us; 6224us; 6226us; 6228us; 6230us; 6232us; 6238us; 6240us; 6242us; 6246us; 6248us; 6251us; 6255us; 6258us; 6263us; 6265us; 6267us; 6274us; 6276us; 6279us; 6281us; 6284us; 6286us; 6289us; 6291us; 6294us; 6300us; 6305us; 6307us; 6310us; 6312us; 6315us; 6317us; 6320us; 6322us; 6324us; 6327us; 6329us; 6332us; 6336us; 6339us; 6341us; 6344us; 6346us; 6349us; 6354us; 6356us; 6360us; 6362us; 6365us; 6367us; 6369us; 6371us; 6373us; 6375us; 6377us; 6381us; 6386us; 6389us; 6391us; 6393us; 6402us; 6408us; 6411us; 6416us; 6418us; 6421us; 6423us; 6426us; 6428us; 6431us; 6433us; 6435us; 6439us; 6441us; 6443us; 6447us; 6450us; 6456us; 6458us; 6460us; 6462us; 6464us; 6466us; 6468us; 6470us; 6472us; 6474us; 6476us; 6479us; 6484us; 6486us; 6488us; 6490us; 6492us; 6494us; 6496us; 6504us; 6508us; 6512us; 6515us; 6517us; 6519us; 6521us; 6525us; 6527us; 6529us; 6531us; 6533us; 6537us; 6540us; 6542us; 6544us; 6546us; 6549us; 6553us; 6555us; 6557us; 6559us; 6563us; 6565us; 6567us; 6571us; 6573us; 6577us; 6580us; 6582us; 6584us; 6586us; 6588us; 6591us; 6593us; 6595us; 6599us; 6603us; 6607us; 6609us; 6611us; 6613us; 6615us; 6617us; 6619us; 6621us; 6624us; 6626us; 6628us; 6630us; 6632us; 6635us; 6637us; 6639us; 6644us; 6646us; 6648us; 6650us; 6652us; 6654us; 6658us; 6662us; 6664us; 6666us; 6668us; 6670us; 6672us; 6674us; 6676us; 6678us; 6680us; 6682us; 6684us; 6686us; 6688us; 6690us; 6692us; 6694us; 6696us; 6698us; 6700us; 6702us; 6704us; 6706us; 6708us; 6710us; 6712us; 6714us; 6716us; 6719us; 6721us; 6723us; 6725us; 6727us; 6729us; 6731us; 6733us; 6735us; 6737us; 6741us; 6743us; 6746us; 6748us; 6750us; 6752us; 6754us; 6756us; 6758us; 6761us; 6763us; 6765us; 6767us; 6770us; 6772us; 6774us; 6776us; 6779us; 6782us; 6784us; 6786us; 6788us; 6790us; 6792us; 6794us; 6796us; 6798us; 6800us; 6802us; 6804us; 6806us; 6808us; 6810us; 6812us; 6814us; 6816us; 6818us; 6820us; 6822us; 6824us; 6826us; 6828us; 6830us; 6832us; 6834us; 6836us; 6838us; 6840us; 6842us; 6845us; 6847us; 6849us; 6851us; 6853us; 6856us; 6858us; 6860us; 6862us; 6864us; 6866us; 6868us; 6870us; 6872us; 6874us; 6876us; 6878us; 6880us; 6882us; 6884us; 6886us; 6888us; 6890us; 6892us; 6894us; 6896us; 6898us; 6900us; 6902us; 6904us; 6906us; |] +let _fsyacc_action_rows = 1760 +let _fsyacc_actionTableElements = [|16us; 16437us; 21us; 79us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 72us; 199us; 87us; 9us; 100us; 170us; 107us; 16496us; 108us; 16496us; 119us; 16496us; 147us; 16496us; 192us; 41us; 0us; 49152us; 82us; 16446us; 21us; 94us; 23us; 16496us; 24us; 16496us; 28us; 16496us; 29us; 16496us; 30us; 16496us; 31us; 16496us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 39us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 44us; 16496us; 61us; 16496us; 70us; 16496us; 71us; 16496us; 72us; 199us; 73us; 16496us; 74us; 16496us; 85us; 16496us; 87us; 9us; 88us; 16496us; 89us; 16496us; 91us; 16496us; 97us; 16496us; 99us; 16496us; 100us; 664us; 105us; 16496us; 106us; 16496us; 107us; 16496us; 113us; 16496us; 114us; 16496us; 115us; 16496us; 117us; 16496us; 119us; 16496us; 120us; 16496us; 121us; 16496us; 122us; 16496us; 123us; 16496us; 124us; 16496us; 128us; 16496us; 131us; 16496us; 132us; 16496us; 134us; 16496us; 135us; 16496us; 143us; 16496us; 144us; 16496us; 145us; 16496us; 147us; 16496us; 151us; 16496us; 152us; 16496us; 155us; 16496us; 156us; 16496us; 159us; 16496us; 160us; 16496us; 161us; 16496us; 162us; 16496us; 163us; 16496us; 164us; 16496us; 165us; 16496us; 166us; 16496us; 167us; 16496us; 168us; 16496us; 169us; 16496us; 170us; 16496us; 171us; 16496us; 172us; 16496us; 173us; 16496us; 174us; 16496us; 176us; 16496us; 177us; 16496us; 179us; 16496us; 180us; 16496us; 183us; 16496us; 188us; 16496us; 189us; 16496us; 190us; 16496us; 191us; 16496us; 192us; 47us; 0us; 49152us; 7us; 16496us; 10us; 17us; 20us; 8us; 67us; 16us; 72us; 199us; 83us; 7us; 87us; 9us; 100us; 664us; 0us; 49152us; 0us; 16387us; 0us; 16388us; 0us; 16389us; 1us; 32768us; 188us; 10us; 0us; 16394us; 2us; 16390us; 189us; 13us; 190us; 12us; 0us; 16391us; 0us; 16392us; 0us; 16393us; 0us; 16395us; 0us; 16396us; 0us; 16397us; 0us; 16398us; 4us; 32768us; 10us; 17us; 20us; 1691us; 67us; 16us; 83us; 1690us; 0us; 16399us; 4us; 32768us; 10us; 17us; 20us; 1691us; 67us; 16us; 83us; 1690us; 0us; 16400us; 4us; 32768us; 10us; 17us; 20us; 1691us; 67us; 16us; 83us; 1690us; 0us; 16401us; 5us; 16496us; 10us; 17us; 67us; 16us; 72us; 199us; 87us; 9us; 100us; 664us; 0us; 16402us; 5us; 16496us; 10us; 17us; 67us; 16us; 72us; 199us; 87us; 9us; 100us; 664us; 0us; 16403us; 5us; 16496us; 10us; 17us; 67us; 16us; 72us; 199us; 87us; 9us; 100us; 664us; 0us; 16404us; 16us; 16405us; 31us; 16496us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 39us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 72us; 199us; 100us; 664us; 107us; 16496us; 119us; 16496us; 135us; 16496us; 147us; 16496us; 159us; 16496us; 0us; 16406us; 3us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 74us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1727us; 36us; 1730us; 37us; 1732us; 38us; 1735us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 107us; 1731us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 119us; 653us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 135us; 670us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 147us; 1736us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 25us; 16407us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 0us; 16408us; 2us; 32768us; 10us; 38us; 192us; 39us; 0us; 16409us; 1us; 32768us; 10us; 40us; 0us; 16410us; 4us; 16436us; 10us; 42us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 0us; 16411us; 2us; 32768us; 10us; 44us; 192us; 45us; 0us; 16412us; 1us; 32768us; 10us; 46us; 0us; 16413us; 4us; 32768us; 10us; 48us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 0us; 16414us; 3us; 16610us; 41us; 459us; 42us; 458us; 43us; 460us; 2us; 32768us; 44us; 1629us; 188us; 1628us; 1us; 16415us; 76us; 1631us; 2us; 32768us; 44us; 1629us; 188us; 1628us; 1us; 16416us; 76us; 1631us; 1us; 16417us; 148us; 52us; 0us; 16418us; 1us; 16420us; 148us; 52us; 0us; 16419us; 1us; 17355us; 69us; 1707us; 16us; 16437us; 21us; 79us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 72us; 199us; 87us; 9us; 100us; 170us; 107us; 16496us; 108us; 16496us; 119us; 16496us; 147us; 16496us; 192us; 87us; 0us; 16421us; 1us; 16422us; 148us; 52us; 0us; 16423us; 1us; 16425us; 148us; 52us; 0us; 16424us; 1us; 17355us; 69us; 1707us; 82us; 16446us; 21us; 94us; 23us; 16496us; 24us; 16496us; 28us; 16496us; 29us; 16496us; 30us; 16496us; 31us; 16496us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 39us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 44us; 16496us; 61us; 16496us; 70us; 16496us; 71us; 16496us; 72us; 199us; 73us; 16496us; 74us; 16496us; 85us; 16496us; 87us; 9us; 88us; 16496us; 89us; 16496us; 91us; 16496us; 97us; 16496us; 99us; 16496us; 100us; 664us; 105us; 16496us; 106us; 16496us; 107us; 16496us; 113us; 16496us; 114us; 16496us; 115us; 16496us; 117us; 16496us; 119us; 16496us; 120us; 16496us; 121us; 16496us; 122us; 16496us; 123us; 16496us; 124us; 16496us; 128us; 16496us; 131us; 16496us; 132us; 16496us; 134us; 16496us; 135us; 16496us; 143us; 16496us; 144us; 16496us; 145us; 16496us; 147us; 16496us; 151us; 16496us; 152us; 16496us; 155us; 16496us; 156us; 16496us; 159us; 16496us; 160us; 16496us; 161us; 16496us; 162us; 16496us; 163us; 16496us; 164us; 16496us; 165us; 16496us; 166us; 16496us; 167us; 16496us; 168us; 16496us; 169us; 16496us; 170us; 16496us; 171us; 16496us; 172us; 16496us; 173us; 16496us; 174us; 16496us; 176us; 16496us; 177us; 16496us; 179us; 16496us; 180us; 16496us; 183us; 16496us; 188us; 16496us; 189us; 16496us; 190us; 16496us; 191us; 16496us; 192us; 114us; 0us; 16426us; 3us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 8us; 32768us; 35us; 1727us; 36us; 1730us; 37us; 1732us; 38us; 1735us; 107us; 1731us; 108us; 172us; 119us; 653us; 147us; 1736us; 18us; 16437us; 21us; 79us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 69us; 1722us; 72us; 199us; 77us; 1721us; 87us; 9us; 100us; 170us; 107us; 16496us; 108us; 16496us; 119us; 16496us; 147us; 16496us; 192us; 87us; 0us; 16427us; 0us; 16428us; 4us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 192us; 109us; 74us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1727us; 36us; 1730us; 37us; 1732us; 38us; 1735us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 107us; 1731us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 119us; 653us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 135us; 670us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 147us; 1736us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 83us; 16446us; 21us; 94us; 23us; 16496us; 24us; 16496us; 28us; 16496us; 29us; 16496us; 30us; 16496us; 31us; 16496us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 39us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 44us; 16496us; 61us; 16496us; 69us; 133us; 70us; 16496us; 71us; 16496us; 72us; 199us; 73us; 16496us; 74us; 16496us; 85us; 16496us; 87us; 9us; 88us; 16496us; 89us; 16496us; 91us; 16496us; 97us; 16496us; 99us; 16496us; 100us; 664us; 105us; 16496us; 106us; 16496us; 107us; 16496us; 113us; 16496us; 114us; 16496us; 115us; 16496us; 117us; 16496us; 119us; 16496us; 120us; 16496us; 121us; 16496us; 122us; 16496us; 123us; 16496us; 124us; 16496us; 128us; 16496us; 131us; 16496us; 132us; 16496us; 134us; 16496us; 135us; 16496us; 143us; 16496us; 144us; 16496us; 145us; 16496us; 147us; 16496us; 151us; 16496us; 152us; 16496us; 155us; 16496us; 156us; 16496us; 159us; 16496us; 160us; 16496us; 161us; 16496us; 162us; 16496us; 163us; 16496us; 164us; 16496us; 165us; 16496us; 166us; 16496us; 167us; 16496us; 168us; 16496us; 169us; 16496us; 170us; 16496us; 171us; 16496us; 172us; 16496us; 173us; 16496us; 174us; 16496us; 176us; 16496us; 177us; 16496us; 179us; 16496us; 180us; 16496us; 183us; 16496us; 188us; 16496us; 189us; 16496us; 190us; 16496us; 191us; 16496us; 192us; 114us; 0us; 16429us; 0us; 16430us; 0us; 16431us; 15us; 16437us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 72us; 199us; 87us; 9us; 100us; 170us; 107us; 16496us; 108us; 16496us; 119us; 16496us; 147us; 16496us; 192us; 84us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 1us; 17357us; 20us; 1708us; 0us; 16432us; 0us; 16433us; 6us; 16436us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 0us; 16434us; 0us; 16435us; 3us; 16436us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 3us; 17340us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 15us; 16440us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 72us; 199us; 87us; 9us; 100us; 170us; 107us; 16496us; 108us; 16496us; 119us; 16496us; 147us; 16496us; 192us; 91us; 0us; 16438us; 3us; 32768us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 4us; 16496us; 72us; 199us; 87us; 9us; 100us; 170us; 192us; 91us; 0us; 16439us; 81us; 16446us; 23us; 16496us; 24us; 16496us; 28us; 16496us; 29us; 16496us; 30us; 16496us; 31us; 16496us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 39us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 44us; 16496us; 61us; 16496us; 70us; 16496us; 71us; 16496us; 72us; 199us; 73us; 16496us; 74us; 16496us; 85us; 16496us; 87us; 9us; 88us; 16496us; 89us; 16496us; 91us; 16496us; 97us; 16496us; 99us; 16496us; 100us; 664us; 105us; 16496us; 106us; 16496us; 107us; 16496us; 113us; 16496us; 114us; 16496us; 115us; 16496us; 117us; 16496us; 119us; 16496us; 120us; 16496us; 121us; 16496us; 122us; 16496us; 123us; 16496us; 124us; 16496us; 128us; 16496us; 131us; 16496us; 132us; 16496us; 134us; 16496us; 135us; 16496us; 143us; 16496us; 144us; 16496us; 145us; 16496us; 147us; 16496us; 151us; 16496us; 152us; 16496us; 155us; 16496us; 156us; 16496us; 159us; 16496us; 160us; 16496us; 161us; 16496us; 162us; 16496us; 163us; 16496us; 164us; 16496us; 165us; 16496us; 166us; 16496us; 167us; 16496us; 168us; 16496us; 169us; 16496us; 170us; 16496us; 171us; 16496us; 172us; 16496us; 173us; 16496us; 174us; 16496us; 176us; 16496us; 177us; 16496us; 179us; 16496us; 180us; 16496us; 183us; 16496us; 188us; 16496us; 189us; 16496us; 190us; 16496us; 191us; 16496us; 192us; 99us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 1us; 17357us; 20us; 1708us; 0us; 16441us; 0us; 16442us; 6us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 0us; 16443us; 0us; 16444us; 0us; 16445us; 4us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 192us; 109us; 74us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1727us; 36us; 1730us; 37us; 1732us; 38us; 1735us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 107us; 1731us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 119us; 653us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 135us; 670us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 147us; 1736us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 28us; 16449us; 20us; 1687us; 61us; 1088us; 62us; 1081us; 67us; 1686us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 83us; 1685us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 81us; 16448us; 23us; 16496us; 24us; 16496us; 28us; 16496us; 29us; 16496us; 30us; 16496us; 31us; 16496us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 39us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 44us; 16496us; 61us; 16496us; 70us; 16496us; 71us; 16496us; 72us; 199us; 73us; 16496us; 74us; 16496us; 85us; 16496us; 87us; 9us; 88us; 16496us; 89us; 16496us; 91us; 16496us; 97us; 16496us; 99us; 16496us; 100us; 664us; 105us; 16496us; 106us; 16496us; 107us; 16496us; 113us; 16496us; 114us; 16496us; 115us; 16496us; 117us; 16496us; 119us; 16496us; 120us; 16496us; 121us; 16496us; 122us; 16496us; 123us; 16496us; 124us; 16496us; 128us; 16496us; 131us; 16496us; 132us; 16496us; 134us; 16496us; 135us; 16496us; 143us; 16496us; 144us; 16496us; 145us; 16496us; 147us; 16496us; 151us; 16496us; 152us; 16496us; 155us; 16496us; 156us; 16496us; 159us; 16496us; 160us; 16496us; 161us; 16496us; 162us; 16496us; 163us; 16496us; 164us; 16496us; 165us; 16496us; 166us; 16496us; 167us; 16496us; 168us; 16496us; 169us; 16496us; 170us; 16496us; 171us; 16496us; 172us; 16496us; 173us; 16496us; 174us; 16496us; 176us; 16496us; 177us; 16496us; 179us; 16496us; 180us; 16496us; 183us; 16496us; 188us; 16496us; 189us; 16496us; 190us; 16496us; 191us; 16496us; 192us; 114us; 0us; 16447us; 0us; 16450us; 0us; 16451us; 21us; 16454us; 20us; 1687us; 31us; 16496us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 39us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 67us; 1686us; 72us; 199us; 83us; 1685us; 87us; 9us; 100us; 664us; 107us; 16496us; 119us; 16496us; 135us; 16496us; 147us; 16496us; 159us; 16496us; 192us; 114us; 0us; 16452us; 81us; 16455us; 23us; 16496us; 24us; 16496us; 28us; 16496us; 29us; 16496us; 30us; 16496us; 31us; 16496us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 39us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 44us; 16496us; 61us; 16496us; 70us; 16496us; 71us; 16496us; 72us; 199us; 73us; 16496us; 74us; 16496us; 85us; 16496us; 87us; 9us; 88us; 16496us; 89us; 16496us; 91us; 16496us; 97us; 16496us; 99us; 16496us; 100us; 664us; 105us; 16496us; 106us; 16496us; 107us; 16496us; 113us; 16496us; 114us; 16496us; 115us; 16496us; 117us; 16496us; 119us; 16496us; 120us; 16496us; 121us; 16496us; 122us; 16496us; 123us; 16496us; 124us; 16496us; 128us; 16496us; 131us; 16496us; 132us; 16496us; 134us; 16496us; 135us; 16496us; 143us; 16496us; 144us; 16496us; 145us; 16496us; 147us; 16496us; 151us; 16496us; 152us; 16496us; 155us; 16496us; 156us; 16496us; 159us; 16496us; 160us; 16496us; 161us; 16496us; 162us; 16496us; 163us; 16496us; 164us; 16496us; 165us; 16496us; 166us; 16496us; 167us; 16496us; 168us; 16496us; 169us; 16496us; 170us; 16496us; 171us; 16496us; 172us; 16496us; 173us; 16496us; 174us; 16496us; 176us; 16496us; 177us; 16496us; 179us; 16496us; 180us; 16496us; 183us; 16496us; 188us; 16496us; 189us; 16496us; 190us; 16496us; 191us; 16496us; 192us; 114us; 0us; 16453us; 3us; 32768us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 6us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 4us; 32768us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 140us; 156us; 4us; 16496us; 72us; 199us; 87us; 9us; 100us; 664us; 192us; 114us; 0us; 16456us; 0us; 16457us; 0us; 16458us; 3us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 11us; 32768us; 31us; 672us; 35us; 1727us; 36us; 1730us; 37us; 1732us; 38us; 1735us; 39us; 685us; 107us; 1731us; 119us; 653us; 135us; 670us; 147us; 1736us; 159us; 666us; 0us; 16459us; 1us; 16459us; 125us; 928us; 0us; 16460us; 67us; 16460us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 933us; 0us; 16461us; 1us; 16496us; 72us; 199us; 1us; 16558us; 129us; 326us; 0us; 16462us; 0us; 16463us; 1us; 32768us; 69us; 133us; 5us; 32768us; 21us; 142us; 44us; 1629us; 54us; 1717us; 134us; 1718us; 188us; 1628us; 0us; 16464us; 2us; 16495us; 10us; 926us; 192us; 913us; 0us; 16465us; 0us; 16466us; 8us; 16496us; 44us; 1629us; 55us; 1719us; 72us; 199us; 87us; 9us; 100us; 170us; 134us; 1720us; 188us; 1628us; 192us; 91us; 4us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 76us; 1631us; 0us; 16467us; 1us; 16468us; 76us; 1631us; 6us; 16496us; 54us; 1717us; 72us; 199us; 87us; 9us; 100us; 664us; 134us; 1718us; 192us; 115us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16469us; 0us; 16470us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16471us; 0us; 16472us; 0us; 16473us; 0us; 16474us; 1us; 16475us; 76us; 1631us; 81us; 16446us; 23us; 16496us; 24us; 16496us; 28us; 16496us; 29us; 16496us; 30us; 16496us; 31us; 16496us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 39us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 44us; 16496us; 61us; 16496us; 70us; 16496us; 71us; 16496us; 72us; 199us; 73us; 16496us; 74us; 16496us; 85us; 16496us; 87us; 9us; 88us; 16496us; 89us; 16496us; 91us; 16496us; 97us; 16496us; 99us; 16496us; 100us; 664us; 105us; 16496us; 106us; 16496us; 107us; 16496us; 113us; 16496us; 114us; 16496us; 115us; 16496us; 117us; 16496us; 119us; 16496us; 120us; 16496us; 121us; 16496us; 122us; 16496us; 123us; 16496us; 124us; 16496us; 128us; 16496us; 131us; 16496us; 132us; 16496us; 134us; 16496us; 135us; 16496us; 143us; 16496us; 144us; 16496us; 145us; 16496us; 147us; 16496us; 151us; 16496us; 152us; 16496us; 155us; 16496us; 156us; 16496us; 159us; 16496us; 160us; 16496us; 161us; 16496us; 162us; 16496us; 163us; 16496us; 164us; 16496us; 165us; 16496us; 166us; 16496us; 167us; 16496us; 168us; 16496us; 169us; 16496us; 170us; 16496us; 171us; 16496us; 172us; 16496us; 173us; 16496us; 174us; 16496us; 176us; 16496us; 177us; 16496us; 179us; 16496us; 180us; 16496us; 183us; 16496us; 188us; 16496us; 189us; 16496us; 190us; 16496us; 191us; 16496us; 192us; 116us; 3us; 32768us; 10us; 926us; 140us; 154us; 192us; 913us; 0us; 16476us; 0us; 16477us; 0us; 16478us; 6us; 16496us; 18us; 16580us; 19us; 16580us; 21us; 366us; 72us; 199us; 140us; 16580us; 192us; 372us; 3us; 32768us; 18us; 1700us; 19us; 1701us; 140us; 1702us; 0us; 16480us; 0us; 16481us; 0us; 16482us; 3us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 8us; 32768us; 35us; 1727us; 36us; 1730us; 37us; 1732us; 38us; 1735us; 107us; 1731us; 108us; 172us; 119us; 653us; 147us; 1736us; 2us; 32768us; 69us; 1722us; 77us; 1721us; 5us; 32768us; 21us; 138us; 44us; 1629us; 55us; 1719us; 134us; 1720us; 188us; 1628us; 0us; 16483us; 0us; 16484us; 0us; 16485us; 0us; 16486us; 2us; 32768us; 44us; 1629us; 188us; 1628us; 1us; 16487us; 76us; 1631us; 1us; 16496us; 72us; 199us; 1us; 17365us; 109us; 1711us; 1us; 17367us; 116us; 1712us; 3us; 16610us; 41us; 459us; 42us; 458us; 43us; 460us; 3us; 32768us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 2us; 16672us; 32us; 1726us; 157us; 17383us; 1us; 32768us; 77us; 179us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 16489us; 69us; 182us; 0us; 16488us; 67us; 32768us; 21us; 184us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 25us; 16490us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 28us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 0us; 16491us; 3us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 0us; 16492us; 15us; 16437us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 72us; 199us; 87us; 9us; 100us; 170us; 107us; 16496us; 108us; 16496us; 119us; 16496us; 147us; 16496us; 192us; 87us; 1us; 32768us; 140us; 191us; 3us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 0us; 16493us; 15us; 16437us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 72us; 199us; 87us; 9us; 100us; 170us; 107us; 16496us; 108us; 16496us; 119us; 16496us; 147us; 16496us; 192us; 87us; 1us; 32768us; 140us; 195us; 0us; 16494us; 0us; 16495us; 1us; 16497us; 72us; 199us; 0us; 16498us; 14us; 32768us; 10us; 926us; 15us; 1758us; 35us; 1728us; 36us; 1730us; 37us; 1733us; 38us; 1735us; 44us; 1629us; 59us; 1756us; 93us; 1757us; 107us; 1731us; 147us; 1736us; 160us; 230us; 188us; 1628us; 192us; 204us; 2us; 17359us; 20us; 1696us; 83us; 1697us; 8us; 32768us; 10us; 926us; 15us; 1758us; 35us; 1754us; 37us; 1755us; 53us; 202us; 59us; 1756us; 93us; 1757us; 192us; 913us; 1us; 17357us; 20us; 1708us; 0us; 16499us; 1us; 16873us; 53us; 205us; 1us; 17357us; 20us; 1708us; 0us; 16500us; 0us; 16501us; 0us; 16502us; 0us; 16503us; 9us; 17358us; 35us; 1727us; 36us; 1730us; 37us; 1732us; 38us; 1735us; 44us; 1629us; 107us; 1731us; 147us; 1736us; 160us; 230us; 188us; 1628us; 0us; 16504us; 3us; 17381us; 33us; 1725us; 34us; 1724us; 76us; 1631us; 26us; 17115us; 71us; 1279us; 73us; 1313us; 91us; 1285us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16505us; 3us; 32768us; 21us; 219us; 44us; 1629us; 188us; 1628us; 3us; 17381us; 33us; 1725us; 34us; 1724us; 76us; 1631us; 26us; 17115us; 71us; 1279us; 73us; 1313us; 91us; 1285us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16506us; 2us; 32768us; 44us; 1629us; 188us; 1628us; 4us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 76us; 1631us; 2us; 17381us; 33us; 1725us; 34us; 1724us; 26us; 17115us; 71us; 1279us; 73us; 1313us; 91us; 1285us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16507us; 1us; 32768us; 77us; 225us; 0us; 16508us; 1us; 32768us; 77us; 227us; 0us; 16509us; 1us; 17284us; 77us; 229us; 0us; 16510us; 1us; 32768us; 77us; 231us; 0us; 16511us; 1us; 16496us; 72us; 199us; 0us; 16512us; 1us; 16514us; 129us; 235us; 1us; 16496us; 72us; 199us; 0us; 16513us; 2us; 16622us; 69us; 238us; 86us; 468us; 7us; 16496us; 21us; 241us; 47us; 527us; 54us; 529us; 72us; 199us; 110us; 528us; 134us; 266us; 149us; 252us; 0us; 16515us; 0us; 16516us; 12us; 16496us; 10us; 16534us; 14us; 16534us; 15us; 16534us; 16us; 16534us; 21us; 262us; 47us; 527us; 54us; 529us; 72us; 199us; 110us; 528us; 134us; 266us; 149us; 252us; 192us; 16534us; 1us; 17357us; 20us; 1708us; 5us; 16496us; 14us; 16534us; 15us; 16534us; 16us; 16534us; 72us; 199us; 86us; 16534us; 1us; 16622us; 86us; 468us; 3us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 1us; 16622us; 86us; 468us; 0us; 16517us; 1us; 16622us; 86us; 468us; 0us; 16518us; 0us; 16519us; 0us; 16520us; 1us; 32768us; 118us; 253us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16521us; 0us; 16522us; 5us; 16496us; 10us; 16534us; 21us; 270us; 72us; 199us; 140us; 16534us; 192us; 260us; 3us; 32768us; 10us; 926us; 140us; 258us; 192us; 913us; 0us; 16523us; 0us; 16524us; 1us; 32768us; 140us; 261us; 0us; 16525us; 6us; 16496us; 10us; 16534us; 14us; 16534us; 15us; 16534us; 16us; 16534us; 72us; 199us; 192us; 16534us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16526us; 0us; 16527us; 5us; 16496us; 10us; 16534us; 21us; 270us; 72us; 199us; 140us; 16534us; 192us; 16534us; 3us; 32768us; 10us; 926us; 140us; 268us; 192us; 913us; 0us; 16528us; 0us; 16529us; 6us; 16496us; 10us; 16534us; 14us; 16534us; 15us; 16534us; 16us; 16534us; 72us; 199us; 192us; 16534us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16530us; 0us; 16531us; 0us; 16532us; 0us; 16533us; 2us; 17359us; 20us; 1696us; 83us; 1697us; 10us; 16496us; 10us; 16534us; 14us; 16534us; 15us; 16534us; 16us; 16534us; 18us; 16534us; 19us; 16534us; 72us; 199us; 86us; 16534us; 140us; 16534us; 192us; 16534us; 0us; 16535us; 5us; 32768us; 35us; 1727us; 36us; 1730us; 46us; 281us; 107us; 1731us; 108us; 316us; 10us; 32768us; 29us; 676us; 31us; 672us; 35us; 1727us; 36us; 1730us; 39us; 685us; 46us; 281us; 107us; 1731us; 108us; 435us; 135us; 670us; 159us; 666us; 0us; 16536us; 0us; 16537us; 0us; 16538us; 0us; 16539us; 0us; 16540us; 1us; 16541us; 46us; 287us; 0us; 16542us; 3us; 32768us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 0us; 16544us; 3us; 32768us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 2us; 32768us; 19us; 292us; 192us; 293us; 0us; 16545us; 0us; 16546us; 1us; 16547us; 96us; 295us; 3us; 32768us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 0us; 16548us; 3us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 3us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 10us; 32768us; 13us; 531us; 45us; 279us; 46us; 282us; 48us; 286us; 49us; 283us; 50us; 284us; 52us; 312us; 108us; 314us; 110us; 530us; 117us; 320us; 42us; 32768us; 13us; 531us; 44us; 1629us; 45us; 279us; 46us; 282us; 48us; 286us; 49us; 283us; 50us; 284us; 52us; 312us; 56us; 602us; 66us; 1523us; 73us; 518us; 87us; 1555us; 90us; 1622us; 91us; 515us; 105us; 1568us; 108us; 314us; 110us; 530us; 112us; 1566us; 117us; 320us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 17365us; 109us; 1711us; 3us; 16610us; 41us; 459us; 42us; 458us; 43us; 460us; 3us; 32768us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 2us; 16672us; 32us; 1726us; 157us; 17383us; 1us; 32768us; 77us; 306us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 2us; 16543us; 25us; 290us; 86us; 288us; 1us; 16489us; 69us; 182us; 0us; 16549us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 6us; 16550us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 6us; 16551us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 1us; 17367us; 116us; 1712us; 0us; 16552us; 1us; 17367us; 116us; 1712us; 0us; 16553us; 1us; 16496us; 72us; 199us; 0us; 16554us; 1us; 32768us; 77us; 321us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16555us; 3us; 16610us; 41us; 459us; 42us; 458us; 43us; 460us; 1us; 16675us; 84us; 561us; 0us; 16556us; 1us; 16496us; 72us; 199us; 1us; 16558us; 129us; 326us; 0us; 16557us; 40us; 16496us; 10us; 16559us; 13us; 16559us; 14us; 16559us; 15us; 16559us; 16us; 16559us; 18us; 16559us; 19us; 16559us; 20us; 16559us; 29us; 16559us; 31us; 16559us; 35us; 16559us; 36us; 16559us; 37us; 16559us; 38us; 16559us; 39us; 16559us; 45us; 16559us; 46us; 16559us; 48us; 16559us; 49us; 16559us; 50us; 16559us; 52us; 16559us; 67us; 16559us; 69us; 330us; 72us; 199us; 83us; 16559us; 86us; 157us; 87us; 16559us; 100us; 16559us; 107us; 16559us; 108us; 16559us; 110us; 16559us; 117us; 16559us; 119us; 16559us; 129us; 16559us; 135us; 16559us; 140us; 16559us; 147us; 16559us; 148us; 16559us; 159us; 16559us; 192us; 16559us; 6us; 16496us; 21us; 340us; 47us; 527us; 54us; 529us; 72us; 199us; 110us; 528us; 149us; 352us; 0us; 16560us; 0us; 16561us; 3us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 2us; 17381us; 33us; 1725us; 34us; 1724us; 1us; 32768us; 91us; 780us; 1us; 16627us; 130us; 479us; 1us; 32768us; 69us; 338us; 6us; 16496us; 21us; 340us; 47us; 527us; 54us; 529us; 72us; 199us; 110us; 528us; 149us; 352us; 0us; 16562us; 11us; 16496us; 10us; 16580us; 14us; 16580us; 15us; 16580us; 16us; 16580us; 21us; 362us; 47us; 527us; 54us; 529us; 72us; 199us; 110us; 528us; 149us; 352us; 192us; 372us; 1us; 17357us; 20us; 1708us; 7us; 16496us; 10us; 16580us; 14us; 16580us; 15us; 16580us; 16us; 16580us; 72us; 199us; 86us; 16580us; 192us; 372us; 1us; 16620us; 86us; 465us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 1us; 16620us; 86us; 465us; 0us; 16563us; 0us; 16564us; 1us; 16620us; 86us; 465us; 0us; 16565us; 0us; 16566us; 0us; 16567us; 1us; 32768us; 118us; 353us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16568us; 0us; 16569us; 5us; 16496us; 10us; 16580us; 21us; 366us; 72us; 199us; 140us; 16580us; 192us; 360us; 3us; 32768us; 10us; 926us; 140us; 358us; 192us; 913us; 0us; 16570us; 0us; 16571us; 4us; 16496us; 10us; 16580us; 72us; 199us; 140us; 361us; 192us; 372us; 0us; 16572us; 6us; 16496us; 10us; 16580us; 14us; 16580us; 15us; 16580us; 16us; 16580us; 72us; 199us; 192us; 372us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16573us; 0us; 16574us; 6us; 16496us; 10us; 16580us; 14us; 16580us; 15us; 16580us; 16us; 16580us; 72us; 199us; 192us; 372us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16575us; 0us; 16576us; 0us; 16577us; 0us; 16578us; 10us; 16496us; 10us; 16580us; 14us; 16580us; 15us; 16580us; 16us; 16580us; 18us; 16580us; 19us; 16580us; 72us; 199us; 86us; 16580us; 140us; 16580us; 192us; 372us; 0us; 16579us; 2us; 17359us; 20us; 1696us; 83us; 1697us; 10us; 16496us; 10us; 16580us; 14us; 16580us; 15us; 16580us; 16us; 16580us; 18us; 16580us; 19us; 16580us; 72us; 199us; 86us; 16580us; 140us; 16580us; 192us; 372us; 0us; 16581us; 1us; 17365us; 109us; 1711us; 0us; 16582us; 1us; 17365us; 109us; 1711us; 2us; 32768us; 19us; 381us; 192us; 382us; 0us; 16583us; 0us; 16584us; 1us; 16585us; 129us; 384us; 1us; 17365us; 109us; 1711us; 0us; 16586us; 1us; 16496us; 72us; 199us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 17177us; 77us; 1448us; 1us; 32768us; 69us; 390us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16587us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 17177us; 77us; 1448us; 3us; 32768us; 25us; 379us; 69us; 395us; 86us; 377us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16588us; 0us; 16589us; 1us; 16590us; 46us; 399us; 0us; 16591us; 3us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 3us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 15us; 32768us; 13us; 531us; 29us; 676us; 31us; 672us; 39us; 685us; 45us; 280us; 46us; 282us; 48us; 398us; 49us; 283us; 50us; 284us; 52us; 471us; 108us; 435us; 110us; 530us; 117us; 427us; 135us; 670us; 159us; 666us; 47us; 32768us; 13us; 531us; 29us; 676us; 31us; 672us; 39us; 685us; 44us; 1629us; 45us; 280us; 46us; 282us; 48us; 398us; 49us; 283us; 50us; 284us; 52us; 471us; 56us; 602us; 66us; 1523us; 73us; 518us; 87us; 1555us; 90us; 1622us; 91us; 515us; 105us; 1568us; 108us; 435us; 110us; 530us; 112us; 1566us; 117us; 427us; 120us; 1567us; 135us; 670us; 145us; 1565us; 159us; 666us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16592us; 0us; 16593us; 2us; 17365us; 108us; 441us; 109us; 1711us; 1us; 17353us; 18us; 1706us; 0us; 16594us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 7us; 16618us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 86us; 462us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 0us; 16595us; 1us; 17365us; 109us; 1711us; 3us; 32768us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 2us; 16672us; 32us; 1726us; 157us; 17383us; 1us; 32768us; 77us; 416us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 2us; 16543us; 25us; 290us; 86us; 288us; 1us; 17353us; 18us; 1706us; 0us; 16596us; 0us; 16597us; 1us; 17353us; 18us; 1706us; 0us; 16598us; 1us; 17353us; 18us; 1706us; 0us; 16599us; 1us; 17353us; 18us; 1706us; 0us; 16600us; 34us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 16627us; 130us; 479us; 1us; 32768us; 69us; 430us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 17353us; 18us; 1706us; 0us; 16601us; 1us; 16496us; 72us; 199us; 0us; 16602us; 1us; 17367us; 116us; 1712us; 3us; 16610us; 41us; 459us; 42us; 458us; 43us; 460us; 1us; 32768us; 188us; 1628us; 1us; 32768us; 77us; 439us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16603us; 1us; 17367us; 116us; 1712us; 3us; 16610us; 41us; 459us; 42us; 458us; 43us; 460us; 1us; 32768us; 188us; 1628us; 1us; 16605us; 77us; 449us; 1us; 32768us; 69us; 446us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 2us; 16543us; 25us; 290us; 86us; 288us; 0us; 16604us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16606us; 1us; 32768us; 76us; 452us; 3us; 32768us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 0us; 16607us; 0us; 16608us; 3us; 32768us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 0us; 16609us; 0us; 16611us; 0us; 16612us; 0us; 16613us; 0us; 16614us; 0us; 16615us; 2us; 16496us; 21us; 485us; 72us; 199us; 3us; 32768us; 18us; 1700us; 19us; 1701us; 140us; 1702us; 0us; 16617us; 6us; 16496us; 18us; 16580us; 19us; 16580us; 21us; 366us; 72us; 199us; 140us; 16580us; 192us; 372us; 3us; 32768us; 18us; 1700us; 19us; 1701us; 140us; 1702us; 0us; 16619us; 5us; 16496us; 18us; 16534us; 19us; 16534us; 21us; 270us; 72us; 199us; 140us; 16534us; 3us; 32768us; 18us; 1700us; 19us; 1701us; 140us; 1702us; 0us; 16621us; 36us; 32768us; 10us; 926us; 15us; 1758us; 35us; 1754us; 37us; 1755us; 44us; 1629us; 59us; 1756us; 66us; 1522us; 87us; 1555us; 90us; 1622us; 91us; 1509us; 93us; 1757us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 913us; 29us; 16630us; 33us; 1725us; 34us; 1724us; 71us; 17381us; 73us; 17381us; 91us; 17381us; 105us; 17381us; 120us; 17381us; 130us; 482us; 134us; 17381us; 145us; 17381us; 152us; 17381us; 162us; 17381us; 163us; 17381us; 164us; 17381us; 165us; 17381us; 166us; 17381us; 167us; 17381us; 168us; 17381us; 169us; 17381us; 170us; 17381us; 171us; 17381us; 172us; 17381us; 173us; 17381us; 174us; 17381us; 176us; 17381us; 177us; 17381us; 189us; 17381us; 190us; 17381us; 191us; 17381us; 0us; 16623us; 26us; 32768us; 71us; 1279us; 73us; 1313us; 91us; 1285us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 16630us; 130us; 482us; 0us; 16624us; 0us; 16625us; 0us; 16626us; 1us; 32768us; 188us; 1628us; 0us; 16628us; 0us; 16629us; 2us; 32768us; 151us; 484us; 188us; 1628us; 0us; 16631us; 0us; 16632us; 1us; 16496us; 72us; 199us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16633us; 0us; 16634us; 0us; 16635us; 2us; 17359us; 20us; 1696us; 83us; 1697us; 14us; 16496us; 10us; 16637us; 13us; 16637us; 14us; 16637us; 15us; 16637us; 16us; 16637us; 18us; 16637us; 19us; 16637us; 20us; 16637us; 58us; 16637us; 59us; 16637us; 60us; 16637us; 72us; 199us; 110us; 16637us; 140us; 16637us; 0us; 16636us; 3us; 32768us; 46us; 504us; 49us; 505us; 192us; 501us; 4us; 17365us; 46us; 504us; 49us; 505us; 109us; 1711us; 192us; 501us; 3us; 17365us; 108us; 441us; 109us; 1711us; 192us; 500us; 1us; 17353us; 18us; 1706us; 0us; 16638us; 1us; 17353us; 18us; 1706us; 0us; 16639us; 0us; 16640us; 1us; 17365us; 109us; 1711us; 1us; 17353us; 18us; 1706us; 0us; 16641us; 0us; 16642us; 0us; 16643us; 3us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 32us; 32768us; 44us; 1629us; 56us; 602us; 66us; 1523us; 73us; 518us; 87us; 1555us; 90us; 1622us; 91us; 515us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 2us; 17202us; 76us; 1631us; 152us; 509us; 1us; 32768us; 190us; 510us; 2us; 32768us; 10us; 926us; 192us; 913us; 0us; 16644us; 0us; 16645us; 0us; 16646us; 0us; 16647us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 524us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1569us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 16648us; 2us; 16496us; 72us; 199us; 192us; 522us; 5us; 32768us; 10us; 926us; 58us; 1740us; 59us; 1737us; 60us; 1739us; 192us; 913us; 0us; 16649us; 0us; 16650us; 3us; 32768us; 58us; 1740us; 59us; 1737us; 60us; 1739us; 0us; 16651us; 29us; 32768us; 44us; 1629us; 66us; 1558us; 87us; 1555us; 90us; 1622us; 91us; 1559us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 16785us; 87us; 1723us; 0us; 16652us; 0us; 16653us; 0us; 16654us; 0us; 16655us; 0us; 16656us; 0us; 16657us; 5us; 32768us; 44us; 1629us; 90us; 1622us; 91us; 538us; 185us; 1625us; 188us; 1628us; 3us; 16658us; 32us; 1726us; 76us; 1631us; 157us; 17383us; 2us; 32768us; 44us; 1629us; 188us; 1628us; 1us; 16659us; 76us; 1631us; 0us; 16660us; 0us; 16661us; 1us; 16496us; 72us; 199us; 4us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 96us; 543us; 0us; 16662us; 2us; 16675us; 84us; 561us; 96us; 543us; 1us; 16668us; 96us; 544us; 1us; 16496us; 72us; 199us; 2us; 16496us; 72us; 199us; 141us; 553us; 0us; 16663us; 0us; 16664us; 2us; 32768us; 90us; 1622us; 185us; 1625us; 0us; 16665us; 1us; 32768us; 157us; 550us; 1us; 16496us; 72us; 199us; 1us; 32768us; 158us; 552us; 0us; 16666us; 0us; 16667us; 1us; 32768us; 157us; 555us; 3us; 16496us; 72us; 199us; 84us; 16669us; 158us; 16669us; 1us; 16675us; 84us; 561us; 1us; 32768us; 158us; 558us; 0us; 16670us; 0us; 16671us; 27us; 16673us; 10us; 16811us; 15us; 16811us; 20us; 16811us; 25us; 16811us; 35us; 16811us; 37us; 16811us; 56us; 16811us; 57us; 16811us; 58us; 16811us; 59us; 16811us; 60us; 16811us; 64us; 16811us; 69us; 16811us; 77us; 16811us; 78us; 16811us; 83us; 16811us; 84us; 16811us; 86us; 16811us; 88us; 16811us; 92us; 16811us; 93us; 16811us; 94us; 16811us; 96us; 16811us; 97us; 16811us; 125us; 16811us; 130us; 16811us; 192us; 16811us; 4us; 32768us; 50us; 568us; 90us; 1622us; 91us; 583us; 185us; 1625us; 1us; 16676us; 129us; 565us; 1us; 17174us; 129us; 565us; 1us; 17176us; 129us; 565us; 4us; 32768us; 50us; 568us; 90us; 1622us; 91us; 583us; 185us; 1625us; 0us; 16677us; 0us; 16678us; 2us; 32768us; 90us; 1622us; 185us; 1625us; 1us; 32768us; 77us; 570us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16679us; 2us; 32768us; 77us; 575us; 79us; 573us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16680us; 5us; 32768us; 54us; 576us; 91us; 580us; 145us; 579us; 149us; 590us; 188us; 577us; 0us; 16681us; 3us; 16688us; 32us; 1578us; 54us; 578us; 157us; 1580us; 0us; 16682us; 0us; 16683us; 1us; 16496us; 72us; 199us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 16684us; 2us; 32768us; 90us; 1622us; 185us; 1625us; 4us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 101us; 593us; 1us; 32768us; 77us; 586us; 1us; 32768us; 91us; 587us; 1us; 16496us; 72us; 199us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 16685us; 2us; 32768us; 32us; 1578us; 157us; 1580us; 0us; 16686us; 0us; 16687us; 2us; 32768us; 90us; 1622us; 185us; 1625us; 0us; 16689us; 0us; 16690us; 1us; 16496us; 72us; 199us; 0us; 16691us; 1us; 32768us; 56us; 602us; 1us; 16496us; 72us; 199us; 0us; 16692us; 2us; 16693us; 20us; 1708us; 56us; 17357us; 0us; 16694us; 1us; 16696us; 56us; 602us; 1us; 16496us; 72us; 199us; 0us; 16695us; 3us; 16610us; 41us; 459us; 42us; 458us; 43us; 460us; 3us; 32768us; 91us; 620us; 99us; 1639us; 188us; 1628us; 4us; 17357us; 20us; 1708us; 69us; 616us; 77us; 613us; 118us; 610us; 0us; 16697us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 73us; 518us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 17357us; 20us; 1708us; 0us; 16698us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 17357us; 20us; 1708us; 0us; 16699us; 18us; 32768us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 17357us; 20us; 1708us; 0us; 16700us; 0us; 16701us; 29us; 32768us; 56us; 1674us; 61us; 1656us; 62us; 1654us; 69us; 1658us; 70us; 623us; 74us; 1662us; 78us; 621us; 82us; 1666us; 88us; 1663us; 89us; 1664us; 95us; 1657us; 101us; 1659us; 141us; 1669us; 142us; 1665us; 152us; 1671us; 155us; 1668us; 157us; 1660us; 158us; 1661us; 178us; 1667us; 179us; 1655us; 180us; 1652us; 181us; 1651us; 182us; 1653us; 183us; 1646us; 184us; 1650us; 185us; 1649us; 186us; 1648us; 187us; 1647us; 192us; 1637us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 16702us; 1us; 32768us; 57us; 624us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 16703us; 4us; 17284us; 20us; 1708us; 56us; 17357us; 69us; 628us; 118us; 632us; 0us; 16704us; 18us; 32768us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 17357us; 20us; 1708us; 45us; 16705us; 10us; 16708us; 13us; 16708us; 14us; 16708us; 15us; 16708us; 16us; 16708us; 18us; 16708us; 19us; 16708us; 20us; 16708us; 29us; 16708us; 31us; 16708us; 35us; 16708us; 36us; 16708us; 37us; 16708us; 38us; 16708us; 39us; 16708us; 41us; 16708us; 42us; 16708us; 43us; 16708us; 45us; 16708us; 46us; 16708us; 48us; 16708us; 49us; 16708us; 50us; 16708us; 52us; 16708us; 67us; 16708us; 72us; 16708us; 83us; 16708us; 86us; 16708us; 87us; 16708us; 92us; 16708us; 93us; 16708us; 94us; 16708us; 100us; 16708us; 107us; 16708us; 108us; 16708us; 110us; 16708us; 117us; 16708us; 119us; 16708us; 129us; 16708us; 135us; 16708us; 140us; 16708us; 147us; 16708us; 148us; 16708us; 159us; 16708us; 192us; 16708us; 0us; 16706us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 73us; 518us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16707us; 0us; 16709us; 7us; 16711us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 95us; 636us; 185us; 1625us; 188us; 1628us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16710us; 2us; 17359us; 20us; 1696us; 83us; 1697us; 6us; 16496us; 10us; 17358us; 58us; 17358us; 59us; 17358us; 60us; 17358us; 72us; 199us; 192us; 17358us; 0us; 16712us; 0us; 16713us; 1us; 17367us; 116us; 1712us; 0us; 16714us; 3us; 16610us; 41us; 459us; 42us; 458us; 43us; 460us; 1us; 32768us; 188us; 1628us; 1us; 32768us; 77us; 647us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16715us; 1us; 16620us; 86us; 465us; 0us; 16716us; 1us; 16622us; 86us; 468us; 0us; 16717us; 0us; 16718us; 1us; 16496us; 72us; 199us; 3us; 16610us; 41us; 459us; 42us; 458us; 43us; 460us; 1us; 32768us; 188us; 1628us; 1us; 16722us; 69us; 662us; 0us; 16719us; 1us; 16720us; 118us; 660us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 73us; 518us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16721us; 2us; 32768us; 44us; 1629us; 188us; 1628us; 1us; 16723us; 76us; 1631us; 2us; 32768us; 44us; 1629us; 188us; 1628us; 1us; 16724us; 76us; 1631us; 1us; 17361us; 102us; 1710us; 2us; 16496us; 72us; 199us; 192us; 720us; 0us; 16725us; 0us; 16726us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16727us; 1us; 17361us; 102us; 1710us; 2us; 16496us; 72us; 199us; 192us; 720us; 3us; 32768us; 10us; 926us; 18us; 683us; 192us; 913us; 0us; 16728us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 3us; 32768us; 10us; 926us; 18us; 683us; 192us; 913us; 0us; 16729us; 0us; 16730us; 0us; 16731us; 0us; 16732us; 0us; 16733us; 0us; 16734us; 0us; 16735us; 1us; 16496us; 72us; 199us; 3us; 16610us; 41us; 459us; 42us; 458us; 43us; 460us; 1us; 32768us; 188us; 1628us; 2us; 17381us; 33us; 1725us; 34us; 1724us; 1us; 32768us; 91us; 690us; 4us; 16496us; 72us; 199us; 92us; 16739us; 93us; 16739us; 94us; 16739us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 16736us; 1us; 16737us; 96us; 695us; 1us; 16738us; 96us; 697us; 1us; 16496us; 72us; 199us; 0us; 16740us; 1us; 16496us; 72us; 199us; 0us; 16741us; 3us; 32768us; 40us; 709us; 44us; 1629us; 188us; 1628us; 6us; 16742us; 33us; 1725us; 34us; 1724us; 70us; 17381us; 88us; 708us; 95us; 707us; 188us; 1628us; 0us; 16743us; 1us; 16744us; 76us; 1631us; 5us; 16749us; 33us; 1725us; 34us; 1724us; 70us; 17381us; 88us; 708us; 95us; 707us; 1us; 32768us; 70us; 705us; 1us; 32768us; 57us; 706us; 0us; 16745us; 0us; 16746us; 0us; 16747us; 1us; 32768us; 95us; 711us; 1us; 16750us; 95us; 711us; 0us; 16748us; 3us; 32768us; 40us; 710us; 44us; 1629us; 188us; 1628us; 1us; 16753us; 129us; 715us; 0us; 16751us; 2us; 16496us; 72us; 199us; 192us; 720us; 1us; 16753us; 129us; 715us; 0us; 16752us; 1us; 17365us; 109us; 1711us; 0us; 16754us; 0us; 16755us; 1us; 17367us; 116us; 1712us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 17177us; 77us; 1448us; 3us; 32768us; 10us; 926us; 69us; 725us; 192us; 913us; 68us; 32768us; 21us; 729us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 727us; 0us; 16756us; 0us; 16757us; 0us; 16758us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16759us; 0us; 16760us; 0us; 16761us; 0us; 16764us; 1us; 16762us; 84us; 737us; 0us; 16763us; 2us; 32768us; 90us; 1622us; 185us; 1625us; 2us; 32768us; 69us; 739us; 129us; 741us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16765us; 2us; 32768us; 90us; 1622us; 185us; 1625us; 0us; 16766us; 0us; 16767us; 2us; 32768us; 54us; 747us; 77us; 745us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16768us; 0us; 16769us; 0us; 16770us; 0us; 16771us; 0us; 16772us; 0us; 16773us; 0us; 16774us; 0us; 16775us; 0us; 16776us; 0us; 16777us; 0us; 16778us; 0us; 16779us; 0us; 16780us; 0us; 16781us; 0us; 16782us; 1us; 16782us; 141us; 824us; 0us; 16783us; 0us; 16784us; 0us; 16785us; 0us; 16786us; 1us; 16787us; 32us; 767us; 1us; 32768us; 157us; 1597us; 0us; 16788us; 5us; 16789us; 56us; 798us; 78us; 799us; 88us; 806us; 96us; 804us; 130us; 796us; 0us; 16790us; 1us; 32768us; 188us; 1628us; 0us; 16791us; 1us; 16793us; 77us; 775us; 2us; 16794us; 77us; 775us; 96us; 778us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16792us; 3us; 32768us; 72us; 199us; 74us; 771us; 188us; 1628us; 3us; 32768us; 72us; 199us; 74us; 771us; 188us; 1628us; 0us; 16795us; 8us; 32768us; 10us; 926us; 72us; 199us; 74us; 771us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 188us; 1628us; 192us; 785us; 5us; 32768us; 10us; 926us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 192us; 913us; 0us; 16796us; 0us; 16797us; 0us; 16798us; 3us; 16873us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 16799us; 0us; 16800us; 3us; 16802us; 78us; 799us; 88us; 806us; 96us; 804us; 1us; 16803us; 78us; 799us; 2us; 16807us; 78us; 799us; 88us; 806us; 2us; 16808us; 78us; 799us; 88us; 806us; 1us; 16809us; 78us; 799us; 1us; 16810us; 78us; 799us; 6us; 32768us; 56us; 798us; 69us; 1002us; 78us; 799us; 88us; 806us; 96us; 804us; 130us; 796us; 6us; 32768us; 56us; 798us; 69us; 1008us; 78us; 799us; 88us; 806us; 96us; 804us; 130us; 796us; 1us; 32768us; 188us; 1628us; 0us; 16801us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 16804us; 96us; 803us; 0us; 16805us; 0us; 16806us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 29us; 16674us; 10us; 16828us; 15us; 16828us; 20us; 16828us; 25us; 16828us; 32us; 1726us; 35us; 16828us; 37us; 16828us; 56us; 16828us; 57us; 16828us; 58us; 16828us; 59us; 16828us; 60us; 16828us; 64us; 16828us; 69us; 16828us; 77us; 16828us; 78us; 16828us; 83us; 16828us; 84us; 16828us; 86us; 16828us; 88us; 16828us; 92us; 16828us; 93us; 16828us; 94us; 16828us; 96us; 16828us; 97us; 16828us; 125us; 16828us; 130us; 16828us; 157us; 17383us; 192us; 16828us; 36us; 32768us; 33us; 810us; 34us; 812us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16812us; 34us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16813us; 34us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16814us; 29us; 32768us; 44us; 1629us; 66us; 1558us; 87us; 1555us; 90us; 1622us; 91us; 1559us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 16815us; 76us; 1572us; 0us; 16816us; 36us; 16820us; 33us; 821us; 34us; 819us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16817us; 34us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16818us; 34us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16819us; 0us; 16821us; 1us; 32768us; 164us; 825us; 0us; 16822us; 2us; 32768us; 44us; 1629us; 188us; 1628us; 3us; 32768us; 58us; 1740us; 59us; 1737us; 60us; 1739us; 0us; 16823us; 36us; 16855us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 32768us; 57us; 831us; 0us; 16824us; 36us; 16855us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 32768us; 64us; 834us; 0us; 16825us; 0us; 16826us; 1us; 32768us; 188us; 1628us; 1us; 17308us; 188us; 1628us; 0us; 16827us; 0us; 16828us; 0us; 16829us; 0us; 16830us; 0us; 16831us; 0us; 16832us; 62us; 16838us; 10us; 926us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 56us; 1674us; 61us; 1656us; 62us; 1654us; 66us; 835us; 69us; 1658us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 837us; 81us; 814us; 82us; 1666us; 88us; 1663us; 89us; 1664us; 91us; 844us; 95us; 1657us; 99us; 1639us; 101us; 1659us; 105us; 842us; 120us; 841us; 141us; 1669us; 142us; 1665us; 145us; 843us; 152us; 1273us; 155us; 1668us; 157us; 1660us; 158us; 1661us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 178us; 1667us; 179us; 1655us; 180us; 1652us; 181us; 1651us; 182us; 1653us; 183us; 1646us; 184us; 1650us; 185us; 1649us; 186us; 1648us; 187us; 1647us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 848us; 5us; 32768us; 10us; 926us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 192us; 913us; 0us; 16833us; 0us; 16834us; 3us; 16873us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 2us; 16835us; 32us; 17288us; 157us; 17288us; 0us; 16836us; 6us; 16837us; 56us; 865us; 77us; 868us; 78us; 871us; 88us; 876us; 96us; 874us; 130us; 863us; 4us; 16840us; 77us; 868us; 78us; 871us; 88us; 876us; 96us; 874us; 3us; 16844us; 77us; 868us; 78us; 871us; 88us; 876us; 2us; 16845us; 77us; 868us; 78us; 871us; 3us; 16847us; 77us; 868us; 78us; 871us; 88us; 876us; 3us; 16848us; 77us; 868us; 78us; 871us; 88us; 876us; 2us; 16849us; 77us; 868us; 78us; 871us; 2us; 16850us; 77us; 868us; 78us; 871us; 6us; 16854us; 56us; 865us; 77us; 868us; 78us; 871us; 88us; 876us; 96us; 874us; 130us; 863us; 8us; 17359us; 20us; 1696us; 56us; 865us; 77us; 868us; 78us; 871us; 83us; 1697us; 88us; 876us; 96us; 874us; 130us; 863us; 15us; 32768us; 10us; 926us; 15us; 1758us; 35us; 1754us; 37us; 1755us; 56us; 865us; 59us; 1756us; 69us; 1335us; 77us; 868us; 78us; 871us; 88us; 876us; 93us; 1757us; 96us; 874us; 125us; 1331us; 130us; 863us; 192us; 918us; 7us; 16990us; 56us; 865us; 77us; 868us; 78us; 871us; 84us; 1135us; 88us; 876us; 96us; 874us; 130us; 863us; 1us; 32768us; 188us; 1628us; 0us; 16839us; 36us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 16841us; 96us; 873us; 1us; 16842us; 88us; 875us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16843us; 36us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 36us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16846us; 36us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 36us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 36us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 36us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16851us; 2us; 17359us; 20us; 1696us; 83us; 1697us; 0us; 16852us; 2us; 17358us; 44us; 1629us; 188us; 1628us; 0us; 16853us; 2us; 32768us; 69us; 883us; 76us; 1631us; 36us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16856us; 36us; 16855us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16857us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16858us; 0us; 16859us; 0us; 16860us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 3us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 0us; 16861us; 25us; 16862us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 1us; 16864us; 17us; 897us; 0us; 16863us; 1us; 16866us; 77us; 899us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16865us; 29us; 16869us; 20us; 1696us; 27us; 908us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 83us; 1697us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 103us; 906us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 30us; 16869us; 20us; 1696us; 27us; 908us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 83us; 1697us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 103us; 906us; 126us; 1072us; 141us; 1253us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 30us; 16869us; 20us; 1696us; 27us; 908us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 83us; 1697us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 103us; 906us; 126us; 1072us; 141us; 1326us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 66us; 16868us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16867us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16870us; 1us; 32768us; 21us; 909us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 3us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 0us; 16871us; 69us; 16872us; 20us; 934us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 933us; 0us; 16873us; 2us; 16873us; 18us; 1716us; 136us; 1715us; 2us; 16873us; 18us; 1716us; 136us; 1715us; 2us; 16873us; 18us; 1716us; 136us; 1715us; 2us; 16873us; 29us; 1714us; 135us; 1713us; 2us; 16873us; 18us; 1716us; 136us; 1715us; 1us; 16873us; 57us; 1224us; 1us; 16873us; 57us; 1240us; 1us; 16873us; 153us; 1277us; 1us; 16873us; 64us; 1283us; 3us; 16873us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 3us; 16873us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 3us; 16873us; 58us; 1740us; 59us; 1737us; 60us; 1739us; 0us; 16874us; 1us; 32768us; 125us; 928us; 67us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 930us; 0us; 16875us; 0us; 16876us; 69us; 32768us; 20us; 934us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 933us; 0us; 16877us; 0us; 16878us; 68us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 936us; 0us; 16879us; 0us; 16880us; 0us; 16881us; 0us; 16882us; 0us; 16883us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 4us; 32768us; 10us; 926us; 25us; 1118us; 86us; 1116us; 192us; 913us; 0us; 16884us; 0us; 16885us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 5us; 32768us; 10us; 926us; 25us; 1118us; 86us; 1116us; 127us; 948us; 192us; 913us; 0us; 16886us; 0us; 16887us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16888us; 68us; 32768us; 10us; 926us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 913us; 29us; 32768us; 10us; 926us; 27us; 1141us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 103us; 1140us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 192us; 913us; 0us; 16889us; 0us; 16890us; 0us; 16891us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16892us; 58us; 16894us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 156us; 1001us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16893us; 67us; 32768us; 21us; 892us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16895us; 59us; 16897us; 21us; 892us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 156us; 1001us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16896us; 68us; 32768us; 10us; 926us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 914us; 29us; 32768us; 10us; 926us; 29us; 1714us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 135us; 1713us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 192us; 913us; 68us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 969us; 4us; 32768us; 10us; 926us; 18us; 1716us; 136us; 1715us; 192us; 913us; 0us; 16898us; 0us; 16899us; 2us; 32768us; 18us; 1716us; 136us; 1715us; 0us; 16900us; 0us; 16901us; 0us; 16902us; 0us; 16903us; 43us; 32768us; 10us; 926us; 15us; 1758us; 35us; 1754us; 37us; 1755us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 59us; 1756us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 93us; 1757us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 917us; 10us; 17357us; 10us; 926us; 15us; 1758us; 20us; 1708us; 29us; 1714us; 35us; 1754us; 37us; 1755us; 59us; 1756us; 93us; 1757us; 135us; 1713us; 192us; 913us; 74us; 32768us; 10us; 926us; 15us; 1758us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1754us; 37us; 1755us; 39us; 685us; 44us; 1218us; 59us; 1756us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 93us; 1757us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 915us; 9us; 32768us; 10us; 926us; 15us; 1758us; 18us; 1716us; 35us; 1754us; 37us; 1755us; 59us; 1756us; 93us; 1757us; 136us; 1715us; 192us; 913us; 0us; 16904us; 0us; 16905us; 0us; 16906us; 0us; 16907us; 0us; 16908us; 4us; 32768us; 10us; 926us; 29us; 1714us; 135us; 1713us; 192us; 913us; 69us; 32768us; 10us; 926us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 916us; 4us; 32768us; 10us; 926us; 18us; 1716us; 136us; 1715us; 192us; 913us; 0us; 16909us; 0us; 16910us; 0us; 16911us; 0us; 16912us; 0us; 16913us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 2us; 32768us; 18us; 1716us; 136us; 1715us; 0us; 16914us; 0us; 16915us; 0us; 16916us; 0us; 16917us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 25us; 16918us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 25us; 16919us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 32768us; 125us; 1004us; 1us; 17357us; 20us; 1708us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16920us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 3us; 32768us; 10us; 926us; 18us; 683us; 192us; 913us; 1us; 17357us; 20us; 1708us; 68us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1013us; 0us; 16921us; 0us; 16922us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 32768us; 125us; 1016us; 1us; 17357us; 20us; 1708us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16923us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 3us; 32768us; 10us; 926us; 18us; 683us; 192us; 913us; 0us; 16924us; 1us; 32768us; 97us; 1329us; 0us; 16925us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16926us; 25us; 16930us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 20us; 16933us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 20us; 16934us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 9us; 16935us; 61us; 1088us; 78us; 1086us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 180us; 1087us; 182us; 1090us; 185us; 1084us; 187us; 1091us; 20us; 16936us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 18us; 16937us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 18us; 16938us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 9us; 16939us; 61us; 1088us; 78us; 1086us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 180us; 1087us; 182us; 1090us; 185us; 1084us; 187us; 1091us; 9us; 16940us; 61us; 1088us; 78us; 1086us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 180us; 1087us; 182us; 1090us; 185us; 1084us; 187us; 1091us; 9us; 16941us; 61us; 1088us; 78us; 1086us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 180us; 1087us; 182us; 1090us; 185us; 1084us; 187us; 1091us; 9us; 16942us; 61us; 1088us; 78us; 1086us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 180us; 1087us; 182us; 1090us; 185us; 1084us; 187us; 1091us; 9us; 16943us; 61us; 1088us; 78us; 1086us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 180us; 1087us; 182us; 1090us; 185us; 1084us; 187us; 1091us; 9us; 16944us; 61us; 1088us; 78us; 1086us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 180us; 1087us; 182us; 1090us; 185us; 1084us; 187us; 1091us; 9us; 16945us; 61us; 1088us; 78us; 1086us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 180us; 1087us; 182us; 1090us; 185us; 1084us; 187us; 1091us; 1us; 16946us; 187us; 1091us; 8us; 16947us; 61us; 1088us; 78us; 1086us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 180us; 1087us; 182us; 1090us; 187us; 1091us; 4us; 16948us; 95us; 1089us; 155us; 1085us; 182us; 1090us; 187us; 1091us; 4us; 16949us; 95us; 1089us; 155us; 1085us; 182us; 1090us; 187us; 1091us; 1us; 16950us; 187us; 1091us; 1us; 16951us; 187us; 1091us; 1us; 16952us; 187us; 1091us; 25us; 16989us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 25us; 16993us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 25us; 16997us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 29us; 32768us; 10us; 926us; 27us; 1141us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 103us; 1140us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 192us; 913us; 23us; 17002us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 23us; 17005us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 26us; 32768us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 141us; 1253us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 24us; 17050us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 24us; 17052us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 26us; 17107us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 141us; 1326us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 26us; 17103us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 141us; 1327us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 25us; 17104us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 27us; 32768us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 104us; 1419us; 126us; 1072us; 137us; 1420us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 25us; 17111us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16927us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16928us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16929us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 16973us; 68us; 1069us; 67us; 32768us; 21us; 892us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16931us; 1us; 16932us; 96us; 1155us; 67us; 32768us; 15us; 1092us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1093us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1094us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1095us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1096us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1097us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1098us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1099us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1100us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1101us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1102us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1103us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1104us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1105us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1106us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1107us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1108us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1109us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1110us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1111us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16953us; 0us; 16954us; 0us; 16955us; 0us; 16956us; 0us; 16957us; 0us; 16958us; 0us; 16959us; 0us; 16960us; 0us; 16961us; 0us; 16962us; 0us; 16963us; 0us; 16964us; 0us; 16965us; 0us; 16966us; 0us; 16967us; 0us; 16968us; 0us; 16969us; 0us; 16970us; 0us; 16971us; 0us; 16972us; 0us; 16974us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 16975us; 38us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 56us; 1123us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1126us; 0us; 16976us; 38us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 56us; 1123us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1126us; 3us; 32768us; 10us; 926us; 19us; 1120us; 192us; 913us; 0us; 16977us; 0us; 16978us; 0us; 16979us; 37us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1125us; 0us; 16980us; 0us; 16981us; 0us; 16982us; 0us; 16983us; 2us; 32768us; 97us; 1136us; 192us; 1134us; 2us; 16984us; 56us; 1130us; 192us; 1133us; 37us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1132us; 0us; 16985us; 0us; 16986us; 0us; 16987us; 0us; 16988us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16991us; 3us; 16996us; 26us; 1147us; 138us; 1146us; 139us; 1152us; 0us; 16992us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 32768us; 21us; 1142us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16994us; 0us; 16995us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 32768us; 21us; 1148us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16998us; 0us; 16999us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17000us; 0us; 17001us; 73us; 32768us; 10us; 926us; 15us; 1758us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1754us; 37us; 1755us; 39us; 685us; 44us; 1218us; 59us; 1756us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 93us; 1757us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 913us; 0us; 17003us; 73us; 32768us; 10us; 926us; 15us; 1758us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1754us; 37us; 1755us; 39us; 685us; 44us; 1218us; 59us; 1756us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 93us; 1757us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 913us; 0us; 17004us; 42us; 32768us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 42us; 17302us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17006us; 42us; 32768us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 42us; 17298us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17007us; 42us; 32768us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 42us; 17301us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17008us; 42us; 32768us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 42us; 17314us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17009us; 42us; 32768us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 42us; 17309us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17010us; 42us; 32768us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 42us; 17310us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17011us; 30us; 32768us; 44us; 1629us; 66us; 1522us; 87us; 1555us; 90us; 1622us; 91us; 1509us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1186us; 30us; 32768us; 44us; 1629us; 66us; 1522us; 87us; 1555us; 90us; 1622us; 91us; 1509us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1186us; 2us; 17381us; 33us; 1725us; 34us; 1724us; 33us; 17147us; 13us; 17150us; 20us; 17150us; 25us; 17150us; 33us; 1725us; 34us; 1724us; 71us; 17381us; 73us; 17381us; 86us; 17150us; 91us; 17381us; 105us; 17381us; 110us; 17150us; 120us; 17381us; 134us; 17381us; 145us; 17381us; 152us; 17381us; 162us; 17381us; 163us; 17381us; 164us; 17381us; 165us; 17381us; 166us; 17381us; 167us; 17381us; 168us; 17381us; 169us; 17381us; 170us; 17381us; 171us; 17381us; 172us; 17381us; 173us; 17381us; 174us; 17381us; 176us; 17381us; 177us; 17381us; 189us; 17381us; 190us; 17381us; 191us; 17381us; 27us; 32768us; 71us; 1279us; 73us; 1313us; 91us; 1285us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1185us; 27us; 32768us; 71us; 1279us; 73us; 1313us; 91us; 1285us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1185us; 0us; 17012us; 5us; 17012us; 13us; 17149us; 25us; 17149us; 86us; 17149us; 110us; 17149us; 130us; 482us; 0us; 17013us; 0us; 17014us; 42us; 32768us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17015us; 42us; 32768us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17016us; 34us; 17017us; 44us; 1218us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1195us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 37us; 17017us; 25us; 1372us; 44us; 1218us; 69us; 1359us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 86us; 1368us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1195us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17018us; 5us; 17019us; 32us; 1204us; 33us; 1203us; 34us; 1202us; 74us; 1216us; 76us; 1208us; 33us; 32768us; 44us; 1218us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 5us; 17020us; 32us; 1204us; 33us; 1203us; 34us; 1202us; 74us; 1216us; 76us; 1208us; 5us; 17021us; 32us; 1204us; 33us; 1203us; 34us; 1202us; 74us; 1216us; 76us; 1208us; 2us; 17022us; 32us; 1204us; 33us; 1203us; 1us; 17023us; 32us; 1204us; 5us; 17025us; 32us; 1204us; 33us; 1203us; 34us; 1202us; 74us; 1216us; 76us; 1208us; 5us; 17241us; 32us; 1204us; 33us; 1203us; 34us; 1202us; 74us; 1216us; 76us; 1208us; 33us; 32768us; 44us; 1218us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 33us; 32768us; 44us; 1218us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 32768us; 157us; 1580us; 0us; 17024us; 33us; 32768us; 44us; 1218us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 33us; 17292us; 44us; 1218us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 6us; 17038us; 10us; 926us; 70us; 1236us; 91us; 1229us; 99us; 1639us; 188us; 1628us; 192us; 913us; 0us; 17026us; 1us; 32768us; 76us; 1211us; 6us; 17038us; 10us; 926us; 70us; 1236us; 91us; 1229us; 99us; 1639us; 188us; 1628us; 192us; 913us; 0us; 17027us; 3us; 32768us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 3us; 17308us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 0us; 17028us; 2us; 32768us; 91us; 1113us; 188us; 1112us; 0us; 17029us; 0us; 17030us; 0us; 17031us; 68us; 17100us; 10us; 926us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 919us; 3us; 32768us; 10us; 926us; 57us; 1222us; 192us; 913us; 0us; 17032us; 0us; 17033us; 0us; 17034us; 0us; 17035us; 0us; 17036us; 0us; 17037us; 0us; 17039us; 85us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 56us; 1674us; 61us; 1160us; 62us; 1654us; 69us; 1658us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1214us; 78us; 1230us; 82us; 1666us; 85us; 963us; 88us; 1172us; 89us; 1175us; 91us; 1287us; 95us; 1657us; 97us; 1024us; 99us; 1639us; 101us; 1659us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 141us; 1669us; 142us; 1665us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1273us; 155us; 1169us; 156us; 1001us; 157us; 1660us; 158us; 1661us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 178us; 1667us; 179us; 1166us; 180us; 1163us; 181us; 1651us; 182us; 1653us; 183us; 1207us; 184us; 1650us; 185us; 1649us; 186us; 1648us; 187us; 1647us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1637us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 1us; 32768us; 76us; 1232us; 1us; 32768us; 174us; 1233us; 0us; 17040us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 17041us; 70us; 32768us; 10us; 926us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 95us; 1255us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 141us; 1254us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 920us; 3us; 32768us; 10us; 926us; 57us; 1238us; 192us; 913us; 0us; 17042us; 0us; 17043us; 0us; 17044us; 0us; 17045us; 2us; 32768us; 57us; 1243us; 96us; 1244us; 0us; 17046us; 68us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 95us; 1255us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 141us; 1254us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 2us; 32768us; 57us; 1246us; 96us; 1247us; 0us; 17047us; 68us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 95us; 1255us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 141us; 1254us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 2us; 32768us; 57us; 1249us; 96us; 1250us; 0us; 17048us; 68us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 95us; 1255us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 141us; 1254us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 32768us; 57us; 1252us; 0us; 17049us; 66us; 17051us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17053us; 0us; 17054us; 0us; 17055us; 0us; 17056us; 0us; 17057us; 0us; 17058us; 0us; 17059us; 0us; 17060us; 0us; 17061us; 0us; 17062us; 68us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 140us; 1271us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1269us; 3us; 32768us; 10us; 926us; 140us; 1267us; 192us; 913us; 0us; 17063us; 0us; 17064us; 1us; 32768us; 140us; 1270us; 0us; 17065us; 0us; 17066us; 68us; 32768us; 10us; 926us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 921us; 69us; 32768us; 10us; 926us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 153us; 1672us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 921us; 3us; 32768us; 10us; 926us; 153us; 1275us; 192us; 913us; 0us; 17067us; 0us; 17068us; 0us; 17069us; 0us; 17070us; 68us; 17100us; 10us; 926us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 922us; 3us; 32768us; 10us; 926us; 64us; 1281us; 192us; 913us; 0us; 17071us; 0us; 17072us; 0us; 17073us; 0us; 17074us; 77us; 32768us; 10us; 926us; 15us; 1297us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1294us; 37us; 1295us; 39us; 685us; 44us; 1218us; 59us; 1296us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 87us; 1337us; 88us; 1171us; 89us; 1174us; 91us; 1286us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 923us; 93us; 32768us; 10us; 926us; 15us; 1297us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1294us; 37us; 1295us; 39us; 685us; 44us; 1218us; 56us; 1674us; 59us; 1296us; 61us; 1160us; 62us; 1654us; 69us; 1658us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1214us; 82us; 1666us; 85us; 963us; 87us; 1337us; 88us; 1172us; 89us; 1175us; 91us; 1286us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 95us; 1657us; 97us; 1024us; 99us; 1639us; 101us; 1659us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 141us; 1669us; 142us; 1665us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1273us; 155us; 1169us; 156us; 1001us; 157us; 1660us; 158us; 1661us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 178us; 1667us; 179us; 1166us; 180us; 1163us; 181us; 1651us; 182us; 1653us; 183us; 1207us; 184us; 1650us; 185us; 1626us; 186us; 1648us; 187us; 1647us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 924us; 93us; 32768us; 10us; 926us; 15us; 1297us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1294us; 37us; 1295us; 39us; 685us; 44us; 1218us; 56us; 1674us; 59us; 1296us; 61us; 1160us; 62us; 1654us; 69us; 1658us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1214us; 82us; 1666us; 85us; 963us; 87us; 1337us; 88us; 1172us; 89us; 1175us; 91us; 1286us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 95us; 1657us; 97us; 1024us; 99us; 1639us; 101us; 1659us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 141us; 1669us; 142us; 1665us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1273us; 155us; 1169us; 156us; 1001us; 157us; 1660us; 158us; 1661us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 178us; 1667us; 179us; 1166us; 180us; 1163us; 181us; 1651us; 182us; 1653us; 183us; 1207us; 184us; 1650us; 185us; 1626us; 186us; 1648us; 187us; 1647us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 924us; 0us; 17075us; 9us; 32768us; 10us; 926us; 15us; 1752us; 35us; 1749us; 37us; 1750us; 59us; 1751us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 192us; 913us; 0us; 17076us; 0us; 17077us; 0us; 17078us; 0us; 17078us; 0us; 17079us; 0us; 17080us; 0us; 17081us; 0us; 17082us; 0us; 17083us; 1us; 32768us; 77us; 1300us; 1us; 32768us; 91us; 1301us; 1us; 16496us; 72us; 199us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17084us; 0us; 17085us; 0us; 17086us; 0us; 17087us; 4us; 17087us; 92us; 17090us; 93us; 17090us; 94us; 17090us; 101us; 17090us; 4us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 101us; 1311us; 0us; 17088us; 1us; 32768us; 185us; 1625us; 0us; 17089us; 73us; 32768us; 10us; 926us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 52us; 1353us; 58us; 1740us; 59us; 1737us; 60us; 1739us; 61us; 1159us; 66us; 1363us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1178us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 925us; 5us; 32768us; 10us; 926us; 58us; 1740us; 59us; 1737us; 60us; 1739us; 192us; 913us; 0us; 17091us; 0us; 17092us; 0us; 17093us; 0us; 17094us; 0us; 17095us; 0us; 17096us; 0us; 17097us; 0us; 17098us; 0us; 17099us; 0us; 17101us; 0us; 17102us; 68us; 32768us; 10us; 926us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 913us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17105us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17106us; 73us; 32768us; 10us; 926us; 15us; 1758us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1754us; 37us; 1755us; 39us; 685us; 44us; 1218us; 59us; 1756us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 93us; 1757us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 913us; 0us; 17108us; 0us; 17109us; 0us; 17110us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 2us; 32768us; 189us; 13us; 190us; 12us; 3us; 17117us; 35us; 1727us; 36us; 1730us; 107us; 1731us; 0us; 17114us; 35us; 17119us; 44us; 1218us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 77us; 1349us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1195us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 32768us; 87us; 1723us; 0us; 17112us; 0us; 17113us; 0us; 17116us; 1us; 32768us; 91us; 1346us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 17118us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1351us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17120us; 34us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1569us; 0us; 17121us; 29us; 32768us; 44us; 1629us; 66us; 1522us; 87us; 1555us; 90us; 1622us; 91us; 1509us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 2us; 17381us; 33us; 1725us; 34us; 1724us; 26us; 17115us; 71us; 1279us; 73us; 1313us; 91us; 1285us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17139us; 2us; 17131us; 20us; 1381us; 83us; 1382us; 0us; 17122us; 67us; 32768us; 21us; 892us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17139us; 2us; 17131us; 20us; 1381us; 83us; 1382us; 0us; 17123us; 1us; 17124us; 69us; 1364us; 67us; 17125us; 21us; 892us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17139us; 2us; 17131us; 20us; 1381us; 83us; 1382us; 0us; 17126us; 3us; 32768us; 44us; 1629us; 66us; 1386us; 188us; 1628us; 0us; 17139us; 2us; 17131us; 20us; 1381us; 83us; 1382us; 0us; 17127us; 5us; 17131us; 20us; 1381us; 44us; 1629us; 66us; 1386us; 83us; 1382us; 188us; 1628us; 1us; 32768us; 19us; 1374us; 0us; 17128us; 0us; 17139us; 2us; 17131us; 20us; 1381us; 83us; 1382us; 1us; 32768us; 19us; 1378us; 0us; 17129us; 0us; 17130us; 3us; 17130us; 44us; 1629us; 66us; 1386us; 188us; 1628us; 1us; 17132us; 83us; 1384us; 1us; 17133us; 20us; 1383us; 0us; 17134us; 0us; 17135us; 1us; 17136us; 76us; 1631us; 0us; 17137us; 0us; 17138us; 8us; 17143us; 10us; 926us; 15us; 1758us; 35us; 1754us; 37us; 1755us; 59us; 1756us; 69us; 1389us; 93us; 1757us; 192us; 913us; 74us; 17141us; 10us; 926us; 15us; 1758us; 21us; 892us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1754us; 37us; 1755us; 39us; 685us; 44us; 1218us; 59us; 1756us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 93us; 1757us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 913us; 0us; 17140us; 0us; 17142us; 0us; 17144us; 3us; 17357us; 20us; 1708us; 25us; 1403us; 86us; 1401us; 1us; 17357us; 20us; 1708us; 3us; 17157us; 13us; 531us; 110us; 530us; 192us; 1412us; 0us; 17145us; 2us; 32768us; 13us; 531us; 110us; 530us; 0us; 17146us; 0us; 17148us; 0us; 17151us; 3us; 16496us; 21us; 485us; 72us; 199us; 192us; 720us; 0us; 17153us; 2us; 16496us; 72us; 199us; 192us; 720us; 1us; 32768us; 19us; 1405us; 0us; 17154us; 3us; 17351us; 18us; 1703us; 19us; 1704us; 140us; 1705us; 0us; 17155us; 3us; 17157us; 13us; 531us; 110us; 530us; 192us; 1412us; 0us; 17156us; 3us; 17157us; 13us; 531us; 110us; 530us; 192us; 1412us; 0us; 17158us; 3us; 17157us; 13us; 531us; 110us; 530us; 192us; 1412us; 0us; 17159us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 8us; 17152us; 25us; 1403us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 86us; 1401us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 3us; 17351us; 18us; 1703us; 19us; 1704us; 140us; 1705us; 1us; 17357us; 20us; 1708us; 0us; 17160us; 0us; 17161us; 0us; 17162us; 34us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 32768us; 97us; 1423us; 68us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1425us; 0us; 17163us; 0us; 17164us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1437us; 2us; 32768us; 97us; 1428us; 192us; 1435us; 69us; 32768us; 10us; 926us; 17us; 1432us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 913us; 3us; 32768us; 10us; 926us; 19us; 1430us; 192us; 913us; 0us; 17165us; 0us; 17166us; 1us; 32768us; 19us; 1433us; 0us; 17167us; 0us; 17168us; 1us; 32768us; 19us; 1436us; 0us; 17169us; 1us; 32768us; 19us; 1438us; 0us; 17170us; 38us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 56us; 1123us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1126us; 0us; 17171us; 38us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 56us; 1123us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1126us; 1us; 32768us; 19us; 1443us; 0us; 17172us; 1us; 17173us; 84us; 1445us; 4us; 32768us; 50us; 568us; 90us; 1622us; 91us; 583us; 185us; 1625us; 1us; 17175us; 84us; 1447us; 4us; 32768us; 50us; 568us; 90us; 1622us; 91us; 583us; 185us; 1625us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17178us; 1us; 17180us; 97us; 1451us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17179us; 1us; 17182us; 95us; 1454us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17181us; 1us; 17184us; 95us; 1457us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17183us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 74us; 1463us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 7us; 17187us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 77us; 1461us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 6us; 17185us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 1us; 32768us; 188us; 1628us; 1us; 32768us; 77us; 1465us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 6us; 17186us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 7us; 17190us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 77us; 1468us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 6us; 17188us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 1us; 32768us; 188us; 1628us; 1us; 32768us; 77us; 1472us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 6us; 17189us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 1us; 17192us; 97us; 1475us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17191us; 8us; 17196us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 95us; 1478us; 182us; 1482us; 185us; 1625us; 188us; 1628us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17193us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17194us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17195us; 8us; 17199us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 95us; 1485us; 182us; 1487us; 185us; 1625us; 188us; 1628us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17197us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17198us; 7us; 17201us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 95us; 1490us; 185us; 1625us; 188us; 1628us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17200us; 1us; 17202us; 76us; 1631us; 0us; 17203us; 1us; 17203us; 79us; 1518us; 1us; 17203us; 79us; 1519us; 1us; 17205us; 185us; 1498us; 4us; 17205us; 32us; 1578us; 76us; 1575us; 157us; 1580us; 185us; 1498us; 1us; 32768us; 174us; 1499us; 0us; 17204us; 6us; 32768us; 34us; 1504us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 0us; 17206us; 62us; 17206us; 10us; 17224us; 13us; 17224us; 14us; 17224us; 15us; 17224us; 16us; 17224us; 18us; 17224us; 19us; 17224us; 20us; 17224us; 25us; 17224us; 29us; 17224us; 31us; 17224us; 33us; 17224us; 39us; 17224us; 41us; 17224us; 42us; 17224us; 43us; 17224us; 45us; 17224us; 46us; 17224us; 48us; 17224us; 49us; 17224us; 50us; 17224us; 52us; 17224us; 58us; 17224us; 59us; 17224us; 60us; 17224us; 71us; 17224us; 72us; 17224us; 73us; 17224us; 83us; 17224us; 86us; 17224us; 91us; 17224us; 105us; 17224us; 108us; 17224us; 110us; 17224us; 117us; 17224us; 120us; 17224us; 130us; 17224us; 134us; 17224us; 135us; 17224us; 140us; 17224us; 145us; 17224us; 152us; 17224us; 159us; 17224us; 162us; 17224us; 163us; 17224us; 164us; 17224us; 165us; 17224us; 166us; 17224us; 167us; 17224us; 168us; 17224us; 169us; 17224us; 170us; 17224us; 171us; 17224us; 172us; 17224us; 173us; 17224us; 174us; 17224us; 176us; 17224us; 177us; 17224us; 189us; 17224us; 190us; 17224us; 191us; 17224us; 192us; 17224us; 1us; 32768us; 70us; 1528us; 1us; 32768us; 70us; 1528us; 0us; 17207us; 62us; 17207us; 10us; 17225us; 13us; 17225us; 14us; 17225us; 15us; 17225us; 16us; 17225us; 18us; 17225us; 19us; 17225us; 20us; 17225us; 25us; 17225us; 29us; 17225us; 31us; 17225us; 33us; 17225us; 39us; 17225us; 41us; 17225us; 42us; 17225us; 43us; 17225us; 45us; 17225us; 46us; 17225us; 48us; 17225us; 49us; 17225us; 50us; 17225us; 52us; 17225us; 58us; 17225us; 59us; 17225us; 60us; 17225us; 71us; 17225us; 72us; 17225us; 73us; 17225us; 83us; 17225us; 86us; 17225us; 91us; 17225us; 105us; 17225us; 108us; 17225us; 110us; 17225us; 117us; 17225us; 120us; 17225us; 130us; 17225us; 134us; 17225us; 135us; 17225us; 140us; 17225us; 145us; 17225us; 152us; 17225us; 159us; 17225us; 162us; 17225us; 163us; 17225us; 164us; 17225us; 165us; 17225us; 166us; 17225us; 167us; 17225us; 168us; 17225us; 169us; 17225us; 170us; 17225us; 171us; 17225us; 172us; 17225us; 173us; 17225us; 174us; 17225us; 176us; 17225us; 177us; 17225us; 189us; 17225us; 190us; 17225us; 191us; 17225us; 192us; 17225us; 0us; 17208us; 62us; 17208us; 10us; 17226us; 13us; 17226us; 14us; 17226us; 15us; 17226us; 16us; 17226us; 18us; 17226us; 19us; 17226us; 20us; 17226us; 25us; 17226us; 29us; 17226us; 31us; 17226us; 33us; 17226us; 39us; 17226us; 41us; 17226us; 42us; 17226us; 43us; 17226us; 45us; 17226us; 46us; 17226us; 48us; 17226us; 49us; 17226us; 50us; 17226us; 52us; 17226us; 58us; 17226us; 59us; 17226us; 60us; 17226us; 71us; 17226us; 72us; 17226us; 73us; 17226us; 83us; 17226us; 86us; 17226us; 91us; 17226us; 105us; 17226us; 108us; 17226us; 110us; 17226us; 117us; 17226us; 120us; 17226us; 130us; 17226us; 134us; 17226us; 135us; 17226us; 140us; 17226us; 145us; 17226us; 152us; 17226us; 159us; 17226us; 162us; 17226us; 163us; 17226us; 164us; 17226us; 165us; 17226us; 166us; 17226us; 167us; 17226us; 168us; 17226us; 169us; 17226us; 170us; 17226us; 171us; 17226us; 172us; 17226us; 173us; 17226us; 174us; 17226us; 176us; 17226us; 177us; 17226us; 189us; 17226us; 190us; 17226us; 191us; 17226us; 192us; 17226us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1569us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1569us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 4us; 32768us; 44us; 1629us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 4us; 32768us; 44us; 1629us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 0us; 17209us; 62us; 17209us; 10us; 17227us; 13us; 17227us; 14us; 17227us; 15us; 17227us; 16us; 17227us; 18us; 17227us; 19us; 17227us; 20us; 17227us; 25us; 17227us; 29us; 17227us; 31us; 17227us; 33us; 17227us; 39us; 17227us; 41us; 17227us; 42us; 17227us; 43us; 17227us; 45us; 17227us; 46us; 17227us; 48us; 17227us; 49us; 17227us; 50us; 17227us; 52us; 17227us; 58us; 17227us; 59us; 17227us; 60us; 17227us; 71us; 17227us; 72us; 17227us; 73us; 17227us; 83us; 17227us; 86us; 17227us; 91us; 17227us; 105us; 17227us; 108us; 17227us; 110us; 17227us; 117us; 17227us; 120us; 17227us; 130us; 17227us; 134us; 17227us; 135us; 17227us; 140us; 17227us; 145us; 17227us; 152us; 17227us; 159us; 17227us; 162us; 17227us; 163us; 17227us; 164us; 17227us; 165us; 17227us; 166us; 17227us; 167us; 17227us; 168us; 17227us; 169us; 17227us; 170us; 17227us; 171us; 17227us; 172us; 17227us; 173us; 17227us; 174us; 17227us; 176us; 17227us; 177us; 17227us; 189us; 17227us; 190us; 17227us; 191us; 17227us; 192us; 17227us; 0us; 17210us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17211us; 62us; 17211us; 10us; 17229us; 13us; 17229us; 14us; 17229us; 15us; 17229us; 16us; 17229us; 18us; 17229us; 19us; 17229us; 20us; 17229us; 25us; 17229us; 29us; 17229us; 31us; 17229us; 33us; 17229us; 39us; 17229us; 41us; 17229us; 42us; 17229us; 43us; 17229us; 45us; 17229us; 46us; 17229us; 48us; 17229us; 49us; 17229us; 50us; 17229us; 52us; 17229us; 58us; 17229us; 59us; 17229us; 60us; 17229us; 71us; 17229us; 72us; 17229us; 73us; 17229us; 83us; 17229us; 86us; 17229us; 91us; 17229us; 105us; 17229us; 108us; 17229us; 110us; 17229us; 117us; 17229us; 120us; 17229us; 130us; 17229us; 134us; 17229us; 135us; 17229us; 140us; 17229us; 145us; 17229us; 152us; 17229us; 159us; 17229us; 162us; 17229us; 163us; 17229us; 164us; 17229us; 165us; 17229us; 166us; 17229us; 167us; 17229us; 168us; 17229us; 169us; 17229us; 170us; 17229us; 171us; 17229us; 172us; 17229us; 173us; 17229us; 174us; 17229us; 176us; 17229us; 177us; 17229us; 189us; 17229us; 190us; 17229us; 191us; 17229us; 192us; 17229us; 1us; 17236us; 79us; 1525us; 1us; 17236us; 79us; 1524us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17212us; 62us; 17212us; 10us; 17230us; 13us; 17230us; 14us; 17230us; 15us; 17230us; 16us; 17230us; 18us; 17230us; 19us; 17230us; 20us; 17230us; 25us; 17230us; 29us; 17230us; 31us; 17230us; 33us; 17230us; 39us; 17230us; 41us; 17230us; 42us; 17230us; 43us; 17230us; 45us; 17230us; 46us; 17230us; 48us; 17230us; 49us; 17230us; 50us; 17230us; 52us; 17230us; 58us; 17230us; 59us; 17230us; 60us; 17230us; 71us; 17230us; 72us; 17230us; 73us; 17230us; 83us; 17230us; 86us; 17230us; 91us; 17230us; 105us; 17230us; 108us; 17230us; 110us; 17230us; 117us; 17230us; 120us; 17230us; 130us; 17230us; 134us; 17230us; 135us; 17230us; 140us; 17230us; 145us; 17230us; 152us; 17230us; 159us; 17230us; 162us; 17230us; 163us; 17230us; 164us; 17230us; 165us; 17230us; 166us; 17230us; 167us; 17230us; 168us; 17230us; 169us; 17230us; 170us; 17230us; 171us; 17230us; 172us; 17230us; 173us; 17230us; 174us; 17230us; 176us; 17230us; 177us; 17230us; 189us; 17230us; 190us; 17230us; 191us; 17230us; 192us; 17230us; 2us; 32768us; 57us; 1529us; 96us; 1530us; 0us; 17213us; 2us; 32768us; 57us; 1531us; 96us; 1532us; 0us; 17214us; 2us; 32768us; 57us; 1533us; 96us; 1534us; 0us; 17215us; 1us; 32768us; 57us; 1535us; 0us; 17216us; 1us; 32768us; 96us; 1537us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17220us; 1us; 17217us; 96us; 1541us; 4us; 32768us; 10us; 926us; 96us; 1541us; 158us; 1584us; 192us; 913us; 30us; 17263us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17218us; 0us; 17219us; 64us; 17221us; 10us; 17231us; 13us; 17231us; 14us; 17231us; 15us; 17231us; 16us; 17231us; 18us; 17231us; 19us; 17231us; 20us; 17231us; 25us; 17231us; 29us; 17231us; 31us; 17231us; 33us; 17231us; 39us; 17231us; 41us; 17231us; 42us; 17231us; 43us; 17231us; 45us; 17231us; 46us; 17231us; 48us; 17231us; 49us; 17231us; 50us; 17231us; 52us; 17231us; 58us; 17231us; 59us; 17231us; 60us; 17231us; 71us; 17231us; 72us; 17231us; 73us; 17231us; 76us; 1572us; 83us; 17231us; 86us; 17231us; 91us; 17231us; 105us; 17231us; 108us; 17231us; 110us; 17231us; 117us; 17231us; 120us; 17231us; 130us; 17231us; 134us; 17231us; 135us; 17231us; 140us; 17231us; 145us; 17231us; 152us; 17231us; 159us; 17231us; 162us; 17231us; 163us; 17231us; 164us; 17231us; 165us; 17231us; 166us; 17231us; 167us; 17231us; 168us; 17231us; 169us; 17231us; 170us; 17231us; 171us; 17231us; 172us; 17231us; 173us; 17231us; 174us; 17231us; 176us; 17231us; 177us; 17231us; 185us; 1547us; 189us; 17231us; 190us; 17231us; 191us; 17231us; 192us; 17231us; 2us; 17221us; 76us; 1572us; 185us; 1546us; 2us; 32768us; 61us; 1550us; 174us; 1548us; 2us; 32768us; 61us; 1551us; 174us; 1549us; 0us; 17222us; 62us; 17222us; 10us; 17232us; 13us; 17232us; 14us; 17232us; 15us; 17232us; 16us; 17232us; 18us; 17232us; 19us; 17232us; 20us; 17232us; 25us; 17232us; 29us; 17232us; 31us; 17232us; 33us; 17232us; 39us; 17232us; 41us; 17232us; 42us; 17232us; 43us; 17232us; 45us; 17232us; 46us; 17232us; 48us; 17232us; 49us; 17232us; 50us; 17232us; 52us; 17232us; 58us; 17232us; 59us; 17232us; 60us; 17232us; 71us; 17232us; 72us; 17232us; 73us; 17232us; 83us; 17232us; 86us; 17232us; 91us; 17232us; 105us; 17232us; 108us; 17232us; 110us; 17232us; 117us; 17232us; 120us; 17232us; 130us; 17232us; 134us; 17232us; 135us; 17232us; 140us; 17232us; 145us; 17232us; 152us; 17232us; 159us; 17232us; 162us; 17232us; 163us; 17232us; 164us; 17232us; 165us; 17232us; 166us; 17232us; 167us; 17232us; 168us; 17232us; 169us; 17232us; 170us; 17232us; 171us; 17232us; 172us; 17232us; 173us; 17232us; 174us; 17232us; 176us; 17232us; 177us; 17232us; 189us; 17232us; 190us; 17232us; 191us; 17232us; 192us; 17232us; 1us; 32768us; 174us; 1552us; 1us; 32768us; 174us; 1553us; 0us; 17223us; 62us; 17223us; 10us; 17233us; 13us; 17233us; 14us; 17233us; 15us; 17233us; 16us; 17233us; 18us; 17233us; 19us; 17233us; 20us; 17233us; 25us; 17233us; 29us; 17233us; 31us; 17233us; 33us; 17233us; 39us; 17233us; 41us; 17233us; 42us; 17233us; 43us; 17233us; 45us; 17233us; 46us; 17233us; 48us; 17233us; 49us; 17233us; 50us; 17233us; 52us; 17233us; 58us; 17233us; 59us; 17233us; 60us; 17233us; 71us; 17233us; 72us; 17233us; 73us; 17233us; 83us; 17233us; 86us; 17233us; 91us; 17233us; 105us; 17233us; 108us; 17233us; 110us; 17233us; 117us; 17233us; 120us; 17233us; 130us; 17233us; 134us; 17233us; 135us; 17233us; 140us; 17233us; 145us; 17233us; 152us; 17233us; 159us; 17233us; 162us; 17233us; 163us; 17233us; 164us; 17233us; 165us; 17233us; 166us; 17233us; 167us; 17233us; 168us; 17233us; 169us; 17233us; 170us; 17233us; 171us; 17233us; 172us; 17233us; 173us; 17233us; 174us; 17233us; 176us; 17233us; 177us; 17233us; 189us; 17233us; 190us; 17233us; 191us; 17233us; 192us; 17233us; 0us; 17228us; 29us; 32768us; 44us; 1629us; 66us; 1558us; 87us; 1555us; 90us; 1622us; 91us; 1559us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 17234us; 76us; 1572us; 0us; 17235us; 0us; 17236us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1569us; 5us; 32768us; 10us; 926us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 192us; 913us; 6us; 17258us; 10us; 926us; 69us; 1593us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 192us; 913us; 0us; 17237us; 0us; 17238us; 0us; 17239us; 0us; 17240us; 33us; 32768us; 44us; 1218us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17242us; 0us; 17243us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 17244us; 0us; 17245us; 2us; 32768us; 44us; 1629us; 188us; 1628us; 3us; 17246us; 32us; 1578us; 76us; 1631us; 157us; 1580us; 0us; 17247us; 7us; 32768us; 10us; 926us; 15us; 1758us; 35us; 1754us; 37us; 1755us; 59us; 1756us; 93us; 1757us; 192us; 913us; 0us; 17248us; 0us; 17249us; 1us; 32768us; 157us; 1580us; 0us; 17250us; 33us; 17263us; 10us; 926us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 158us; 1590us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 913us; 1us; 32768us; 96us; 1582us; 37us; 17263us; 10us; 926us; 15us; 1758us; 35us; 1754us; 37us; 1755us; 44us; 1629us; 59us; 1756us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 93us; 1757us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 913us; 0us; 17220us; 0us; 17251us; 0us; 17252us; 0us; 17253us; 3us; 17261us; 10us; 926us; 158us; 1588us; 192us; 913us; 0us; 17254us; 0us; 17255us; 0us; 17256us; 0us; 17257us; 1us; 17258us; 69us; 1593us; 30us; 17260us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17259us; 0us; 17261us; 0us; 17262us; 8us; 32768us; 44us; 1629us; 66us; 1600us; 90us; 1622us; 91us; 1604us; 174us; 1612us; 182us; 1621us; 185us; 1625us; 188us; 1628us; 3us; 32768us; 95us; 1619us; 158us; 1599us; 182us; 1620us; 0us; 17264us; 1us; 32768us; 158us; 1601us; 0us; 17265us; 1us; 17266us; 76us; 1631us; 0us; 17267us; 7us; 32768us; 44us; 1629us; 90us; 1622us; 91us; 1604us; 174us; 1612us; 182us; 1621us; 185us; 1625us; 188us; 1628us; 5us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 95us; 1619us; 182us; 1620us; 0us; 17268us; 1us; 17269us; 185us; 1608us; 2us; 32768us; 61us; 1610us; 174us; 1609us; 0us; 17270us; 1us; 32768us; 174us; 1611us; 0us; 17271us; 0us; 17272us; 6us; 17273us; 44us; 1629us; 90us; 1622us; 91us; 1604us; 174us; 1612us; 185us; 1625us; 188us; 1628us; 0us; 17274us; 0us; 17275us; 0us; 17276us; 0us; 17277us; 0us; 17278us; 7us; 32768us; 44us; 1629us; 90us; 1622us; 91us; 1604us; 174us; 1612us; 182us; 1621us; 185us; 1625us; 188us; 1628us; 7us; 32768us; 44us; 1629us; 90us; 1622us; 91us; 1604us; 174us; 1612us; 182us; 1621us; 185us; 1625us; 188us; 1628us; 7us; 32768us; 44us; 1629us; 90us; 1622us; 91us; 1604us; 174us; 1612us; 182us; 1621us; 185us; 1625us; 188us; 1628us; 1us; 32768us; 188us; 1628us; 0us; 17279us; 0us; 17280us; 1us; 32768us; 188us; 1628us; 1us; 17295us; 188us; 1628us; 0us; 17281us; 0us; 17282us; 0us; 17283us; 0us; 17284us; 8us; 32768us; 10us; 926us; 15us; 1758us; 35us; 1754us; 37us; 1755us; 59us; 1756us; 93us; 1757us; 188us; 1628us; 192us; 913us; 0us; 17285us; 0us; 17286us; 27us; 32768us; 56us; 1674us; 61us; 1656us; 62us; 1654us; 69us; 1658us; 74us; 1662us; 82us; 1666us; 88us; 1663us; 89us; 1664us; 95us; 1657us; 101us; 1659us; 141us; 1669us; 142us; 1665us; 152us; 1671us; 155us; 1668us; 157us; 1660us; 158us; 1661us; 178us; 1667us; 179us; 1655us; 180us; 1652us; 181us; 1651us; 182us; 1653us; 183us; 1646us; 184us; 1650us; 185us; 1649us; 186us; 1648us; 187us; 1647us; 192us; 1637us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 17287us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 17288us; 0us; 17289us; 1us; 32768us; 56us; 1641us; 5us; 32768us; 66us; 1643us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 188us; 1673us; 0us; 17290us; 1us; 32768us; 56us; 1644us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 17291us; 0us; 17292us; 0us; 17293us; 0us; 17294us; 0us; 17295us; 0us; 17296us; 0us; 17297us; 0us; 17298us; 0us; 17299us; 0us; 17300us; 0us; 17301us; 0us; 17302us; 0us; 17303us; 0us; 17304us; 0us; 17305us; 0us; 17306us; 0us; 17307us; 0us; 17308us; 0us; 17309us; 0us; 17310us; 0us; 17311us; 0us; 17312us; 0us; 17313us; 0us; 17314us; 1us; 17315us; 141us; 1670us; 0us; 17316us; 1us; 32768us; 153us; 1672us; 0us; 17317us; 0us; 17318us; 1us; 32768us; 188us; 1673us; 0us; 17319us; 0us; 17320us; 0us; 17321us; 0us; 17322us; 1us; 17323us; 76us; 1681us; 0us; 17324us; 4us; 32768us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 192us; 1683us; 0us; 17325us; 0us; 17326us; 0us; 17327us; 0us; 17328us; 0us; 17329us; 0us; 17330us; 3us; 17331us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 0us; 17332us; 0us; 17333us; 0us; 17334us; 2us; 17335us; 20us; 1691us; 83us; 1690us; 0us; 17336us; 3us; 17340us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 0us; 17339us; 1us; 17341us; 83us; 1698us; 1us; 17342us; 20us; 1699us; 0us; 17343us; 0us; 17344us; 0us; 17345us; 0us; 17346us; 0us; 17347us; 0us; 17348us; 0us; 17349us; 0us; 17350us; 0us; 17352us; 0us; 17354us; 0us; 17356us; 0us; 17358us; 0us; 17360us; 0us; 17364us; 0us; 17366us; 0us; 17368us; 0us; 17369us; 0us; 17370us; 0us; 17371us; 0us; 17372us; 0us; 17373us; 0us; 17374us; 0us; 17375us; 0us; 17376us; 0us; 17377us; 0us; 17378us; 0us; 17379us; 0us; 17380us; 0us; 17382us; 3us; 32768us; 35us; 1727us; 36us; 1730us; 107us; 1731us; 3us; 17404us; 35us; 1727us; 36us; 1730us; 107us; 1731us; 0us; 17384us; 0us; 17385us; 0us; 17386us; 3us; 32768us; 37us; 1732us; 38us; 1735us; 147us; 1736us; 3us; 17405us; 37us; 1732us; 38us; 1735us; 147us; 1736us; 0us; 17387us; 0us; 17388us; 0us; 17389us; 3us; 32768us; 58us; 1740us; 59us; 1737us; 60us; 1739us; 0us; 17390us; 0us; 17391us; 0us; 17392us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 17393us; 0us; 17394us; 0us; 17395us; 3us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 0us; 17396us; 0us; 17397us; 0us; 17398us; 0us; 17399us; 0us; 17400us; 0us; 17401us; 0us; 17402us; 0us; 17403us; 0us; 17404us; 0us; 17405us; 0us; 17406us; 0us; 17407us; 0us; 17408us; 0us; 17409us; |] +let _fsyacc_actionTableRowOffsets = [|0us; 17us; 18us; 101us; 102us; 110us; 111us; 112us; 113us; 114us; 116us; 117us; 120us; 121us; 122us; 123us; 124us; 125us; 126us; 127us; 132us; 133us; 138us; 139us; 144us; 145us; 151us; 152us; 158us; 159us; 165us; 166us; 183us; 184us; 188us; 263us; 289us; 290us; 293us; 294us; 296us; 297us; 302us; 303us; 306us; 307us; 309us; 310us; 315us; 316us; 320us; 323us; 325us; 328us; 330us; 332us; 333us; 335us; 336us; 338us; 355us; 356us; 358us; 359us; 361us; 362us; 364us; 447us; 448us; 452us; 461us; 480us; 481us; 482us; 487us; 562us; 646us; 647us; 648us; 649us; 665us; 671us; 673us; 674us; 675us; 682us; 683us; 684us; 688us; 692us; 708us; 709us; 713us; 718us; 719us; 801us; 807us; 809us; 810us; 811us; 818us; 819us; 820us; 821us; 826us; 901us; 930us; 1012us; 1013us; 1014us; 1015us; 1037us; 1038us; 1120us; 1121us; 1125us; 1132us; 1137us; 1142us; 1143us; 1144us; 1145us; 1149us; 1161us; 1162us; 1164us; 1165us; 1233us; 1234us; 1236us; 1238us; 1239us; 1240us; 1242us; 1248us; 1249us; 1252us; 1253us; 1254us; 1263us; 1268us; 1269us; 1271us; 1278us; 1284us; 1285us; 1286us; 1292us; 1293us; 1294us; 1295us; 1296us; 1298us; 1380us; 1384us; 1385us; 1386us; 1387us; 1394us; 1398us; 1399us; 1400us; 1401us; 1405us; 1414us; 1417us; 1423us; 1424us; 1425us; 1426us; 1427us; 1430us; 1432us; 1434us; 1436us; 1438us; 1442us; 1446us; 1449us; 1451us; 1483us; 1485us; 1486us; 1554us; 1580us; 1647us; 1676us; 1677us; 1681us; 1682us; 1698us; 1700us; 1704us; 1705us; 1721us; 1723us; 1724us; 1725us; 1727us; 1728us; 1743us; 1746us; 1755us; 1757us; 1758us; 1760us; 1762us; 1763us; 1764us; 1765us; 1766us; 1776us; 1777us; 1781us; 1808us; 1809us; 1813us; 1817us; 1844us; 1845us; 1848us; 1853us; 1856us; 1883us; 1884us; 1886us; 1887us; 1889us; 1890us; 1892us; 1893us; 1895us; 1896us; 1898us; 1899us; 1901us; 1903us; 1904us; 1907us; 1915us; 1916us; 1917us; 1930us; 1932us; 1938us; 1940us; 1944us; 1946us; 1947us; 1949us; 1950us; 1951us; 1952us; 1954us; 1986us; 1987us; 1988us; 1994us; 1998us; 1999us; 2000us; 2002us; 2003us; 2010us; 2016us; 2017us; 2018us; 2024us; 2028us; 2029us; 2030us; 2037us; 2043us; 2044us; 2045us; 2046us; 2047us; 2050us; 2061us; 2062us; 2068us; 2079us; 2080us; 2081us; 2082us; 2083us; 2084us; 2086us; 2087us; 2091us; 2092us; 2096us; 2099us; 2100us; 2101us; 2103us; 2107us; 2108us; 2112us; 2116us; 2127us; 2170us; 2172us; 2176us; 2180us; 2183us; 2185us; 2217us; 2220us; 2222us; 2223us; 2253us; 2260us; 2290us; 2297us; 2299us; 2300us; 2302us; 2303us; 2305us; 2306us; 2308us; 2340us; 2341us; 2345us; 2347us; 2348us; 2350us; 2352us; 2353us; 2394us; 2401us; 2402us; 2403us; 2407us; 2410us; 2412us; 2414us; 2416us; 2423us; 2424us; 2436us; 2438us; 2446us; 2448us; 2454us; 2456us; 2457us; 2458us; 2460us; 2461us; 2462us; 2463us; 2465us; 2497us; 2498us; 2499us; 2505us; 2509us; 2510us; 2511us; 2516us; 2517us; 2524us; 2530us; 2531us; 2532us; 2539us; 2545us; 2546us; 2547us; 2548us; 2549us; 2560us; 2561us; 2564us; 2575us; 2576us; 2578us; 2579us; 2581us; 2584us; 2585us; 2586us; 2588us; 2590us; 2591us; 2593us; 2629us; 2631us; 2633us; 2701us; 2702us; 2738us; 2740us; 2744us; 2812us; 2813us; 2814us; 2816us; 2817us; 2821us; 2825us; 2841us; 2889us; 2890us; 2891us; 2894us; 2896us; 2897us; 2927us; 2935us; 2936us; 2938us; 2942us; 2945us; 2947us; 2979us; 2982us; 2984us; 2985us; 2986us; 2988us; 2989us; 2991us; 2992us; 2994us; 2995us; 3030us; 3032us; 3034us; 3102us; 3104us; 3105us; 3107us; 3108us; 3110us; 3114us; 3116us; 3118us; 3149us; 3150us; 3152us; 3156us; 3158us; 3160us; 3162us; 3230us; 3233us; 3234us; 3265us; 3266us; 3268us; 3272us; 3273us; 3274us; 3278us; 3279us; 3280us; 3281us; 3282us; 3283us; 3284us; 3287us; 3291us; 3292us; 3299us; 3303us; 3304us; 3310us; 3314us; 3315us; 3352us; 3382us; 3383us; 3410us; 3412us; 3413us; 3414us; 3415us; 3417us; 3418us; 3419us; 3422us; 3423us; 3424us; 3426us; 3432us; 3433us; 3434us; 3435us; 3438us; 3453us; 3454us; 3458us; 3463us; 3467us; 3469us; 3470us; 3472us; 3473us; 3474us; 3476us; 3478us; 3479us; 3480us; 3481us; 3485us; 3518us; 3521us; 3523us; 3526us; 3527us; 3528us; 3529us; 3530us; 3562us; 3566us; 3567us; 3570us; 3576us; 3577us; 3578us; 3582us; 3583us; 3613us; 3615us; 3616us; 3617us; 3618us; 3619us; 3620us; 3621us; 3627us; 3631us; 3634us; 3636us; 3637us; 3638us; 3640us; 3645us; 3646us; 3649us; 3651us; 3653us; 3656us; 3657us; 3658us; 3661us; 3662us; 3664us; 3666us; 3668us; 3669us; 3670us; 3672us; 3676us; 3678us; 3680us; 3681us; 3682us; 3710us; 3715us; 3717us; 3719us; 3721us; 3726us; 3727us; 3728us; 3731us; 3733us; 3764us; 3765us; 3768us; 3799us; 3800us; 3806us; 3807us; 3811us; 3812us; 3813us; 3815us; 3819us; 3820us; 3823us; 3828us; 3830us; 3832us; 3834us; 3838us; 3839us; 3842us; 3843us; 3844us; 3847us; 3848us; 3849us; 3851us; 3852us; 3854us; 3856us; 3857us; 3860us; 3861us; 3863us; 3865us; 3866us; 3870us; 3874us; 3879us; 3880us; 3911us; 3913us; 3914us; 3946us; 3948us; 3949us; 3968us; 3970us; 3971us; 3972us; 4002us; 4006us; 4007us; 4009us; 4013us; 4014us; 4019us; 4020us; 4039us; 4041us; 4087us; 4088us; 4119us; 4120us; 4121us; 4129us; 4159us; 4160us; 4163us; 4170us; 4171us; 4172us; 4174us; 4175us; 4179us; 4181us; 4183us; 4214us; 4215us; 4217us; 4218us; 4220us; 4221us; 4222us; 4224us; 4228us; 4230us; 4232us; 4233us; 4235us; 4266us; 4267us; 4270us; 4272us; 4275us; 4277us; 4279us; 4282us; 4283us; 4284us; 4352us; 4353us; 4355us; 4358us; 4362us; 4363us; 4431us; 4435us; 4436us; 4437us; 4438us; 4439us; 4440us; 4441us; 4442us; 4444us; 4448us; 4450us; 4453us; 4455us; 4460us; 4464us; 4465us; 4467us; 4469us; 4471us; 4472us; 4474us; 4475us; 4479us; 4486us; 4487us; 4489us; 4495us; 4497us; 4499us; 4500us; 4501us; 4502us; 4504us; 4506us; 4507us; 4511us; 4513us; 4514us; 4517us; 4519us; 4520us; 4522us; 4523us; 4524us; 4526us; 4562us; 4564us; 4568us; 4637us; 4638us; 4639us; 4640us; 4707us; 4713us; 4714us; 4715us; 4716us; 4717us; 4719us; 4720us; 4723us; 4726us; 4794us; 4795us; 4798us; 4799us; 4800us; 4803us; 4834us; 4835us; 4836us; 4837us; 4838us; 4839us; 4840us; 4841us; 4842us; 4843us; 4844us; 4845us; 4846us; 4847us; 4848us; 4849us; 4851us; 4852us; 4853us; 4854us; 4855us; 4857us; 4859us; 4860us; 4866us; 4867us; 4869us; 4870us; 4872us; 4875us; 4906us; 4907us; 4911us; 4915us; 4916us; 4925us; 4931us; 4932us; 4933us; 4934us; 4938us; 4939us; 4940us; 4944us; 4946us; 4949us; 4952us; 4954us; 4956us; 4963us; 4970us; 4972us; 4973us; 5009us; 5045us; 5047us; 5048us; 5049us; 5085us; 5121us; 5157us; 5193us; 5223us; 5260us; 5261us; 5296us; 5297us; 5332us; 5333us; 5363us; 5365us; 5366us; 5403us; 5404us; 5439us; 5440us; 5475us; 5476us; 5477us; 5479us; 5480us; 5483us; 5487us; 5488us; 5525us; 5527us; 5528us; 5565us; 5567us; 5568us; 5569us; 5571us; 5573us; 5574us; 5575us; 5576us; 5577us; 5578us; 5579us; 5642us; 5648us; 5649us; 5650us; 5654us; 5657us; 5658us; 5665us; 5670us; 5674us; 5677us; 5681us; 5685us; 5688us; 5691us; 5698us; 5707us; 5723us; 5731us; 5733us; 5734us; 5771us; 5773us; 5775us; 5806us; 5807us; 5844us; 5881us; 5882us; 5919us; 5956us; 5993us; 6030us; 6031us; 6034us; 6035us; 6038us; 6039us; 6042us; 6079us; 6080us; 6117us; 6118us; 6185us; 6191us; 6192us; 6193us; 6194us; 6261us; 6265us; 6266us; 6292us; 6294us; 6295us; 6297us; 6328us; 6329us; 6359us; 6390us; 6421us; 6488us; 6489us; 6556us; 6557us; 6559us; 6626us; 6630us; 6631us; 6701us; 6702us; 6705us; 6708us; 6711us; 6714us; 6717us; 6719us; 6721us; 6723us; 6725us; 6729us; 6733us; 6737us; 6738us; 6740us; 6808us; 6809us; 6810us; 6880us; 6881us; 6882us; 6951us; 6952us; 6953us; 6954us; 6955us; 6956us; 7023us; 7028us; 7029us; 7030us; 7097us; 7103us; 7104us; 7105us; 7173us; 7174us; 7243us; 7273us; 7274us; 7275us; 7276us; 7343us; 7344us; 7403us; 7404us; 7472us; 7473us; 7533us; 7534us; 7603us; 7633us; 7702us; 7707us; 7708us; 7709us; 7712us; 7713us; 7714us; 7715us; 7716us; 7760us; 7771us; 7846us; 7856us; 7857us; 7858us; 7859us; 7860us; 7861us; 7866us; 7936us; 7941us; 7942us; 7943us; 7944us; 7945us; 7946us; 8014us; 8017us; 8018us; 8019us; 8020us; 8021us; 8088us; 8114us; 8181us; 8207us; 8243us; 8311us; 8313us; 8315us; 8383us; 8384us; 8420us; 8488us; 8492us; 8494us; 8563us; 8564us; 8565us; 8632us; 8634us; 8636us; 8704us; 8705us; 8773us; 8777us; 8778us; 8780us; 8781us; 8848us; 8849us; 8875us; 8896us; 8917us; 8927us; 8948us; 8967us; 8986us; 8996us; 9006us; 9016us; 9026us; 9036us; 9046us; 9056us; 9058us; 9067us; 9072us; 9077us; 9079us; 9081us; 9083us; 9109us; 9135us; 9161us; 9191us; 9215us; 9239us; 9266us; 9291us; 9316us; 9343us; 9370us; 9396us; 9424us; 9450us; 9481us; 9482us; 9513us; 9514us; 9545us; 9546us; 9613us; 9615us; 9683us; 9684us; 9686us; 9754us; 9822us; 9890us; 9958us; 10026us; 10094us; 10162us; 10230us; 10298us; 10366us; 10434us; 10502us; 10570us; 10638us; 10706us; 10774us; 10842us; 10910us; 10978us; 11046us; 11047us; 11048us; 11049us; 11050us; 11051us; 11052us; 11053us; 11054us; 11055us; 11056us; 11057us; 11058us; 11059us; 11060us; 11061us; 11062us; 11063us; 11064us; 11065us; 11066us; 11067us; 11134us; 11138us; 11139us; 11178us; 11179us; 11218us; 11222us; 11223us; 11224us; 11225us; 11263us; 11264us; 11265us; 11266us; 11267us; 11270us; 11273us; 11311us; 11312us; 11313us; 11314us; 11315us; 11382us; 11449us; 11450us; 11454us; 11455us; 11522us; 11524us; 11591us; 11597us; 11598us; 11599us; 11666us; 11668us; 11735us; 11741us; 11742us; 11743us; 11810us; 11811us; 11812us; 11886us; 11887us; 11961us; 11962us; 12005us; 12048us; 12049us; 12092us; 12135us; 12136us; 12179us; 12222us; 12223us; 12266us; 12309us; 12310us; 12353us; 12396us; 12397us; 12440us; 12483us; 12484us; 12515us; 12546us; 12549us; 12583us; 12611us; 12639us; 12640us; 12646us; 12647us; 12648us; 12691us; 12692us; 12735us; 12736us; 12771us; 12809us; 12810us; 12816us; 12850us; 12856us; 12862us; 12865us; 12867us; 12873us; 12879us; 12913us; 12947us; 12949us; 12950us; 12984us; 13018us; 13025us; 13026us; 13028us; 13035us; 13036us; 13040us; 13044us; 13045us; 13048us; 13049us; 13050us; 13051us; 13120us; 13124us; 13125us; 13126us; 13127us; 13128us; 13129us; 13130us; 13131us; 13217us; 13221us; 13223us; 13225us; 13226us; 13230us; 13231us; 13302us; 13306us; 13307us; 13308us; 13309us; 13310us; 13313us; 13314us; 13383us; 13386us; 13387us; 13456us; 13459us; 13460us; 13529us; 13531us; 13532us; 13599us; 13666us; 13667us; 13668us; 13669us; 13670us; 13671us; 13672us; 13673us; 13674us; 13675us; 13676us; 13745us; 13749us; 13750us; 13751us; 13753us; 13754us; 13755us; 13824us; 13894us; 13898us; 13899us; 13900us; 13901us; 13902us; 13971us; 13975us; 13976us; 13977us; 13978us; 13979us; 14057us; 14151us; 14245us; 14246us; 14256us; 14257us; 14258us; 14259us; 14260us; 14261us; 14262us; 14263us; 14264us; 14265us; 14267us; 14269us; 14271us; 14275us; 14342us; 14343us; 14344us; 14345us; 14346us; 14351us; 14356us; 14357us; 14359us; 14360us; 14434us; 14440us; 14441us; 14442us; 14443us; 14444us; 14445us; 14446us; 14447us; 14448us; 14449us; 14450us; 14451us; 14520us; 14587us; 14588us; 14655us; 14656us; 14730us; 14731us; 14732us; 14733us; 14800us; 14867us; 14870us; 14874us; 14875us; 14911us; 14913us; 14914us; 14915us; 14916us; 14918us; 14949us; 14953us; 14954us; 14985us; 14986us; 15021us; 15022us; 15052us; 15055us; 15082us; 15083us; 15086us; 15087us; 15155us; 15156us; 15159us; 15160us; 15162us; 15230us; 15231us; 15234us; 15235us; 15239us; 15240us; 15243us; 15244us; 15250us; 15252us; 15253us; 15254us; 15257us; 15259us; 15260us; 15261us; 15265us; 15267us; 15269us; 15270us; 15271us; 15273us; 15274us; 15275us; 15284us; 15359us; 15360us; 15361us; 15362us; 15366us; 15368us; 15372us; 15373us; 15376us; 15377us; 15378us; 15379us; 15383us; 15384us; 15387us; 15389us; 15390us; 15394us; 15395us; 15399us; 15400us; 15404us; 15405us; 15409us; 15410us; 15440us; 15449us; 15453us; 15455us; 15456us; 15457us; 15458us; 15493us; 15495us; 15564us; 15565us; 15566us; 15602us; 15605us; 15675us; 15679us; 15680us; 15681us; 15683us; 15684us; 15685us; 15687us; 15688us; 15690us; 15691us; 15730us; 15731us; 15770us; 15772us; 15773us; 15775us; 15780us; 15782us; 15787us; 15819us; 15820us; 15822us; 15854us; 15855us; 15857us; 15889us; 15890us; 15892us; 15924us; 15925us; 15956us; 15964us; 15994us; 16001us; 16003us; 16005us; 16035us; 16042us; 16050us; 16080us; 16087us; 16089us; 16091us; 16121us; 16128us; 16130us; 16161us; 16162us; 16171us; 16201us; 16202us; 16232us; 16233us; 16263us; 16264us; 16273us; 16303us; 16304us; 16334us; 16335us; 16343us; 16373us; 16374us; 16376us; 16377us; 16379us; 16381us; 16383us; 16388us; 16390us; 16391us; 16398us; 16399us; 16462us; 16464us; 16466us; 16467us; 16530us; 16531us; 16594us; 16626us; 16658us; 16662us; 16666us; 16671us; 16676us; 16677us; 16740us; 16741us; 16772us; 16803us; 16804us; 16867us; 16869us; 16871us; 16902us; 16933us; 16934us; 16997us; 17000us; 17001us; 17004us; 17005us; 17008us; 17009us; 17011us; 17012us; 17014us; 17045us; 17046us; 17048us; 17053us; 17084us; 17085us; 17086us; 17151us; 17154us; 17157us; 17160us; 17161us; 17224us; 17226us; 17228us; 17229us; 17292us; 17293us; 17323us; 17325us; 17326us; 17327us; 17359us; 17365us; 17372us; 17373us; 17374us; 17375us; 17376us; 17410us; 17411us; 17412us; 17416us; 17417us; 17418us; 17421us; 17425us; 17426us; 17434us; 17435us; 17436us; 17438us; 17439us; 17473us; 17475us; 17513us; 17514us; 17515us; 17516us; 17517us; 17521us; 17522us; 17523us; 17524us; 17525us; 17527us; 17558us; 17559us; 17560us; 17561us; 17570us; 17574us; 17575us; 17577us; 17578us; 17580us; 17581us; 17589us; 17595us; 17596us; 17598us; 17601us; 17602us; 17604us; 17605us; 17606us; 17613us; 17614us; 17615us; 17616us; 17617us; 17618us; 17626us; 17634us; 17642us; 17644us; 17645us; 17646us; 17648us; 17650us; 17651us; 17652us; 17653us; 17654us; 17663us; 17664us; 17665us; 17693us; 17697us; 17698us; 17702us; 17703us; 17704us; 17706us; 17712us; 17713us; 17715us; 17719us; 17720us; 17721us; 17722us; 17723us; 17724us; 17725us; 17726us; 17727us; 17728us; 17729us; 17730us; 17731us; 17732us; 17733us; 17734us; 17735us; 17736us; 17737us; 17738us; 17739us; 17740us; 17741us; 17742us; 17743us; 17745us; 17746us; 17748us; 17749us; 17750us; 17752us; 17753us; 17754us; 17755us; 17756us; 17758us; 17759us; 17764us; 17765us; 17766us; 17767us; 17768us; 17769us; 17770us; 17774us; 17775us; 17776us; 17777us; 17780us; 17781us; 17785us; 17786us; 17788us; 17790us; 17791us; 17792us; 17793us; 17794us; 17795us; 17796us; 17797us; 17798us; 17799us; 17800us; 17801us; 17802us; 17803us; 17804us; 17805us; 17806us; 17807us; 17808us; 17809us; 17810us; 17811us; 17812us; 17813us; 17814us; 17815us; 17816us; 17817us; 17818us; 17819us; 17823us; 17827us; 17828us; 17829us; 17830us; 17834us; 17838us; 17839us; 17840us; 17841us; 17845us; 17846us; 17847us; 17848us; 17852us; 17853us; 17854us; 17855us; 17859us; 17860us; 17861us; 17862us; 17863us; 17864us; 17865us; 17866us; 17867us; 17868us; 17869us; 17870us; 17871us; 17872us; |] +let _fsyacc_reductionSymbolCounts = [|1us; 1us; 1us; 1us; 1us; 1us; 3us; 1us; 1us; 1us; 0us; 2us; 1us; 1us; 1us; 2us; 2us; 2us; 3us; 3us; 3us; 1us; 2us; 3us; 1us; 2us; 3us; 2us; 2us; 3us; 2us; 3us; 2us; 1us; 2us; 2us; 1us; 3us; 1us; 2us; 2us; 1us; 3us; 4us; 1us; 4us; 1us; 1us; 4us; 3us; 3us; 1us; 1us; 0us; 3us; 3us; 2us; 4us; 3us; 3us; 1us; 1us; 0us; 5us; 4us; 3us; 1us; 2us; 2us; 3us; 1us; 2us; 3us; 1us; 1us; 3us; 3us; 3us; 5us; 3us; 5us; 2us; 1us; 3us; 1us; 3us; 3us; 3us; 3us; 3us; 1us; 1us; 3us; 3us; 3us; 0us; 3us; 1us; 1us; 5us; 5us; 3us; 3us; 2us; 12us; 0us; 2us; 4us; 3us; 5us; 3us; 1us; 0us; 1us; 2us; 5us; 4us; 4us; 2us; 1us; 3us; 3us; 4us; 6us; 2us; 2us; 2us; 2us; 2us; 3us; 1us; 3us; 2us; 7us; 2us; 1us; 1us; 3us; 1us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 1us; 1us; 0us; 3us; 2us; 1us; 1us; 1us; 1us; 1us; 2us; 0us; 2us; 3us; 3us; 1us; 3us; 11us; 4us; 4us; 4us; 5us; 5us; 5us; 3us; 3us; 0us; 1us; 3us; 2us; 8us; 7us; 6us; 2us; 1us; 1us; 3us; 1us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 1us; 1us; 2us; 0us; 3us; 2us; 3us; 3us; 1us; 3us; 6us; 5us; 4us; 1us; 2us; 3us; 4us; 5us; 5us; 10us; 3us; 4us; 5us; 5us; 8us; 5us; 6us; 8us; 0us; 2us; 3us; 1us; 2us; 0us; 1us; 1us; 1us; 1us; 1us; 0us; 3us; 0us; 3us; 0us; 3us; 0us; 3us; 5us; 2us; 1us; 0us; 2us; 1us; 0us; 2us; 2us; 3us; 3us; 1us; 3us; 2us; 4us; 4us; 3us; 4us; 1us; 1us; 6us; 3us; 3us; 3us; 5us; 3us; 3us; 3us; 3us; 1us; 1us; 1us; 1us; 1us; 2us; 3us; 3us; 1us; 3us; 3us; 1us; 2us; 5us; 3us; 1us; 0us; 5us; 1us; 0us; 1us; 0us; 0us; 2us; 3us; 1us; 4us; 3us; 3us; 4us; 3us; 5us; 7us; 4us; 4us; 3us; 3us; 1us; 2us; 3us; 1us; 1us; 3us; 1us; 4us; 6us; 6us; 6us; 1us; 3us; 4us; 2us; 4us; 2us; 3us; 4us; 1us; 3us; 1us; 3us; 2us; 2us; 5us; 2us; 2us; 1us; 5us; 1us; 3us; 0us; 2us; 2us; 3us; 1us; 2us; 4us; 3us; 1us; 1us; 1us; 1us; 1us; 1us; 8us; 1us; 1us; 0us; 3us; 3us; 2us; 3us; 1us; 4us; 2us; 2us; 2us; 2us; 2us; 2us; 3us; 0us; 2us; 1us; 6us; 6us; 5us; 3us; 3us; 1us; 2us; 2us; 0us; 4us; 3us; 1us; 3us; 2us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 3us; 1us; 1us; 2us; 3us; 2us; 1us; 3us; 3us; 2us; 3us; 3us; 2us; 3us; 3us; 3us; 1us; 1us; 1us; 3us; 3us; 3us; 3us; 2us; 3us; 4us; 4us; 2us; 1us; 2us; 3us; 3us; 1us; 1us; 3us; 3us; 3us; 3us; 1us; 2us; 1us; 1us; 1us; 1us; 1us; 3us; 3us; 3us; 2us; 1us; 0us; 3us; 3us; 1us; 1us; 3us; 2us; 3us; 1us; 3us; 3us; 3us; 3us; 1us; 2us; 3us; 3us; 0us; 2us; 3us; 3us; 3us; 1us; 3us; 1us; 2us; 1us; 3us; 1us; 3us; 2us; 1us; 3us; 5us; 1us; 1us; 1us; 3us; 3us; 2us; 2us; 3us; 3us; 1us; 1us; 1us; 3us; 3us; 3us; 3us; 4us; 3us; 3us; 2us; 2us; 2us; 1us; 2us; 2us; 1us; 5us; 5us; 5us; 3us; 2us; 3us; 5us; 5us; 5us; 4us; 3us; 5us; 5us; 5us; 4us; 3us; 5us; 2us; 4us; 3us; 2us; 2us; 7us; 7us; 7us; 5us; 3us; 4us; 2us; 3us; 3us; 3us; 3us; 3us; 1us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 1us; 1us; 3us; 2us; 3us; 3us; 1us; 2us; 2us; 1us; 2us; 2us; 4us; 4us; 3us; 2us; 2us; 0us; 2us; 2us; 2us; 4us; 4us; 0us; 2us; 4us; 4us; 3us; 3us; 3us; 3us; 3us; 3us; 2us; 2us; 2us; 2us; 2us; 2us; 4us; 4us; 2us; 2us; 2us; 1us; 2us; 1us; 2us; 1us; 3us; 3us; 3us; 2us; 3us; 3us; 2us; 3us; 1us; 1us; 3us; 3us; 3us; 2us; 1us; 1us; 0us; 1us; 5us; 3us; 3us; 3us; 3us; 2us; 3us; 5us; 7us; 9us; 3us; 2us; 2us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 3us; 3us; 3us; 2us; 3us; 3us; 3us; 2us; 3us; 3us; 3us; 2us; 2us; 3us; 3us; 3us; 2us; 2us; 2us; 2us; 2us; 6us; 1us; 1us; 1us; 3us; 3us; 1us; 3us; 3us; 3us; 2us; 2us; 1us; 1us; 1us; 1us; 0us; 1us; 1us; 3us; 5us; 3us; 2us; 3us; 3us; 3us; 2us; 5us; 6us; 2us; 0us; 0us; 1us; 0us; 4us; 0us; 2us; 3us; 6us; 5us; 1us; 2us; 5us; 5us; 4us; 6us; 1us; 0us; 1us; 1us; 2us; 2us; 1us; 1us; 3us; 0us; 3us; 2us; 3us; 1us; 2us; 4us; 3us; 2us; 5us; 4us; 2us; 1us; 0us; 2us; 3us; 3us; 2us; 0us; 2us; 2us; 5us; 1us; 1us; 4us; 4us; 5us; 5us; 5us; 4us; 4us; 3us; 2us; 3us; 1us; 3us; 1us; 3us; 0us; 2us; 3us; 1us; 3us; 1us; 3us; 1us; 4us; 5us; 2us; 3us; 4us; 1us; 3us; 1us; 3us; 2us; 3us; 1us; 3us; 3us; 1us; 3us; 1us; 1us; 1us; 3us; 1us; 2us; 3us; 2us; 4us; 1us; 3us; 3us; 2us; 3us; 4us; 5us; 4us; 3us; 3us; 0us; 1us; 3us; 4us; 2us; 3us; 2us; 4us; 1us; 3us; 3us; 1us; 3us; 4us; 2us; 1us; 1us; 3us; 3us; 1us; 1us; 2us; 1us; 1us; 3us; 2us; 3us; 4us; 3us; 1us; 2us; 6us; 6us; 4us; 3us; 3us; 2us; 2us; 1us; 3us; 2us; 1us; 1us; 0us; 3us; 3us; 1us; 1us; 3us; 1us; 3us; 4us; 1us; 1us; 2us; 1us; 3us; 3us; 2us; 2us; 1us; 2us; 1us; 1us; 1us; 3us; 3us; 3us; 3us; 1us; 4us; 6us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 2us; 2us; 1us; 2us; 3us; 1us; 1us; 1us; 1us; 3us; 3us; 1us; 1us; 1us; 1us; 1us; 2us; 1us; 1us; 1us; 2us; 2us; 0us; 2us; 0us; 1us; 1us; 2us; 2us; 1us; 1us; 1us; 1us; 1us; 1us; 0us; 1us; 0us; 1us; 0us; 1us; 0us; 1us; 0us; 1us; 0us; 1us; 0us; 1us; 0us; 1us; 0us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 0us; 1us; 0us; 2us; 1us; 1us; 2us; 1us; 1us; 2us; 1us; 1us; 2us; 1us; 1us; 2us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; |] +let _fsyacc_productionToNonTerminalTable = [|0us; 1us; 2us; 3us; 3us; 3us; 4us; 5us; 5us; 6us; 7us; 7us; 8us; 8us; 9us; 9us; 9us; 9us; 9us; 9us; 9us; 10us; 10us; 11us; 12us; 13us; 13us; 13us; 14us; 14us; 14us; 15us; 16us; 17us; 17us; 18us; 18us; 19us; 20us; 20us; 21us; 21us; 22us; 23us; 23us; 24us; 24us; 25us; 25us; 25us; 25us; 26us; 26us; 26us; 27us; 27us; 27us; 28us; 28us; 28us; 28us; 29us; 29us; 30us; 30us; 30us; 30us; 30us; 31us; 31us; 31us; 31us; 31us; 32us; 32us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 34us; 34us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 36us; 36us; 36us; 37us; 38us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 40us; 41us; 41us; 41us; 42us; 42us; 42us; 43us; 43us; 44us; 44us; 45us; 45us; 45us; 45us; 46us; 46us; 47us; 47us; 47us; 48us; 48us; 48us; 48us; 49us; 50us; 50us; 51us; 51us; 52us; 52us; 53us; 53us; 53us; 54us; 54us; 54us; 54us; 55us; 55us; 55us; 55us; 56us; 56us; 56us; 57us; 57us; 58us; 59us; 59us; 59us; 59us; 60us; 60us; 60us; 61us; 61us; 61us; 61us; 62us; 62us; 63us; 63us; 63us; 63us; 63us; 63us; 63us; 64us; 65us; 65us; 66us; 66us; 66us; 66us; 67us; 67us; 67us; 68us; 68us; 68us; 69us; 69us; 69us; 69us; 70us; 70us; 71us; 71us; 71us; 72us; 72us; 72us; 73us; 74us; 74us; 74us; 75us; 75us; 76us; 77us; 77us; 78us; 78us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 80us; 81us; 82us; 82us; 83us; 83us; 83us; 84us; 84us; 85us; 85us; 85us; 86us; 86us; 87us; 87us; 88us; 88us; 89us; 89us; 90us; 90us; 90us; 91us; 91us; 92us; 93us; 93us; 94us; 94us; 95us; 95us; 95us; 96us; 96us; 97us; 97us; 97us; 97us; 98us; 98us; 99us; 99us; 99us; 99us; 99us; 100us; 100us; 100us; 101us; 102us; 102us; 102us; 103us; 103us; 104us; 104us; 104us; 105us; 105us; 106us; 106us; 107us; 108us; 109us; 109us; 109us; 110us; 111us; 111us; 112us; 112us; 113us; 113us; 114us; 114us; 115us; 115us; 115us; 115us; 115us; 115us; 115us; 115us; 115us; 115us; 116us; 116us; 117us; 117us; 117us; 118us; 119us; 119us; 120us; 120us; 120us; 120us; 121us; 121us; 121us; 122us; 122us; 122us; 123us; 123us; 124us; 124us; 124us; 125us; 125us; 126us; 127us; 128us; 129us; 130us; 131us; 132us; 132us; 133us; 133us; 134us; 135us; 135us; 136us; 137us; 138us; 139us; 139us; 139us; 139us; 140us; 140us; 141us; 142us; 142us; 142us; 143us; 143us; 144us; 144us; 145us; 145us; 145us; 145us; 145us; 146us; 146us; 147us; 148us; 148us; 149us; 149us; 150us; 150us; 150us; 151us; 151us; 151us; 152us; 153us; 153us; 154us; 155us; 155us; 156us; 156us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 158us; 158us; 159us; 160us; 160us; 160us; 160us; 161us; 161us; 162us; 162us; 162us; 162us; 162us; 163us; 163us; 163us; 163us; 163us; 163us; 164us; 164us; 165us; 165us; 166us; 166us; 166us; 166us; 166us; 166us; 167us; 167us; 167us; 167us; 168us; 168us; 168us; 168us; 168us; 168us; 168us; 168us; 168us; 168us; 168us; 168us; 168us; 168us; 168us; 168us; 169us; 169us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 171us; 171us; 172us; 172us; 173us; 174us; 174us; 175us; 176us; 176us; 176us; 177us; 177us; 177us; 178us; 178us; 179us; 179us; 180us; 180us; 181us; 181us; 181us; 181us; 181us; 181us; 182us; 182us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 184us; 184us; 185us; 185us; 185us; 186us; 186us; 186us; 186us; 187us; 188us; 188us; 188us; 188us; 188us; 189us; 189us; 190us; 191us; 192us; 192us; 192us; 193us; 193us; 193us; 193us; 193us; 193us; 194us; 194us; 194us; 194us; 195us; 195us; 195us; 195us; 195us; 195us; 195us; 195us; 195us; 195us; 195us; 195us; 196us; 196us; 197us; 197us; 198us; 198us; 198us; 198us; 198us; 198us; 198us; 198us; 198us; 198us; 198us; 198us; 198us; 198us; 198us; 199us; 199us; 199us; 199us; 199us; 199us; 199us; 199us; 199us; 199us; 199us; 199us; 199us; 200us; 200us; 200us; 200us; 201us; 201us; 201us; 201us; 201us; 201us; 201us; 201us; 201us; 202us; 202us; 202us; 202us; 203us; 203us; 203us; 203us; 204us; 204us; 204us; 204us; 205us; 205us; 205us; 205us; 205us; 205us; 205us; 205us; 205us; 206us; 206us; 206us; 207us; 207us; 208us; 208us; 209us; 209us; 209us; 209us; 209us; 210us; 210us; 210us; 211us; 211us; 212us; 212us; 213us; 213us; 213us; 214us; 215us; 215us; 215us; 215us; 216us; 217us; 218us; 218us; 219us; 219us; 220us; 220us; 221us; 221us; 221us; 222us; 222us; 222us; 222us; 222us; 222us; 222us; 222us; 223us; 223us; 224us; 224us; 224us; 224us; 225us; 225us; 226us; 226us; 227us; 227us; 227us; 227us; 227us; 228us; 228us; 228us; 229us; 229us; 229us; 230us; 230us; 231us; 231us; 231us; 232us; 233us; 233us; 233us; 234us; 235us; 235us; 236us; 236us; 236us; 236us; 236us; 236us; 236us; 236us; 237us; 237us; 238us; 238us; 239us; 239us; 240us; 240us; 241us; 241us; 242us; 242us; 243us; 243us; 244us; 244us; 244us; 244us; 244us; 244us; 245us; 245us; 246us; 246us; 246us; 246us; 247us; 247us; 247us; 248us; 248us; 249us; 249us; 250us; 250us; 251us; 251us; 251us; 251us; 251us; 251us; 251us; 252us; 252us; 252us; 252us; 253us; 254us; 254us; 254us; 255us; 255us; 255us; 256us; 256us; 256us; 256us; 256us; 256us; 256us; 257us; 257us; 257us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 259us; 259us; 260us; 260us; 260us; 260us; 260us; 260us; 260us; 261us; 261us; 261us; 262us; 262us; 263us; 264us; 264us; 265us; 265us; 265us; 266us; 266us; 266us; 266us; 267us; 267us; 268us; 268us; 268us; 268us; 269us; 269us; 270us; 271us; 272us; 272us; 272us; 272us; 273us; 273us; 273us; 273us; 273us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 275us; 276us; 276us; 277us; 277us; 278us; 278us; 278us; 278us; 279us; 280us; 280us; 280us; 281us; 281us; 282us; 282us; 283us; 283us; 284us; 284us; 285us; 285us; 286us; 286us; 286us; 286us; 287us; 287us; 287us; 288us; 288us; 288us; 288us; 289us; 289us; 290us; 290us; 291us; 291us; 292us; 292us; 293us; 293us; 294us; 294us; 295us; 295us; 296us; 296us; 297us; 297us; 298us; 298us; 299us; 299us; 300us; 300us; 301us; 301us; 302us; 303us; 303us; 303us; 304us; 304us; 305us; 305us; 305us; 306us; 306us; 306us; 307us; 307us; 307us; 308us; 308us; 308us; 309us; 309us; 309us; 310us; 310us; 310us; 310us; 310us; 311us; 311us; 311us; 311us; 311us; 311us; |] +let _fsyacc_immediateActions = [|65535us; 49152us; 65535us; 49152us; 65535us; 49152us; 16387us; 16388us; 16389us; 65535us; 65535us; 65535us; 16391us; 16392us; 16393us; 16395us; 16396us; 16397us; 16398us; 65535us; 16399us; 65535us; 16400us; 65535us; 16401us; 65535us; 16402us; 65535us; 16403us; 65535us; 16404us; 65535us; 16406us; 65535us; 65535us; 65535us; 16408us; 65535us; 16409us; 65535us; 16410us; 65535us; 16411us; 65535us; 16412us; 65535us; 16413us; 65535us; 16414us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16418us; 65535us; 16419us; 65535us; 65535us; 16421us; 65535us; 16423us; 65535us; 16424us; 65535us; 65535us; 16426us; 65535us; 65535us; 65535us; 16427us; 16428us; 65535us; 65535us; 65535us; 16429us; 16430us; 16431us; 65535us; 65535us; 65535us; 16432us; 16433us; 65535us; 16434us; 16435us; 65535us; 65535us; 65535us; 16438us; 65535us; 65535us; 16439us; 65535us; 65535us; 65535us; 16441us; 16442us; 65535us; 16443us; 16444us; 16445us; 65535us; 65535us; 65535us; 65535us; 16447us; 16450us; 16451us; 65535us; 16452us; 65535us; 16453us; 65535us; 65535us; 65535us; 65535us; 16456us; 16457us; 16458us; 65535us; 65535us; 16459us; 65535us; 16460us; 65535us; 16461us; 65535us; 65535us; 16462us; 16463us; 65535us; 65535us; 16464us; 65535us; 16465us; 16466us; 65535us; 65535us; 16467us; 65535us; 65535us; 65535us; 16469us; 16470us; 65535us; 16471us; 16472us; 16473us; 16474us; 65535us; 65535us; 65535us; 16476us; 16477us; 16478us; 65535us; 65535us; 16480us; 16481us; 16482us; 65535us; 65535us; 65535us; 65535us; 16483us; 16484us; 16485us; 16486us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16488us; 65535us; 65535us; 65535us; 65535us; 16491us; 65535us; 16492us; 65535us; 65535us; 65535us; 16493us; 65535us; 65535us; 16494us; 16495us; 65535us; 16498us; 65535us; 65535us; 65535us; 65535us; 16499us; 65535us; 65535us; 16500us; 16501us; 16502us; 16503us; 65535us; 16504us; 65535us; 65535us; 16505us; 65535us; 65535us; 65535us; 16506us; 65535us; 65535us; 65535us; 65535us; 16507us; 65535us; 16508us; 65535us; 16509us; 65535us; 16510us; 65535us; 16511us; 65535us; 16512us; 65535us; 65535us; 16513us; 65535us; 65535us; 16515us; 16516us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16517us; 65535us; 16518us; 16519us; 16520us; 65535us; 65535us; 16521us; 16522us; 65535us; 65535us; 16523us; 16524us; 65535us; 16525us; 65535us; 65535us; 16526us; 16527us; 65535us; 65535us; 16528us; 16529us; 65535us; 65535us; 16530us; 16531us; 16532us; 16533us; 65535us; 65535us; 16535us; 65535us; 65535us; 16536us; 16537us; 16538us; 16539us; 16540us; 65535us; 16542us; 65535us; 16544us; 65535us; 65535us; 16545us; 16546us; 65535us; 65535us; 16548us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16549us; 65535us; 65535us; 65535us; 65535us; 65535us; 16552us; 65535us; 16553us; 65535us; 16554us; 65535us; 65535us; 16555us; 65535us; 65535us; 16556us; 65535us; 65535us; 16557us; 65535us; 65535us; 16560us; 16561us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16562us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16563us; 16564us; 65535us; 16565us; 16566us; 16567us; 65535us; 65535us; 16568us; 16569us; 65535us; 65535us; 16570us; 16571us; 65535us; 16572us; 65535us; 65535us; 16573us; 16574us; 65535us; 65535us; 16575us; 16576us; 16577us; 16578us; 65535us; 16579us; 65535us; 65535us; 16581us; 65535us; 16582us; 65535us; 65535us; 16583us; 16584us; 65535us; 65535us; 16586us; 65535us; 65535us; 65535us; 65535us; 65535us; 16587us; 65535us; 65535us; 65535us; 65535us; 16588us; 16589us; 65535us; 16591us; 65535us; 65535us; 65535us; 65535us; 16592us; 16593us; 65535us; 65535us; 16594us; 65535us; 65535us; 16595us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16596us; 16597us; 65535us; 16598us; 65535us; 16599us; 65535us; 16600us; 65535us; 65535us; 65535us; 65535us; 65535us; 16601us; 65535us; 16602us; 65535us; 65535us; 65535us; 65535us; 65535us; 16603us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16604us; 65535us; 16606us; 65535us; 65535us; 16607us; 16608us; 65535us; 16609us; 16611us; 16612us; 16613us; 16614us; 16615us; 65535us; 65535us; 16617us; 65535us; 65535us; 16619us; 65535us; 65535us; 16621us; 65535us; 65535us; 16623us; 65535us; 65535us; 16624us; 16625us; 16626us; 65535us; 16628us; 16629us; 65535us; 16631us; 16632us; 65535us; 65535us; 16633us; 16634us; 16635us; 65535us; 65535us; 16636us; 65535us; 65535us; 65535us; 65535us; 16638us; 65535us; 16639us; 16640us; 65535us; 65535us; 16641us; 16642us; 16643us; 65535us; 65535us; 65535us; 65535us; 65535us; 16644us; 16645us; 16646us; 16647us; 65535us; 65535us; 16648us; 65535us; 65535us; 16649us; 16650us; 65535us; 16651us; 65535us; 65535us; 16652us; 16653us; 16654us; 16655us; 16656us; 16657us; 65535us; 65535us; 65535us; 65535us; 16660us; 16661us; 65535us; 65535us; 16662us; 65535us; 65535us; 65535us; 65535us; 16663us; 16664us; 65535us; 16665us; 65535us; 65535us; 65535us; 16666us; 16667us; 65535us; 65535us; 65535us; 65535us; 16670us; 16671us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16677us; 16678us; 65535us; 65535us; 65535us; 16679us; 65535us; 65535us; 16680us; 65535us; 16681us; 65535us; 16682us; 16683us; 65535us; 65535us; 16684us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16685us; 65535us; 16686us; 16687us; 65535us; 16689us; 16690us; 65535us; 16691us; 65535us; 65535us; 16692us; 65535us; 16694us; 65535us; 65535us; 16695us; 65535us; 65535us; 65535us; 16697us; 65535us; 65535us; 16698us; 65535us; 65535us; 16699us; 65535us; 65535us; 16700us; 16701us; 65535us; 65535us; 16702us; 65535us; 65535us; 16703us; 65535us; 16704us; 65535us; 65535us; 65535us; 16706us; 65535us; 16707us; 16709us; 65535us; 65535us; 16710us; 65535us; 65535us; 16712us; 16713us; 65535us; 16714us; 65535us; 65535us; 65535us; 65535us; 16715us; 65535us; 16716us; 65535us; 16717us; 16718us; 65535us; 65535us; 65535us; 65535us; 16719us; 65535us; 65535us; 16721us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16725us; 16726us; 65535us; 16727us; 65535us; 65535us; 65535us; 16728us; 65535us; 65535us; 16729us; 16730us; 16731us; 16732us; 16733us; 16734us; 16735us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16736us; 65535us; 65535us; 65535us; 16740us; 65535us; 16741us; 65535us; 65535us; 16743us; 65535us; 65535us; 65535us; 65535us; 16745us; 16746us; 16747us; 65535us; 65535us; 16748us; 65535us; 65535us; 16751us; 65535us; 65535us; 16752us; 65535us; 16754us; 16755us; 65535us; 65535us; 65535us; 65535us; 65535us; 16756us; 16757us; 16758us; 65535us; 65535us; 16759us; 16760us; 16761us; 65535us; 65535us; 16763us; 65535us; 65535us; 65535us; 16765us; 65535us; 16766us; 16767us; 65535us; 65535us; 16768us; 16769us; 16770us; 16771us; 16772us; 16773us; 16774us; 16775us; 16776us; 16777us; 16778us; 16779us; 16780us; 16781us; 16782us; 65535us; 16783us; 16784us; 16785us; 16786us; 65535us; 65535us; 16788us; 65535us; 16790us; 65535us; 16791us; 65535us; 65535us; 65535us; 16792us; 65535us; 65535us; 16795us; 65535us; 65535us; 16796us; 16797us; 16798us; 65535us; 16799us; 16800us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16801us; 65535us; 65535us; 65535us; 65535us; 16806us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16812us; 65535us; 16813us; 65535us; 16814us; 65535us; 65535us; 16816us; 65535us; 16817us; 65535us; 16818us; 65535us; 16819us; 16821us; 65535us; 16822us; 65535us; 65535us; 16823us; 65535us; 65535us; 16824us; 65535us; 65535us; 16825us; 16826us; 65535us; 65535us; 16827us; 16828us; 16829us; 16830us; 16831us; 16832us; 65535us; 65535us; 16833us; 16834us; 65535us; 65535us; 16836us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16839us; 65535us; 65535us; 65535us; 65535us; 16843us; 65535us; 65535us; 16846us; 65535us; 65535us; 65535us; 65535us; 16851us; 65535us; 16852us; 65535us; 16853us; 65535us; 65535us; 16856us; 65535us; 16857us; 65535us; 65535us; 16858us; 16859us; 16860us; 65535us; 65535us; 16861us; 65535us; 65535us; 16863us; 65535us; 65535us; 16865us; 65535us; 65535us; 65535us; 65535us; 16867us; 65535us; 16870us; 65535us; 65535us; 65535us; 16871us; 65535us; 16873us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16874us; 65535us; 65535us; 16875us; 16876us; 65535us; 16877us; 16878us; 65535us; 16879us; 16880us; 16881us; 16882us; 16883us; 65535us; 65535us; 16884us; 16885us; 65535us; 65535us; 16886us; 16887us; 65535us; 16888us; 65535us; 65535us; 16889us; 16890us; 16891us; 65535us; 65535us; 65535us; 65535us; 65535us; 16895us; 65535us; 16896us; 65535us; 65535us; 65535us; 65535us; 16898us; 16899us; 65535us; 16900us; 16901us; 16902us; 16903us; 65535us; 65535us; 65535us; 65535us; 16904us; 16905us; 16906us; 16907us; 16908us; 65535us; 65535us; 65535us; 16909us; 16910us; 16911us; 16912us; 16913us; 65535us; 65535us; 16914us; 16915us; 16916us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16920us; 65535us; 65535us; 65535us; 65535us; 65535us; 16921us; 16922us; 65535us; 65535us; 65535us; 65535us; 16923us; 65535us; 65535us; 16924us; 65535us; 16925us; 65535us; 16926us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16927us; 65535us; 16928us; 65535us; 16929us; 65535us; 65535us; 65535us; 16931us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16953us; 16954us; 16955us; 16956us; 16957us; 16958us; 16959us; 16960us; 16961us; 16962us; 16963us; 16964us; 16965us; 16966us; 16967us; 16968us; 16969us; 16970us; 16971us; 16972us; 16974us; 65535us; 65535us; 16975us; 65535us; 16976us; 65535us; 65535us; 16977us; 16978us; 16979us; 65535us; 16980us; 16981us; 16982us; 16983us; 65535us; 65535us; 65535us; 16985us; 16986us; 16987us; 16988us; 65535us; 65535us; 16991us; 65535us; 16992us; 65535us; 65535us; 65535us; 65535us; 16994us; 16995us; 65535us; 65535us; 65535us; 65535us; 16998us; 16999us; 65535us; 17000us; 17001us; 65535us; 17003us; 65535us; 17004us; 65535us; 65535us; 17006us; 65535us; 65535us; 17007us; 65535us; 65535us; 17008us; 65535us; 65535us; 17009us; 65535us; 65535us; 17010us; 65535us; 65535us; 17011us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 17012us; 65535us; 17013us; 17014us; 65535us; 17015us; 65535us; 17016us; 65535us; 65535us; 17018us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 17024us; 65535us; 65535us; 65535us; 17026us; 65535us; 65535us; 17027us; 65535us; 65535us; 17028us; 65535us; 17029us; 17030us; 17031us; 65535us; 65535us; 17032us; 17033us; 17034us; 17035us; 17036us; 17037us; 17039us; 65535us; 65535us; 65535us; 65535us; 17040us; 65535us; 17041us; 65535us; 65535us; 17042us; 17043us; 17044us; 17045us; 65535us; 17046us; 65535us; 65535us; 17047us; 65535us; 65535us; 17048us; 65535us; 65535us; 17049us; 65535us; 65535us; 17053us; 17054us; 17055us; 17056us; 17057us; 17058us; 17059us; 17060us; 17061us; 17062us; 65535us; 65535us; 17063us; 17064us; 65535us; 17065us; 17066us; 65535us; 65535us; 65535us; 17067us; 17068us; 17069us; 17070us; 65535us; 65535us; 17071us; 17072us; 17073us; 17074us; 65535us; 65535us; 65535us; 17075us; 65535us; 17076us; 17077us; 17078us; 65535us; 17079us; 17080us; 17081us; 17082us; 17083us; 65535us; 65535us; 65535us; 65535us; 65535us; 17084us; 17085us; 17086us; 17087us; 65535us; 65535us; 17088us; 65535us; 17089us; 65535us; 65535us; 17091us; 17092us; 17093us; 17094us; 17095us; 17096us; 17097us; 17098us; 17099us; 17101us; 17102us; 65535us; 65535us; 17105us; 65535us; 17106us; 65535us; 17108us; 17109us; 17110us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 17112us; 17113us; 17116us; 65535us; 65535us; 65535us; 17118us; 65535us; 17120us; 65535us; 17121us; 65535us; 65535us; 65535us; 65535us; 65535us; 17122us; 65535us; 65535us; 65535us; 17123us; 65535us; 65535us; 65535us; 65535us; 17126us; 65535us; 65535us; 65535us; 17127us; 65535us; 65535us; 17128us; 65535us; 65535us; 65535us; 17129us; 17130us; 65535us; 65535us; 65535us; 17134us; 17135us; 65535us; 17137us; 17138us; 65535us; 65535us; 17140us; 17142us; 17144us; 65535us; 65535us; 65535us; 17145us; 65535us; 17146us; 17148us; 17151us; 65535us; 17153us; 65535us; 65535us; 17154us; 65535us; 17155us; 65535us; 17156us; 65535us; 17158us; 65535us; 17159us; 65535us; 65535us; 65535us; 65535us; 17160us; 17161us; 17162us; 65535us; 65535us; 65535us; 17163us; 17164us; 65535us; 65535us; 65535us; 65535us; 17165us; 17166us; 65535us; 17167us; 17168us; 65535us; 17169us; 65535us; 17170us; 65535us; 17171us; 65535us; 65535us; 17172us; 65535us; 65535us; 65535us; 65535us; 65535us; 17178us; 65535us; 65535us; 17179us; 65535us; 65535us; 17181us; 65535us; 65535us; 17183us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 17191us; 65535us; 65535us; 17193us; 65535us; 17194us; 65535us; 17195us; 65535us; 65535us; 17197us; 65535us; 17198us; 65535us; 65535us; 17200us; 65535us; 17203us; 65535us; 65535us; 65535us; 65535us; 65535us; 17204us; 65535us; 17206us; 65535us; 65535us; 65535us; 17207us; 65535us; 17208us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 17209us; 65535us; 17210us; 65535us; 65535us; 17211us; 65535us; 65535us; 65535us; 65535us; 65535us; 17212us; 65535us; 65535us; 17213us; 65535us; 17214us; 65535us; 17215us; 65535us; 17216us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 17218us; 17219us; 65535us; 65535us; 65535us; 65535us; 17222us; 65535us; 65535us; 65535us; 17223us; 65535us; 17228us; 65535us; 65535us; 17235us; 17236us; 65535us; 65535us; 65535us; 17237us; 17238us; 17239us; 17240us; 65535us; 17242us; 17243us; 65535us; 17244us; 17245us; 65535us; 65535us; 17247us; 65535us; 17248us; 17249us; 65535us; 17250us; 65535us; 65535us; 65535us; 65535us; 17251us; 17252us; 17253us; 65535us; 17254us; 17255us; 17256us; 17257us; 65535us; 65535us; 17259us; 17261us; 17262us; 65535us; 65535us; 17264us; 65535us; 17265us; 65535us; 17267us; 65535us; 65535us; 17268us; 65535us; 65535us; 17270us; 65535us; 17271us; 17272us; 65535us; 17274us; 17275us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 17279us; 17280us; 65535us; 65535us; 17281us; 17282us; 17283us; 17284us; 65535us; 17285us; 17286us; 65535us; 65535us; 17287us; 65535us; 17288us; 17289us; 65535us; 65535us; 17290us; 65535us; 65535us; 17291us; 17292us; 17293us; 17294us; 17295us; 17296us; 17297us; 17298us; 17299us; 17300us; 17301us; 17302us; 17303us; 17304us; 17305us; 17306us; 17307us; 17308us; 17309us; 17310us; 17311us; 17312us; 17313us; 17314us; 65535us; 17316us; 65535us; 17317us; 17318us; 65535us; 17319us; 17320us; 17321us; 17322us; 65535us; 17324us; 65535us; 17325us; 17326us; 17327us; 17328us; 17329us; 17330us; 65535us; 17332us; 17333us; 17334us; 65535us; 17336us; 65535us; 17339us; 65535us; 65535us; 17343us; 17344us; 17345us; 17346us; 17347us; 17348us; 17349us; 17350us; 17352us; 17354us; 17356us; 17358us; 17360us; 17364us; 17366us; 17368us; 17369us; 17370us; 17371us; 17372us; 17373us; 17374us; 17375us; 17376us; 17377us; 17378us; 17379us; 17380us; 17382us; 65535us; 65535us; 17384us; 17385us; 17386us; 65535us; 65535us; 17387us; 17388us; 17389us; 65535us; 17390us; 17391us; 17392us; 65535us; 17393us; 17394us; 17395us; 65535us; 17396us; 17397us; 17398us; 17399us; 17400us; 17401us; 17402us; 17403us; 17404us; 17405us; 17406us; 17407us; 17408us; 17409us; |] +let _fsyacc_reductions () = [| +# 2706 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.ParsedSigFile)) in + Microsoft.FSharp.Core.Operators.box + ( + ( + raise (Internal.Utilities.Text.Parsing.Accept(Microsoft.FSharp.Core.Operators.box _1)) + ) + : '_startsignatureFile)); +# 2715 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.ParsedImplFile)) in + Microsoft.FSharp.Core.Operators.box + ( + ( + raise (Internal.Utilities.Text.Parsing.Accept(Microsoft.FSharp.Core.Operators.box _1)) + ) + : '_startimplementationFile)); +# 2724 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.ParsedFsiInteraction)) in + Microsoft.FSharp.Core.Operators.box + ( + ( + raise (Internal.Utilities.Text.Parsing.Accept(Microsoft.FSharp.Core.Operators.box _1)) + ) + : '_startinteraction)); +# 2733 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveItemsTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 494 "..\pars.fsy" + IDefns (_1,lhs parseState) + ) +# 494 "..\pars.fsy" + : Ast.ParsedFsiInteraction)); +# 2744 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 496 "..\pars.fsy" + warning(Error(FSComp.SR.parsUnexpectedSemicolon(),rhs parseState 1)); + IDefns ([],lhs parseState) + ) +# 496 "..\pars.fsy" + : Ast.ParsedFsiInteraction)); +# 2755 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 499 "..\pars.fsy" + IDefns ([],lhs parseState) + ) +# 499 "..\pars.fsy" + : Ast.ParsedFsiInteraction)); +# 2765 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'hashDirectiveArgs)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 503 "..\pars.fsy" + ParsedHashDirective (_2,_3,lhs parseState) + ) +# 503 "..\pars.fsy" + : 'hashDirective)); +# 2777 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 506 "..\pars.fsy" + _1 + ) +# 506 "..\pars.fsy" + : 'stringOrKeywordString)); +# 2788 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 507 "..\pars.fsy" + _1 + ) +# 507 "..\pars.fsy" + : 'stringOrKeywordString)); +# 2799 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'stringOrKeywordString)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 510 "..\pars.fsy" + _1 + ) +# 510 "..\pars.fsy" + : 'hashDirectiveArg)); +# 2810 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 514 "..\pars.fsy" + [] + ) +# 514 "..\pars.fsy" + : 'hashDirectiveArgs)); +# 2820 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hashDirectiveArgs)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'hashDirectiveArg)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 516 "..\pars.fsy" + _1 @ [_2] + ) +# 516 "..\pars.fsy" + : 'hashDirectiveArgs)); +# 2832 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 519 "..\pars.fsy" + + ) +# 519 "..\pars.fsy" + : 'interactiveTerminator)); +# 2842 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LexerWhitespaceContinuation)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 520 "..\pars.fsy" + + ) +# 520 "..\pars.fsy" + : 'interactiveTerminator)); +# 2853 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 532 "..\pars.fsy" + [] + ) +# 532 "..\pars.fsy" + : 'interactiveItemsTerminator)); +# 2864 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveModuleDefns)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 533 "..\pars.fsy" + _1 + ) +# 533 "..\pars.fsy" + : 'interactiveItemsTerminator)); +# 2876 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 534 "..\pars.fsy" + _1 + ) +# 534 "..\pars.fsy" + : 'interactiveItemsTerminator)); +# 2888 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveHash)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 535 "..\pars.fsy" + _1 + ) +# 535 "..\pars.fsy" + : 'interactiveItemsTerminator)); +# 2900 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveModuleDefns)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveSeparators)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveItemsTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 536 "..\pars.fsy" + _1 @ _3 + ) +# 536 "..\pars.fsy" + : 'interactiveItemsTerminator)); +# 2913 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveSeparators)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveItemsTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 537 "..\pars.fsy" + _1 @ _3 + ) +# 537 "..\pars.fsy" + : 'interactiveItemsTerminator)); +# 2926 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveHash)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveSeparators)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveItemsTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 538 "..\pars.fsy" + _1 @ _3 + ) +# 538 "..\pars.fsy" + : 'interactiveItemsTerminator)); +# 2939 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 542 "..\pars.fsy" + _1 + ) +# 542 "..\pars.fsy" + : 'interactiveModuleDefns)); +# 2950 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefn)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveModuleDefns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 543 "..\pars.fsy" + _1 @ _2 + ) +# 543 "..\pars.fsy" + : 'interactiveModuleDefns)); +# 2962 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 547 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsUnexpectedVisibilityDeclaration(),rhs parseState 3)); + let attrDecls = if nonNil _1 then [ SynModuleDecl.Attributes (_1, rangeOfNonNilAttrs _1) ] else [] in + attrDecls @ [ mkSynDoDecl(_3)] + ) +# 547 "..\pars.fsy" + : 'interactiveExpr)); +# 2977 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hashDirective)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 552 "..\pars.fsy" + [SynModuleDecl.HashDirective(_1,rhs parseState 1)] + ) +# 552 "..\pars.fsy" + : 'interactiveHash)); +# 2988 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceSpecs)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LexerWhitespaceContinuation)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 558 "..\pars.fsy" + checkEndOfFileError _2; _1 + ) +# 558 "..\pars.fsy" + : Ast.ParsedSigFile)); +# 3000 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceSpecs)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LexerWhitespaceContinuation)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 560 "..\pars.fsy" + _1 + ) +# 560 "..\pars.fsy" + : Ast.ParsedSigFile)); +# 3012 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LexerWhitespaceContinuation)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 566 "..\pars.fsy" + let emptySigFileFrag = ParsedSigFileFragment.AnonModule([],rhs parseState 1) in + ParsedSigFile([],[emptySigFileFrag]) + ) +# 566 "..\pars.fsy" + : Ast.ParsedSigFile)); +# 3024 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceImpls)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LexerWhitespaceContinuation)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 571 "..\pars.fsy" + checkEndOfFileError _2; _1 + ) +# 571 "..\pars.fsy" + : Ast.ParsedImplFile)); +# 3036 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceImpls)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LexerWhitespaceContinuation)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 573 "..\pars.fsy" + _1 + ) +# 573 "..\pars.fsy" + : Ast.ParsedImplFile)); +# 3048 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LexerWhitespaceContinuation)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 579 "..\pars.fsy" + let emptyImplFileFrag = ParsedImplFileFragment.AnonModule([],rhs parseState 1) in + ParsedImplFile([],[emptyImplFileFrag]) + ) +# 579 "..\pars.fsy" + : Ast.ParsedImplFile)); +# 3060 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'module_keyword)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 583 "..\pars.fsy" + _3.Lid,grabXmlDoc(parseState,1),_2 + ) +# 583 "..\pars.fsy" + : 'moduleIntro)); +# 3073 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 586 "..\pars.fsy" + _2.Lid,grabXmlDoc(parseState,1) + ) +# 586 "..\pars.fsy" + : 'namespaceIntro)); +# 3084 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileModuleSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 590 "..\pars.fsy" + ParsedSigFile([],[ (_1 ([],PreXmlDoc.Empty)) ]) + ) +# 590 "..\pars.fsy" + : 'fileNamespaceSpecs)); +# 3095 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileModuleSpec)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceSpecList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 592 "..\pars.fsy" + // If there are namespaces, the first fileModuleImpl may only contain # directives + let decls = + match (_1 ([],PreXmlDoc.Empty)) with + | ParsedSigFileFragment.AnonModule(decls,m) -> decls + | ParsedSigFileFragment.NamespaceFragment(_,_, decls, _,_,_) -> decls + | ParsedSigFileFragment.NamedModule(SynModuleOrNamespaceSig(_,_,_,_,_,_,m)) -> + raiseParseErrorAt m (FSComp.SR.parsOnlyHashDirectivesAllowed()) + let decls = + decls |> List.collect (function + | (SynModuleSigDecl.HashDirective (hd,_)) -> [hd] + | d -> + reportParseErrorAt d.Range (FSComp.SR.parsOnlyHashDirectivesAllowed()); + []) + ParsedSigFile(decls, _2) + ) +# 592 "..\pars.fsy" + : 'fileNamespaceSpecs)); +# 3120 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceSpec)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceSpecList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 608 "..\pars.fsy" + _1 :: _2 + ) +# 608 "..\pars.fsy" + : 'fileNamespaceSpecList)); +# 3132 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 609 "..\pars.fsy" + [_1] + ) +# 609 "..\pars.fsy" + : 'fileNamespaceSpecList)); +# 3143 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'namespaceIntro)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'deprecated_opt_equals)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileModuleSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 613 "..\pars.fsy" + let path,xml = _1 in (_3 (path,xml)) + ) +# 613 "..\pars.fsy" + : 'fileNamespaceSpec)); +# 3156 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileModuleImpl)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 617 "..\pars.fsy" + ParsedImplFile([], [ (_1 ([],PreXmlDoc.Empty)) ]) + ) +# 617 "..\pars.fsy" + : 'fileNamespaceImpls)); +# 3167 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileModuleImpl)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceImplList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 619 "..\pars.fsy" + // If there are namespaces, the first fileModuleImpl may only contain # directives + let decls = + match (_1 ([],PreXmlDoc.Empty)) with + | ParsedImplFileFragment.AnonModule(decls,m) -> decls + | ParsedImplFileFragment.NamespaceFragment(_,_, decls, _,_,_) -> decls + | ParsedImplFileFragment.NamedModule(SynModuleOrNamespace(_,_,_,_,_,_,m)) -> + raiseParseErrorAt m (FSComp.SR.parsOnlyHashDirectivesAllowed()) + let decls = + decls |> List.collect (function + | (SynModuleDecl.HashDirective (hd,_)) -> [hd] + | d -> + reportParseErrorAt d.Range (FSComp.SR.parsOnlyHashDirectivesAllowed()); + []) + ParsedImplFile(decls, _2) + ) +# 619 "..\pars.fsy" + : 'fileNamespaceImpls)); +# 3192 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceImpl)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceImplList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 636 "..\pars.fsy" + _1 :: _2 + ) +# 636 "..\pars.fsy" + : 'fileNamespaceImplList)); +# 3204 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceImpl)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 637 "..\pars.fsy" + [_1] + ) +# 637 "..\pars.fsy" + : 'fileNamespaceImplList)); +# 3215 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'namespaceIntro)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'deprecated_opt_equals)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileModuleImpl)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 641 "..\pars.fsy" + let path,xml = _1 in (_3 (path,xml)) + ) +# 641 "..\pars.fsy" + : 'fileNamespaceImpl)); +# 3228 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleIntro)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfnsPossiblyEmptyBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 645 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let m2 = rhs parseState 3 + let m = (rhs2 parseState 3 4) + (fun (path,_) -> + if nonNil path then errorR(Error(FSComp.SR.parsNamespaceOrModuleNotBoth(),m2)); + let path2,xml,vis = _3 + let lid = path@path2 + ParsedSigFileFragment.NamedModule(SynModuleOrNamespaceSig(lid,true, _4, xml,_1,vis,m))) + ) +# 645 "..\pars.fsy" + : 'fileModuleSpec)); +# 3249 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfnsPossiblyEmptyBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 654 "..\pars.fsy" + let m = (rhs parseState 1) + (fun (path,xml) -> + match path with + | [] -> ParsedSigFileFragment.AnonModule(_1, m) + | _ -> ParsedSigFileFragment.NamespaceFragment(path,false, _1, xml,[],m)) + ) +# 654 "..\pars.fsy" + : 'fileModuleSpec)); +# 3264 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleIntro)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynModuleDecl list)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 662 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let m2 = rhs parseState 3 + let m = (m2, _4) ||> unionRangeWithListBy (fun modu -> modu.Range) + (fun (path,_) -> + if nonNil path then errorR(Error(FSComp.SR.parsNamespaceOrModuleNotBoth(),m2)); + let path2,xml,vis = _3 + let lid = path@path2 + ParsedImplFileFragment.NamedModule(SynModuleOrNamespace(lid,true, _4, xml,_1,vis,m))) + ) +# 662 "..\pars.fsy" + : 'fileModuleImpl)); +# 3285 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynModuleDecl list)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 671 "..\pars.fsy" + let m = (rhs parseState 1) + (fun (path,xml) -> + match path with + | [] -> ParsedImplFileFragment.AnonModule(_1,m) + | _ -> ParsedImplFileFragment.NamespaceFragment(path,false, _1, xml,[],m)) + ) +# 671 "..\pars.fsy" + : 'fileModuleImpl)); +# 3300 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfnsPossiblyEmpty)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 679 "..\pars.fsy" + _1 + ) +# 679 "..\pars.fsy" + : 'moduleSpfnsPossiblyEmptyBlock)); +# 3311 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfnsPossiblyEmpty)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 681 "..\pars.fsy" + _2 + ) +# 681 "..\pars.fsy" + : 'moduleSpfnsPossiblyEmptyBlock)); +# 3324 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfnsPossiblyEmpty)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 683 "..\pars.fsy" + // The lex filter ensures we can only get a mismatch in OBLOCKBEGIN/OBLOCKEND tokens if there was some other kind of error, hence we don't need to report this error + // reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnClosedBlockInHashLight()); + _2 + + ) +# 683 "..\pars.fsy" + : 'moduleSpfnsPossiblyEmptyBlock)); +# 3339 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 688 "..\pars.fsy" + + [] + + ) +# 688 "..\pars.fsy" + : 'moduleSpfnsPossiblyEmptyBlock)); +# 3352 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 694 "..\pars.fsy" + _1 + ) +# 694 "..\pars.fsy" + : 'moduleSpfnsPossiblyEmpty)); +# 3363 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 696 "..\pars.fsy" + [] + ) +# 696 "..\pars.fsy" + : 'moduleSpfnsPossiblyEmpty)); +# 3373 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 698 "..\pars.fsy" + [] + ) +# 698 "..\pars.fsy" + : 'moduleSpfnsPossiblyEmpty)); +# 3383 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfn)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_topSeparators)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 702 "..\pars.fsy" + _1 :: _3 + ) +# 702 "..\pars.fsy" + : 'moduleSpfns)); +# 3396 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'topSeparators)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 704 "..\pars.fsy" + (* silent recovery *) _3 + ) +# 704 "..\pars.fsy" + : 'moduleSpfns)); +# 3408 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfn)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_topSeparators)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 706 "..\pars.fsy" + [_1] + ) +# 706 "..\pars.fsy" + : 'moduleSpfns)); +# 3420 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExprPossiblyEmpty)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 711 "..\pars.fsy" + _2 + ) +# 711 "..\pars.fsy" + : Ast.SynModuleDecl list)); +# 3433 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExprPossiblyEmpty)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 713 "..\pars.fsy" + // The lex filter ensures we can only get a mismatch in OBLOCKBEGIN/OBLOCKEND tokens if there was some other kind of error, hence we don't need to report this error + // reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnClosedBlockInHashLight()); + _2 + + ) +# 713 "..\pars.fsy" + : Ast.SynModuleDecl list)); +# 3448 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 718 "..\pars.fsy" + + [] + + ) +# 718 "..\pars.fsy" + : Ast.SynModuleDecl list)); +# 3461 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExprPossiblyEmpty)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 722 "..\pars.fsy" + _1 + ) +# 722 "..\pars.fsy" + : Ast.SynModuleDecl list)); +# 3472 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 726 "..\pars.fsy" + _1 + ) +# 726 "..\pars.fsy" + : 'moduleDefnsOrExprPossiblyEmpty)); +# 3483 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 728 "..\pars.fsy" + [] + ) +# 728 "..\pars.fsy" + : 'moduleDefnsOrExprPossiblyEmpty)); +# 3493 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'topSeparators)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 733 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsUnexpectedVisibilityDeclaration(),rhs parseState 3)); + let attrDecls = if nonNil _1 then [ SynModuleDecl.Attributes (_1, rangeOfNonNilAttrs _1) ] else [] + attrDecls @ mkSynDoDecl (_3) :: _5 + ) +# 733 "..\pars.fsy" + : 'moduleDefnsOrExpr)); +# 3510 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'topSeparators)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 737 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsUnexpectedVisibilityDeclaration(),rhs parseState 3)); + let attrDecls = if nonNil _1 then [ SynModuleDecl.Attributes (_1, rangeOfNonNilAttrs _1) ] else [] + attrDecls @ [ mkSynDoDecl(_3) ] + ) +# 737 "..\pars.fsy" + : 'moduleDefnsOrExpr)); +# 3526 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 741 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsUnexpectedVisibilityDeclaration(),rhs parseState 3)); + let attrDecls = if nonNil _1 then [ SynModuleDecl.Attributes (_1, rangeOfNonNilAttrs _1) ] else [] + attrDecls @ [ mkSynDoDecl(_3) ] + ) +# 741 "..\pars.fsy" + : 'moduleDefnsOrExpr)); +# 3541 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 745 "..\pars.fsy" + _1 + ) +# 745 "..\pars.fsy" + : 'moduleDefnsOrExpr)); +# 3552 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 747 "..\pars.fsy" + if nonNil _1 then [ SynModuleDecl.Attributes (_1, rangeOfNonNilAttrs _1) ] else [] + ) +# 747 "..\pars.fsy" + : 'moduleDefnsOrExpr)); +# 3563 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnOrDirective)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 751 "..\pars.fsy" + _1 @ _2 + ) +# 751 "..\pars.fsy" + : 'moduleDefns)); +# 3575 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnOrDirective)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'topSeparators)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 753 "..\pars.fsy" + _1 @ _3 + ) +# 753 "..\pars.fsy" + : 'moduleDefns)); +# 3588 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnOrDirective)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 755 "..\pars.fsy" + _1 + ) +# 755 "..\pars.fsy" + : 'moduleDefns)); +# 3599 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnOrDirective)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'topSeparators)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 757 "..\pars.fsy" + _1 + ) +# 757 "..\pars.fsy" + : 'moduleDefns)); +# 3611 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'topSeparators)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 759 "..\pars.fsy" + _3 + ) +# 759 "..\pars.fsy" + : 'moduleDefns)); +# 3623 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 763 "..\pars.fsy" + _1 + ) +# 763 "..\pars.fsy" + : 'moduleDefnOrDirective)); +# 3634 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hashDirective)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 765 "..\pars.fsy" + [ SynModuleDecl.HashDirective (_1,rhs2 parseState 1 1) ] + ) +# 765 "..\pars.fsy" + : 'moduleDefnOrDirective)); +# 3645 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'defnBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 774 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + parseState.ResetSynArgNameGenerator(); + let (BindingSetPreAttrs(_,_,_,_,mWhole)) = _3 + mkDefnBindings (mWhole,_3,_1,_2,mWhole) + ) +# 774 "..\pars.fsy" + : 'moduleDefn)); +# 3661 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteLetBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 780 "..\pars.fsy" + let hwlb,m = _3 + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + parseState.ResetSynArgNameGenerator(); + mkDefnBindings (m,hwlb,_1,_2,m) + ) +# 780 "..\pars.fsy" + : 'moduleDefn)); +# 3677 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doBinding)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 786 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let mWhole = rhs parseState 3 + mkDefnBindings (mWhole,_3,_1,_2,mWhole) + ) +# 786 "..\pars.fsy" + : 'moduleDefn)); +# 3692 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'type_keyword)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconDefn)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconDefnList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 791 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let (TypeDefn(ComponentInfo(cas ,a,cs,b,c,d,d2,d3),e,f,g)) = _4 + let tc = (TypeDefn(ComponentInfo(_1@cas,a,cs,b,c,d,d2,d3),e,f,g)) + let types = tc :: _5 + [ SynModuleDecl.Types(types, (rhs parseState 3, types) ||> unionRangeWithListBy (fun t -> t.Range) ) ] + ) +# 791 "..\pars.fsy" + : 'moduleDefn)); +# 3711 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExceptionDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 798 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let (ExceptionDefn(ExceptionDefnRepr(cas,a,b,c,d,d2),e,f)) = _3 + let f = (f, _1) ||> unionRangeWithListBy (fun a -> a.Range) + let ec = (ExceptionDefn(ExceptionDefnRepr(_1@cas,a,b,c,d,d2),e,f)) + [ SynModuleDecl.Exception(ec, f) ] + ) +# 798 "..\pars.fsy" + : 'moduleDefn)); +# 3728 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleIntro)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'namedModuleDefnBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 806 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let attribs,(path,xml,vis) = _1,_3 + match _5 with + | Choice1Of2 eqn -> + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + if List.length path <> 1 then raiseParseErrorAt (rhs parseState 3) (FSComp.SR.parsModuleAbbreviationMustBeSimpleName()); + if List.length _1 <> 0 then raiseParseErrorAt (rhs parseState 1) (FSComp.SR.parsIgnoreAttributesOnModuleAbbreviation()); + if isSome vis then raiseParseErrorAt (rhs parseState 1) (FSComp.SR.parsIgnoreAttributesOnModuleAbbreviationAlwaysPrivate()); + [ SynModuleDecl.ModuleAbbrev(List.head path,eqn,(rhs parseState 3, eqn) ||> unionRangeWithListBy (fun id -> id.idRange) ) ] + | Choice2Of2 def -> + if List.length path <> 1 then raiseParseErrorAt (rhs parseState 3) (FSComp.SR.parsModuleAbbreviationMustBeSimpleName()); + let info = ComponentInfo(attribs,[],[],path,xml,false,vis,rhs parseState 3) + [ SynModuleDecl.NestedModule(info,def,false,(rhs2 parseState 3 4, def) ||> unionRangeWithListBy (fun d -> d.Range) ) ] + ) +# 806 "..\pars.fsy" + : 'moduleDefn)); +# 3754 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 821 "..\pars.fsy" + errorR(Error(FSComp.SR.parsAttributeOnIncompleteCode(),rhs parseState 1)) + [] + ) +# 821 "..\pars.fsy" + : 'moduleDefn)); +# 3767 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 825 "..\pars.fsy" + [SynModuleDecl.Open(_1, _1.Range)] + ) +# 825 "..\pars.fsy" + : 'moduleDefn)); +# 3778 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 831 "..\pars.fsy" + _2.Lid + ) +# 831 "..\pars.fsy" + : 'namedModuleAbbrevBlock)); +# 3790 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 833 "..\pars.fsy" + _1.Lid + ) +# 833 "..\pars.fsy" + : 'namedModuleAbbrevBlock)); +# 3801 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'wrappedNamedModuleDefn)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 837 "..\pars.fsy" + + Choice2Of2 _2 + + ) +# 837 "..\pars.fsy" + : 'namedModuleDefnBlock)); +# 3815 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'wrappedNamedModuleDefn)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 841 "..\pars.fsy" + // The lex filter ensures we can only get a mismatch in OBLOCKBEGIN/OBLOCKEND tokens if there was some other kind of error, hence we don't need to report this error + Choice2Of2 _2 + + ) +# 841 "..\pars.fsy" + : 'namedModuleDefnBlock)); +# 3829 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 845 "..\pars.fsy" + // BUG 2644 FSharp 1.0: + // There is an ambiguity here + // In particular, consider the following two: + // module M2 = + // System.DateTime.Now + // module M2 = + // Microsoft.FSharp.Core.List + // The second is a module abbreviation , the first a module containing a single expression. + // This is a bit unfortunate. For F# v1 the resolution is in favour of + // the module abbreviation, i.e. anything of the form + // module M2 = ID.ID.ID.ID + // will be taken as a module abbreviation, regardles of the identifiers themselves. + // In a later version (Dev11) we could actually try resolving the names + // to both expressions and module identifiers and base the resolution of that semantic lookup + // + // This is similar to the ambiguitty between + // type X = int + // and + // type X = OneValue + // However in that case we do use type name lookup to make the resolution. + match _2 with + | [ SynModuleDecl.DoExpr (_,LongOrSingleIdent(false,LongIdentWithDots(path,_),None,_),_) ] -> + Choice1Of2 path + | _ -> + Choice2Of2 _2 + + ) +# 845 "..\pars.fsy" + : 'namedModuleDefnBlock)); +# 3866 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 874 "..\pars.fsy" + // The lex filter ensures we can only get a mismatch in OBLOCKBEGIN/OBLOCKEND tokens if there was some other kind of error, hence we don't need to report this error + // reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnClosedBlockInHashLight()); + Choice2Of2 _2 + + ) +# 874 "..\pars.fsy" + : 'namedModuleDefnBlock)); +# 3881 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 879 "..\pars.fsy" + + Choice2Of2 [] + + ) +# 879 "..\pars.fsy" + : 'namedModuleDefnBlock)); +# 3894 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'wrappedNamedModuleDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 883 "..\pars.fsy" + + Choice2Of2 _1 + + ) +# 883 "..\pars.fsy" + : 'namedModuleDefnBlock)); +# 3907 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 887 "..\pars.fsy" + + Choice1Of2 _1.Lid + + ) +# 887 "..\pars.fsy" + : 'namedModuleDefnBlock)); +# 3920 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'structOrBegin)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExprPossiblyEmpty)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 893 "..\pars.fsy" + _2 + ) +# 893 "..\pars.fsy" + : 'wrappedNamedModuleDefn)); +# 3932 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'structOrBegin)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExprPossiblyEmpty)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 895 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBeginOrStruct()); + _2 + ) +# 895 "..\pars.fsy" + : 'wrappedNamedModuleDefn)); +# 3946 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'structOrBegin)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 898 "..\pars.fsy" + [] + ) +# 898 "..\pars.fsy" + : 'wrappedNamedModuleDefn)); +# 3957 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 902 "..\pars.fsy" + None + ) +# 902 "..\pars.fsy" + : 'opt_signature)); +# 3967 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnBlock)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'declEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 906 "..\pars.fsy" + _2 + ) +# 906 "..\pars.fsy" + : Ast.SynMemberDefns)); +# 3979 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hashDirective)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 911 "..\pars.fsy" + SynModuleSigDecl.HashDirective (_1,rhs2 parseState 1 1) + ) +# 911 "..\pars.fsy" + : 'moduleSpfn)); +# 3990 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'valSpfn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 913 "..\pars.fsy" + _1 + ) +# 913 "..\pars.fsy" + : 'moduleSpfn)); +# 4001 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleIntro)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'colonOrEquals)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'namedModuleAbbrevBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 916 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let path,xml,vis = _3 + if List.length path <> 1 then raiseParseErrorAt (rhs parseState 3) (FSComp.SR.parsModuleAbbreviationMustBeSimpleName()); + if List.length _1 <> 0 then raiseParseErrorAt (rhs parseState 1) (FSComp.SR.parsIgnoreAttributesOnModuleAbbreviation()); + if isSome(vis) then raiseParseErrorAt (rhs parseState 1) (FSComp.SR.parsIgnoreVisibilityOnModuleAbbreviationAlwaysPrivate()); + SynModuleSigDecl.ModuleAbbrev(List.head path,_5,rhs2 parseState 3 5) + ) +# 916 "..\pars.fsy" + : 'moduleSpfn)); +# 4021 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleIntro)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'colonOrEquals)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpecBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 924 "..\pars.fsy" + let path,xml,vis = _3 + if List.length path <> 1 then raiseParseErrorAt (rhs parseState 3) (FSComp.SR.parsModuleDefnMustBeSimpleName()); + let info = ComponentInfo(_1,[],[],path,xml,false,vis,rhs parseState 3) + if isSome(_2) then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + SynModuleSigDecl.NestedModule(info,_5,rhs2 parseState 3 5) + ) +# 924 "..\pars.fsy" + : 'moduleSpfn)); +# 4040 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypeDefnSig list)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 931 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let (TypeDefnSig(ComponentInfo(cas,a,cs,b,c,d,d2,d3),e,f,g)),rest = + match _3 with + | [] -> raiseParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedEmptyModuleDefn()) + | h::t -> h,t + let tc = (TypeDefnSig(ComponentInfo(_1@cas,a,cs,b,c,d,d2,d3),e,f,g))in + SynModuleSigDecl.Types (tc::rest,rhs parseState 3) + ) +# 931 "..\pars.fsy" + : 'moduleSpfn)); +# 4059 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'exconSpfn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 940 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let (ExceptionSig(ExceptionDefnRepr(cas,a,b,c,d,d2),e,f)) = _3 + let ec = (ExceptionSig(ExceptionDefnRepr(_1@cas,a,b,c,d,d2),e,f)) + SynModuleSigDecl.Exception(ec, rhs parseState 3) + ) +# 940 "..\pars.fsy" + : 'moduleSpfn)); +# 4075 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 945 "..\pars.fsy" + SynModuleSigDecl.Open (_2.Lid, unionRanges (rhs parseState 1) _2.Range) + ) +# 945 "..\pars.fsy" + : 'moduleSpfn)); +# 4086 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inline)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_mutable)) in + let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _8 = (let data = parseState.GetInput(8) in (Microsoft.FSharp.Core.Operators.unbox data : 'nameop)) in + let _9 = (let data = parseState.GetInput(9) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_explicitValTyparDecls)) in + let _11 = (let data = parseState.GetInput(11) in (Microsoft.FSharp.Core.Operators.unbox data : 'topTypeWithTypeConstraints)) in + let _12 = (let data = parseState.GetInput(12) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_literalValue)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 949 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let attr1,attr2,isInline,isMutable,vis2,id,doc,explicitValTyparDecls,(ty,arity),konst = (_1),(_4),(_5),(_6),(_7),(_8),grabXmlDoc(parseState,3),(_9),(_11),(_12) + if nonNil attr2 then errorR(Deprecated(FSComp.SR.parsAttributesMustComeBeforeVal(),rhs parseState 4)); + let m = rhs2 parseState 3 11 + let valSpfn = ValSpfn((attr1@attr2),id,explicitValTyparDecls,ty,arity,isInline,isMutable,doc, vis2,konst,m) + SynModuleSigDecl.Val(valSpfn,m) + + ) +# 949 "..\pars.fsy" + : 'valSpfn)); +# 4112 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 958 "..\pars.fsy" + None + ) +# 958 "..\pars.fsy" + : 'opt_literalValue)); +# 4122 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 959 "..\pars.fsy" + Some(_2) + ) +# 959 "..\pars.fsy" + : 'opt_literalValue)); +# 4133 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 960 "..\pars.fsy" + Some(_3) + ) +# 960 "..\pars.fsy" + : 'opt_literalValue)); +# 4145 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfns)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 963 "..\pars.fsy" + _2 + ) +# 963 "..\pars.fsy" + : 'moduleSpecBlock)); +# 4157 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigOrBegin)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfnsPossiblyEmpty)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 964 "..\pars.fsy" + _3 + ) +# 964 "..\pars.fsy" + : 'moduleSpecBlock)); +# 4170 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigOrBegin)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfnsPossiblyEmpty)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 965 "..\pars.fsy" + _2 + ) +# 965 "..\pars.fsy" + : 'moduleSpecBlock)); +# 4182 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributes)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 968 "..\pars.fsy" + _1 + ) +# 968 "..\pars.fsy" + : 'opt_attributes)); +# 4193 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 969 "..\pars.fsy" + [] + ) +# 969 "..\pars.fsy" + : 'opt_attributes)); +# 4203 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributeList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 973 "..\pars.fsy" + _1 + ) +# 973 "..\pars.fsy" + : 'attributes)); +# 4214 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributeList)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributes)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 975 "..\pars.fsy" + _1 @ _2 + ) +# 975 "..\pars.fsy" + : 'attributes)); +# 4226 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributeListElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 978 "..\pars.fsy" + _2 + ) +# 978 "..\pars.fsy" + : 'attributeList)); +# 4239 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 979 "..\pars.fsy" + [] + ) +# 979 "..\pars.fsy" + : 'attributeList)); +# 4250 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributeListElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 981 "..\pars.fsy" + if not _4 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedLBrackLess()); + _2 + ) +# 981 "..\pars.fsy" + : 'attributeList)); +# 4264 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 984 "..\pars.fsy" + if not _2 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedLBrackLess()); + [] + ) +# 984 "..\pars.fsy" + : 'attributeList)); +# 4276 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attribute)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 989 "..\pars.fsy" + [_1] + ) +# 989 "..\pars.fsy" + : 'attributeListElements)); +# 4287 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributeListElements)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'seps)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'attribute)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 991 "..\pars.fsy" + _1 @ [_3] + ) +# 991 "..\pars.fsy" + : 'attributeListElements)); +# 4300 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_atomicExprAfterType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 995 "..\pars.fsy" + let arg = match _3 with None -> mkSynUnit _1.Range | Some e -> e + ({ TypeName=_1; ArgExpr=arg; Target=None; AppliesToGetterAndSetter=false; Range=_1.Range } : SynAttribute) + ) +# 995 "..\pars.fsy" + : 'attribute)); +# 4314 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributeTarget)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_atomicExprAfterType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 998 "..\pars.fsy" + let arg = match _4 with None -> mkSynUnit _2.Range | Some e -> e + ({ TypeName=_2; ArgExpr=arg; Target=_1; AppliesToGetterAndSetter=false; Range=_2.Range } : SynAttribute) + ) +# 998 "..\pars.fsy" + : 'attribute)); +# 4329 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributeTarget)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_atomicExprAfterType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1001 "..\pars.fsy" + let arg = match _6 with None -> mkSynUnit _3.Range | Some e -> e + ({ TypeName=_3; ArgExpr=arg; Target=_1; AppliesToGetterAndSetter=false; Range=_3.Range } : SynAttribute) + ) +# 1001 "..\pars.fsy" + : 'attribute)); +# 4345 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'module_keyword)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1005 "..\pars.fsy" + Some(ident("module",(rhs parseState 1))) + ) +# 1005 "..\pars.fsy" + : 'attributeTarget)); +# 4356 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'type_keyword)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1006 "..\pars.fsy" + Some(ident("type",(rhs parseState 1))) + ) +# 1006 "..\pars.fsy" + : 'attributeTarget)); +# 4367 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1007 "..\pars.fsy" + Some(_1) + ) +# 1007 "..\pars.fsy" + : 'attributeTarget)); +# 4378 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1009 "..\pars.fsy" + if _1 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsSyntaxError()); + Some(ident("return",(rhs parseState 1))) + ) +# 1009 "..\pars.fsy" + : 'attributeTarget)); +# 4390 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'type_keyword)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconSpfnList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1014 "..\pars.fsy" + _2 + ) +# 1014 "..\pars.fsy" + : Ast.SynTypeDefnSig list)); +# 4402 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconSpfn)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconSpfnList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1018 "..\pars.fsy" + _1 :: _3 + ) +# 1018 "..\pars.fsy" + : 'tyconSpfnList)); +# 4414 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconSpfn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1020 "..\pars.fsy" + [_1] + ) +# 1020 "..\pars.fsy" + : 'tyconSpfnList)); +# 4425 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeNameInfo)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconSpfnRhsBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1024 "..\pars.fsy" + let lhsm = rhs parseState 1 + _3 lhsm _1 + ) +# 1024 "..\pars.fsy" + : 'tyconSpfn)); +# 4438 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeNameInfo)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_classSpfn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1027 "..\pars.fsy" + TypeDefnSig(_1,SynTypeDefnSigRepr.Simple (SynTypeDefnSimpleRepr.None (lhs parseState),lhs parseState),_2,lhs parseState) + ) +# 1027 "..\pars.fsy" + : 'tyconSpfn)); +# 4450 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconSpfnRhs)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnMembers)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_classSpfn)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_classSpfn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1039 "..\pars.fsy" + let m = lhs parseState + (fun lhsm nameInfo -> + _2 lhsm nameInfo (checkForMultipleAugmentations m (_4 @ _5) _7)) + ) +# 1039 "..\pars.fsy" + : 'tyconSpfnRhsBlock)); +# 4468 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconSpfnRhs)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_classSpfn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1043 "..\pars.fsy" + let m = lhs parseState + (fun lhsm nameInfo -> + _1 lhsm nameInfo _2) + ) +# 1043 "..\pars.fsy" + : 'tyconSpfnRhsBlock)); +# 4482 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypeDefnSimpleRepr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1049 "..\pars.fsy" + let m = _1.Range + (fun lhsm nameInfo augmentation -> + TypeDefnSig(nameInfo,SynTypeDefnSigRepr.Simple (_1,m),augmentation,m)) + ) +# 1049 "..\pars.fsy" + : 'tyconSpfnRhs)); +# 4495 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconClassSpfn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1053 "..\pars.fsy" + let m = lhs parseState + let needsCheck,(kind,decls) = _1 + (fun nameRange nameInfo augmentation -> + if needsCheck && isNil decls then + reportParseErrorAt nameRange (FSComp.SR.parsEmptyTypeDefinition()); + TypeDefnSig(nameInfo,SynTypeDefnSigRepr.ObjectModel (kind,decls,m),augmentation,m)) + ) +# 1053 "..\pars.fsy" + : 'tyconSpfnRhs)); +# 4511 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'topType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1060 "..\pars.fsy" + let m = lhs parseState + let ty,arity = _3 + let invoke = SynMemberSig.Member(ValSpfn([],mkSynId m "Invoke",inferredTyparDecls,ty,arity,false,false,PreXmlDoc.Empty,None,None,m),AbstractMemberFlags MemberKind.Member,m) + (fun nameRange nameInfo augmentation -> + if nonNil augmentation then raiseParseErrorAt m (FSComp.SR.parsAugmentationsIllegalOnDelegateType()); + TypeDefnSig(nameInfo,SynTypeDefnSigRepr.ObjectModel (TyconDelegate (ty,arity),[invoke],m),[],m)) + ) +# 1060 "..\pars.fsy" + : 'tyconSpfnRhs)); +# 4527 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnBlockKindUnspecified)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1069 "..\pars.fsy" + let needsCheck,decls = _1 + needsCheck,(TyconUnspecified, decls) + ) +# 1069 "..\pars.fsy" + : 'tyconClassSpfn)); +# 4539 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classOrInterfaceOrStruct)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1072 "..\pars.fsy" + false,(_1,_2) + ) +# 1072 "..\pars.fsy" + : 'tyconClassSpfn)); +# 4551 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classOrInterfaceOrStruct)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnBlock)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1074 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedClassInterfaceOrStruct()); + false,(_1,_2) + ) +# 1074 "..\pars.fsy" + : 'tyconClassSpfn)); +# 4565 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classOrInterfaceOrStruct)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1077 "..\pars.fsy" + // silent recovery + false,(_1,[]) + ) +# 1077 "..\pars.fsy" + : 'tyconClassSpfn)); +# 4577 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnMembers)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1082 "..\pars.fsy" + true, _2 + ) +# 1082 "..\pars.fsy" + : 'classSpfnBlockKindUnspecified)); +# 4589 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnMembers)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1084 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedEndOfFileTypeSignature()); + false, _2 + ) +# 1084 "..\pars.fsy" + : 'classSpfnBlockKindUnspecified)); +# 4602 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1088 "..\pars.fsy" + false, _2 + ) +# 1088 "..\pars.fsy" + : 'classSpfnBlockKindUnspecified)); +# 4613 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnBlock)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1090 "..\pars.fsy" + false, _2 + ) +# 1090 "..\pars.fsy" + : 'classSpfnBlockKindUnspecified)); +# 4625 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnMembers)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1095 "..\pars.fsy" + _2 + ) +# 1095 "..\pars.fsy" + : 'classSpfnBlock)); +# 4637 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnMembers)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1097 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedEndOfFileTypeSignature()); + _2 + ) +# 1097 "..\pars.fsy" + : 'classSpfnBlock)); +# 4650 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnMembers)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1100 "..\pars.fsy" + _1 + ) +# 1100 "..\pars.fsy" + : 'classSpfnBlock)); +# 4661 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnMembersAtLeastOne)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1115 "..\pars.fsy" + _1 + ) +# 1115 "..\pars.fsy" + : 'classSpfnMembers)); +# 4672 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1117 "..\pars.fsy" + [] + ) +# 1117 "..\pars.fsy" + : 'classSpfnMembers)); +# 4682 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classMemberSpfn)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnMembers)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1121 "..\pars.fsy" + _1 :: _3 + ) +# 1121 "..\pars.fsy" + : 'classSpfnMembersAtLeastOne)); +# 4695 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1124 "..\pars.fsy" + (true,StaticMemberFlags) + ) +# 1124 "..\pars.fsy" + : 'memberFlags)); +# 4705 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1125 "..\pars.fsy" + (false,NonVirtualMemberFlags) + ) +# 1125 "..\pars.fsy" + : 'memberFlags)); +# 4715 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1126 "..\pars.fsy" + (false,OverrideMemberFlags) + ) +# 1126 "..\pars.fsy" + : 'memberFlags)); +# 4725 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1127 "..\pars.fsy" + (false,OverrideMemberFlags) + ) +# 1127 "..\pars.fsy" + : 'memberFlags)); +# 4735 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'memberFlags)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1130 "..\pars.fsy" + _1 + ) +# 1130 "..\pars.fsy" + : 'memberSpecFlags)); +# 4746 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1131 "..\pars.fsy" + (false,AbstractMemberFlags) + ) +# 1131 "..\pars.fsy" + : 'memberSpecFlags)); +# 4756 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1132 "..\pars.fsy" + (false,AbstractMemberFlags) + ) +# 1132 "..\pars.fsy" + : 'memberSpecFlags)); +# 4766 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1136 "..\pars.fsy" + None, MemberKind.Member + ) +# 1136 "..\pars.fsy" + : 'classMemberSpfnGetSet)); +# 4776 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classMemberSpfnGetSetElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1138 "..\pars.fsy" + Some (rhs2 parseState 1 2), _2 + ) +# 1138 "..\pars.fsy" + : 'classMemberSpfnGetSet)); +# 4787 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classMemberSpfnGetSetElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1140 "..\pars.fsy" + Some (rhs2 parseState 1 2), _2 + ) +# 1140 "..\pars.fsy" + : 'classMemberSpfnGetSet)); +# 4798 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classMemberSpfnGetSetElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1142 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedWith()); + Some (rhs2 parseState 1 2), _2 + ) +# 1142 "..\pars.fsy" + : 'classMemberSpfnGetSet)); +# 4810 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'nameop)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1148 "..\pars.fsy" + (let (id:Ident) = _1 + if id.idText = "get" then MemberKind.PropertyGet + else if id.idText = "set" then MemberKind.PropertySet + else raiseParseErrorAt (rhs parseState 1) (FSComp.SR.parsGetOrSetRequired())) + ) +# 1148 "..\pars.fsy" + : 'classMemberSpfnGetSetElements)); +# 4824 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'nameop)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'nameop)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1153 "..\pars.fsy" + let (id:Ident) = _1 + if not ((id.idText = "get" && _3.idText = "set") || + (id.idText = "set" && _3.idText = "get")) then + raiseParseErrorAt (rhs2 parseState 1 3) (FSComp.SR.parsGetOrSetRequired()); + MemberKind.PropertyGetSet + ) +# 1153 "..\pars.fsy" + : 'classMemberSpfnGetSetElements)); +# 4840 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'memberSpecFlags)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inline)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'nameop)) in + let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_explicitValTyparDecls)) in + let _9 = (let data = parseState.GetInput(9) in (Microsoft.FSharp.Core.Operators.unbox data : 'topTypeWithTypeConstraints)) in + let _10 = (let data = parseState.GetInput(10) in (Microsoft.FSharp.Core.Operators.unbox data : 'classMemberSpfnGetSet)) in + let _11 = (let data = parseState.GetInput(11) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_literalValue)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1161 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let isInline,doc,vis2,id,explicitValTyparDecls,(ty,arity),optLiteralValue = _4,grabXmlDoc(parseState,3),_5,_6,_7,_9,_11 + let getSetRangeOpt, getSet = _10 + let getSetAdjuster arity = match arity,getSet with SynValInfo([],_),MemberKind.Member -> MemberKind.PropertyGet | _ -> getSet + let wholeRange = + let m = rhs parseState 3 + match getSetRangeOpt with + | None -> unionRanges m ty.Range + | Some m2 -> unionRanges m m2 + let valSpfn = ValSpfn(_1,id,explicitValTyparDecls,ty,arity, isInline,false,doc, vis2,optLiteralValue,wholeRange) + let _,flags = _3 + SynMemberSig.Member(valSpfn, flags (getSetAdjuster arity),wholeRange) + ) +# 1161 "..\pars.fsy" + : 'classMemberSpfn)); +# 4871 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'interfaceMember)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1175 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + SynMemberSig.Interface (_4,unionRanges (rhs parseState 3) (_4).Range) + ) +# 1175 "..\pars.fsy" + : 'classMemberSpfn)); +# 4886 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1178 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + SynMemberSig.Inherit (_4,unionRanges (rhs parseState 3) (_4).Range) + ) +# 1178 "..\pars.fsy" + : 'classMemberSpfn)); +# 4900 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'fieldDecl)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1181 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let fld = _4 _1 false + SynMemberSig.ValField(fld,rhs2 parseState 3 4) + ) +# 1181 "..\pars.fsy" + : 'classMemberSpfn)); +# 4915 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'fieldDecl)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1185 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + SynMemberSig.ValField(_5 _1 true,rhs2 parseState 3 5) + ) +# 1185 "..\pars.fsy" + : 'classMemberSpfn)); +# 4929 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'type_keyword)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconSpfn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1188 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + SynMemberSig.NestedType(_5,rhs2 parseState 3 5) + ) +# 1188 "..\pars.fsy" + : 'classMemberSpfn)); +# 4944 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'topTypeWithTypeConstraints)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1191 "..\pars.fsy" + let vis,doc,(ty,valSynInfo) = _2,grabXmlDoc(parseState,3),_5 + let m = unionRanges (rhs parseState 3) ty.Range + let isInline = false + let valSpfn = ValSpfn (_1, mkSynId (rhs parseState 3) "new", noInferredTypars, ty, valSynInfo, isInline, false, doc, vis, None, m) + SynMemberSig.Member(valSpfn, CtorMemberFlags,m) + ) +# 1191 "..\pars.fsy" + : 'classMemberSpfn)); +# 4961 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconNameAndTyparDecls)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_typeConstraints)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1199 "..\pars.fsy" + let typars,lid,fixity,tpcs1,vis,xmlDoc = _2 + let tpcs2 = _3 + ComponentInfo(_1,typars,(tpcs1 @ tpcs2),lid,xmlDoc,fixity,vis,rangeOfLid lid) + ) +# 1199 "..\pars.fsy" + : 'typeNameInfo)); +# 4976 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconDefn)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconDefnList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1205 "..\pars.fsy" + _2 :: _3 + ) +# 1205 "..\pars.fsy" + : 'tyconDefnList)); +# 4988 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1207 "..\pars.fsy" + [] + ) +# 1207 "..\pars.fsy" + : 'tyconDefnList)); +# 4998 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeNameInfo)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1211 "..\pars.fsy" + TypeDefn(_1,SynTypeDefnRepr.Simple(SynTypeDefnSimpleRepr.None(_1.Range),_1.Range),[],_1.Range) + ) +# 1211 "..\pars.fsy" + : 'tyconDefn)); +# 5009 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeNameInfo)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconDefnRhsBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1213 "..\pars.fsy" + let nameRange = rhs parseState 1 + let (tcDefRepr:SynTypeDefnRepr),members = _3 nameRange + let declRange = unionRanges (rhs parseState 1) tcDefRepr.Range + let mWhole = (declRange, members) ||> unionRangeWithListBy (fun (mem:SynMemberDefn) -> mem.Range) + TypeDefn(_1, tcDefRepr, members, mWhole) + ) +# 1213 "..\pars.fsy" + : 'tyconDefn)); +# 5025 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeNameInfo)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynMemberDefns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1219 "..\pars.fsy" + let m = (rhs parseState 1, _2) ||> unionRangeWithListBy (fun mem -> mem.Range) + TypeDefn(_1,SynTypeDefnRepr.ObjectModel(TyconAugmentation,[],m),_2,m) + ) +# 1219 "..\pars.fsy" + : 'tyconDefn)); +# 5038 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeNameInfo)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'simplePatterns)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'optAsSpec)) in + let _8 = (let data = parseState.GetInput(8) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconDefnRhsBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1223 "..\pars.fsy" + let vis,spats, az = _3,_5,_6 + let nameRange = rhs parseState 1 + let (tcDefRepr,members) = _8 nameRange + let (ComponentInfo(_,_,_,lid,_,_,_,_)) = _1 + let memberCtorPattern = SynMemberDefn.ImplicitCtor (vis,_2,spats,az,rangeOfLid lid) + let tcDefRepr = + match tcDefRepr with + | SynTypeDefnRepr.ObjectModel (k,cspec,m) -> SynTypeDefnRepr.ObjectModel (k,memberCtorPattern::cspec,m) + | _ -> reportParseErrorAt (rhs2 parseState 1 5) (FSComp.SR.parsOnlyClassCanTakeValueArguments()); tcDefRepr + + TypeDefn(_1,tcDefRepr,members, unionRanges (rhs parseState 1) tcDefRepr.Range) + ) +# 1223 "..\pars.fsy" + : 'tyconDefn)); +# 5065 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconDefnRhs)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMembers)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_classDefn)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_classDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1245 "..\pars.fsy" + let m = unionRanges (rhs parseState 1) (match _7 with [] -> (match _5 with [] -> (rhs parseState 4) | _ -> (rhs parseState 5)) | _ -> (rhs parseState 7)) + (fun nameRange -> _2 nameRange (checkForMultipleAugmentations m (_4 @ _5) _7)) + ) +# 1245 "..\pars.fsy" + : 'tyconDefnRhsBlock)); +# 5082 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconDefnRhs)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMembers)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_classDefn)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1248 "..\pars.fsy" + if not _6 then reportParseErrorAt (rhs parseState 6) (FSComp.SR.parsUnexpectedEndOfFileTypeDefinition()) + let m = unionRanges (rhs parseState 1) (match _5 with [] -> (rhs parseState 4) | _ -> (rhs parseState 5)) + (fun nameRange -> _2 nameRange (checkForMultipleAugmentations m (_4 @ _5) [])) + ) +# 1248 "..\pars.fsy" + : 'tyconDefnRhsBlock)); +# 5099 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconDefnRhs)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_classDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1252 "..\pars.fsy" + let m = rhs parseState 1 + (fun nameRange -> _1 nameRange _2) + ) +# 1252 "..\pars.fsy" + : 'tyconDefnRhsBlock)); +# 5112 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypeDefnSimpleRepr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1257 "..\pars.fsy" + let m = _1.Range + (fun nameRange augmentation -> SynTypeDefnRepr.Simple (_1,m),augmentation) + ) +# 1257 "..\pars.fsy" + : 'tyconDefnRhs)); +# 5124 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconClassDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1260 "..\pars.fsy" + let needsCheck,(kind,decls),mopt = _1 + let m = match mopt with + | None -> (lhs parseState).StartRange // create a zero-width range + | Some m -> m + (fun nameRange augmentation -> + if needsCheck && isNil decls then + reportParseErrorAt nameRange (FSComp.SR.parsEmptyTypeDefinition()); + SynTypeDefnRepr.ObjectModel (kind,decls,m),augmentation) + ) +# 1260 "..\pars.fsy" + : 'tyconDefnRhs)); +# 5142 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'topType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1269 "..\pars.fsy" + let m = lhs parseState + let ty,arity = _3 + (fun nameRange augmentation -> + let valSpfn = ValSpfn([],mkSynId m "Invoke",inferredTyparDecls,ty,arity,false,false,PreXmlDoc.Empty,None,None,m) + let invoke = SynMemberDefn.AbstractSlot(valSpfn,AbstractMemberFlags MemberKind.Member,m) + if nonNil augmentation then raiseParseErrorAt m (FSComp.SR.parsAugmentationsIllegalOnDelegateType()); + SynTypeDefnRepr.ObjectModel (TyconDelegate (ty,arity),[invoke],m),[]) + ) +# 1269 "..\pars.fsy" + : 'tyconDefnRhs)); +# 5159 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnBlockKindUnspecified)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1279 "..\pars.fsy" + let needsCheck,decls,mopt = _1 + needsCheck,(TyconUnspecified, decls),mopt + ) +# 1279 "..\pars.fsy" + : 'tyconClassDefn)); +# 5171 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classOrInterfaceOrStruct)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1282 "..\pars.fsy" + let m = (rhs parseState 1, _2) ||> unionRangeWithListBy (fun (d:SynMemberDefn) -> d.Range) + false,(_1,_2),Some(m) + ) +# 1282 "..\pars.fsy" + : 'tyconClassDefn)); +# 5184 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classOrInterfaceOrStruct)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnBlock)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1285 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedClassInterfaceOrStruct()) + let m = (rhs parseState 1, _2) ||> unionRangeWithListBy (fun (d:SynMemberDefn) -> d.Range) + false,(_1,_2),Some(m) + ) +# 1285 "..\pars.fsy" + : 'tyconClassDefn)); +# 5199 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classOrInterfaceOrStruct)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1289 "..\pars.fsy" + // silent recovery + false,(_1,[]),Some(rhs parseState 1) + ) +# 1289 "..\pars.fsy" + : 'tyconClassDefn)); +# 5211 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMembers)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1294 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedEndOfFileTypeDefinition()); + let mopt = + match _2 with + | _::_ -> Some( (rhs parseState 1, _2) ||> unionRangeWithListBy (fun (d:SynMemberDefn) -> d.Range) ) + | _ -> None + false,_2,mopt + ) +# 1294 "..\pars.fsy" + : 'classDefnBlockKindUnspecified)); +# 5228 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMembers)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1301 "..\pars.fsy" + let mopt = + match _2 with + | _::_ -> Some( (rhs parseState 1, _2) ||> unionRangeWithListBy (fun (d:SynMemberDefn) -> d.Range) ) + | _ -> None + true, _2, mopt + ) +# 1301 "..\pars.fsy" + : 'classDefnBlockKindUnspecified)); +# 5244 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMembers)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1309 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedEndOfFileTypeDefinition()); + _2 + ) +# 1309 "..\pars.fsy" + : 'classDefnBlock)); +# 5257 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMembers)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1312 "..\pars.fsy" + _2 + ) +# 1312 "..\pars.fsy" + : 'classDefnBlock)); +# 5269 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMembers)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1314 "..\pars.fsy" + _1 + ) +# 1314 "..\pars.fsy" + : 'classDefnBlock)); +# 5280 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMembersAtLeastOne)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1329 "..\pars.fsy" + _1 + ) +# 1329 "..\pars.fsy" + : 'classDefnMembers)); +# 5291 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMembers)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1332 "..\pars.fsy" + _2 + ) +# 1332 "..\pars.fsy" + : 'classDefnMembers)); +# 5302 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1334 "..\pars.fsy" + [] + ) +# 1334 "..\pars.fsy" + : 'classDefnMembers)); +# 5312 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMember)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMembers)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1338 "..\pars.fsy" + _1 @ _3 + ) +# 1338 "..\pars.fsy" + : 'classDefnMembersAtLeastOne)); +# 5325 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMemberGetSetElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1342 "..\pars.fsy" + _2 + ) +# 1342 "..\pars.fsy" + : 'classDefnMemberGetSet)); +# 5336 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMemberGetSetElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1344 "..\pars.fsy" + _2 + ) +# 1344 "..\pars.fsy" + : 'classDefnMemberGetSet)); +# 5347 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMemberGetSetElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1346 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedWith()); + _2 + ) +# 1346 "..\pars.fsy" + : 'classDefnMemberGetSet)); +# 5359 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMemberGetSetElement)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1351 "..\pars.fsy" + [_1] + ) +# 1351 "..\pars.fsy" + : 'classDefnMemberGetSetElements)); +# 5370 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMemberGetSetElement)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMemberGetSetElement)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1353 "..\pars.fsy" + [_1;_3] + ) +# 1353 "..\pars.fsy" + : 'classDefnMemberGetSetElements)); +# 5382 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inline)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'bindingPattern)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_topReturnTypeWithTypeConstraints)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1357 "..\pars.fsy" + let mRhs = (_6 : SynExpr).Range + (_1,_2,_3,_4,_6,mRhs) + ) +# 1357 "..\pars.fsy" + : 'classDefnMemberGetSetElement)); +# 5398 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inline)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'bindingPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_topReturnTypeWithTypeConstraints)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1363 "..\pars.fsy" + let mRhs = _5.Range + let mWhole = unionRanges (rhs2 parseState 3 4) mRhs + let optReturnType = _3 + let bindingBuilder,mBindLhs = _2 + (fun vis memFlagsBuilder attrs -> + [ SynMemberDefn.Member (bindingBuilder (vis,_1,false,mBindLhs,NoSequencePointAtInvisibleBinding,optReturnType,_5,mRhs,[],attrs,Some(memFlagsBuilder MemberKind.Member)),unionRanges mWhole mBindLhs) ]) + ) +# 1363 "..\pars.fsy" + : 'memberCore)); +# 5417 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inline)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'bindingPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_topReturnTypeWithTypeConstraints)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMemberGetSet)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1372 "..\pars.fsy" + let mWhole = (rhs parseState 2, _4) ||> unionRangeWithListBy (fun (_,_,_,_,_,m2) -> m2) + let propertyNameBindingBuilder,_ = _2 + let optPropertyType = _3 + let isMutable = false + (fun visNoLongerUsed memFlagsBuilder attrs -> + let hasGet = ref false + let hasSet = ref false + // Iterate over 1 or 2 'get'/'set' entries + _4 |> List.choose (fun (optInline,optAttrs,(bindingBuilder,mBindLhs),optReturnType,expr,exprm) -> + let optInline = _1 || optInline + // optional attributes are only applied to getters and setters + // the "top level" attrs will be applied to both + let optAttrs = optAttrs |> List.map (fun (a:SynAttribute) -> { a with AppliesToGetterAndSetter=true }) + let attrs = attrs @ optAttrs + + let binding = bindingBuilder (visNoLongerUsed,optInline,isMutable,mBindLhs,NoSequencePointAtInvisibleBinding,optReturnType,expr,exprm,[],attrs,Some (memFlagsBuilder MemberKind.Member)) + let (Binding (vis, _, isInline, _, attrs, doc, valSynData, pv, _, _, mBindLhs, spBind)) = binding + let memberKind = + let getset = + let rec go p = + match p with + | SynPat.LongIdent (LongIdentWithDots([id],_),_,_,_,_,_) -> id.idText + | SynPat.Named (_,nm,_,_,_) -> nm.idText + | SynPat.Typed (p,_,_) -> go p + | SynPat.Attrib (p,_,_) -> go p + | _ -> raiseParseErrorAt mBindLhs (FSComp.SR.parsInvalidDeclarationSyntax()) + go pv + if getset = "get" then ( + if !hasGet then + reportParseErrorAt mBindLhs (FSComp.SR.parsGetAndOrSetRequired()) + None + else + hasGet := true + Some MemberKind.PropertyGet + ) else if getset = "set" then ( + if !hasSet then + reportParseErrorAt mBindLhs (FSComp.SR.parsGetAndOrSetRequired()) + None + else + hasSet := true + Some MemberKind.PropertySet + ) else + raiseParseErrorAt mBindLhs (FSComp.SR.parsGetAndOrSetRequired()) + match memberKind with + | None -> None + | Some memberKind -> + // REVIEW: It's hard not to ignore the optPropertyType type annotation for 'set' properties. To apply it, + // we should apply it to the last argument, but at this point we've already pushed the patterns that + // make up the arguments onto the RHS. So we just always give a warning. + begin match optPropertyType with + | Some _ -> errorR(Error(FSComp.SR.parsTypeAnnotationsOnGetSet(),mBindLhs)) + | None -> () + end; + + let optReturnType = + match (memberKind, optReturnType) with + | MemberKind.PropertySet,_ -> optReturnType + | _, None -> optPropertyType + | _ -> optReturnType + // REDO with the correct member kind + let binding = bindingBuilder(vis,isInline,isMutable,mBindLhs,NoSequencePointAtInvisibleBinding,optReturnType,expr,exprm,[],attrs,Some(memFlagsBuilder memberKind)) + let (Binding (vis, _, isInline, _, attrs, doc, valSynData, pv, rhsRetInfo, rhsExpr, mBindLhs, spBind)) = binding + + let (SynValData(_,valSynInfo,_)) = valSynData + // Setters have all arguments tupled in their internal TAST form, though they don't appear to be + // tupled from the syntax + let memFlags = memFlagsBuilder memberKind + let valSynInfo = + let adjustValueArg valueArg = if List.length valueArg = 1 then valueArg else SynInfo.unnamedTopArg + match memberKind, valSynInfo, memFlags.IsInstance with + | MemberKind.PropertyGet,SynValInfo ([],_ret), false + | MemberKind.PropertyGet,SynValInfo ([_],_ret), true -> + raiseParseErrorAt mBindLhs (FSComp.SR.parsGetterMustHaveAtLeastOneArgument()) + | MemberKind.PropertyGet,SynValInfo (thisArg::indexOrUnitArgs::rest,ret), true -> + if not rest.IsEmpty then reportParseErrorAt mBindLhs (FSComp.SR.parsGetterAtMostOneArgument()) + SynValInfo ([thisArg; indexOrUnitArgs],ret) + | MemberKind.PropertyGet,SynValInfo (indexOrUnitArgs::rest,ret), false -> + if not rest.IsEmpty then reportParseErrorAt mBindLhs (FSComp.SR.parsGetterAtMostOneArgument()) + SynValInfo ([indexOrUnitArgs],ret) + | MemberKind.PropertySet,SynValInfo ([thisArg;valueArg],ret), true -> + SynValInfo ([thisArg; adjustValueArg valueArg],ret) + | MemberKind.PropertySet,SynValInfo (thisArg::indexArgs::valueArg::rest,ret), true -> + if not rest.IsEmpty then reportParseErrorAt mBindLhs (FSComp.SR.parsSetterAtMostTwoArguments()) + SynValInfo ([thisArg; indexArgs @ adjustValueArg valueArg],ret) + | MemberKind.PropertySet,SynValInfo ([valueArg],ret), false -> + SynValInfo ([adjustValueArg valueArg],ret) + | MemberKind.PropertySet,SynValInfo (indexArgs::valueArg::rest,ret), _ -> + if not rest.IsEmpty then reportParseErrorAt mBindLhs (FSComp.SR.parsSetterAtMostTwoArguments()) + SynValInfo ([indexArgs @ adjustValueArg valueArg],ret) + | _ -> + // should be unreachable, cover just in case + raiseParseErrorAt mBindLhs (FSComp.SR.parsInvalidProperty()) + let valSynData = SynValData(Some(memFlags), valSynInfo,None) + // Fold together the information from the first lambda pattern and the get/set binding + // This uses the 'this' variable from the first and the patterns for the get/set binding, + // replacing the get/set identifier. A little gross. + let bindingPatAdjusted, xmlDocAdjusted = + let bindingOuter = propertyNameBindingBuilder(vis,optInline,isMutable,mBindLhs,spBind,optReturnType,expr,exprm,[],attrs,Some(memFlagsBuilder MemberKind.Member)) + let (Binding (_,_,_,_,_,doc2,_,bindingPatOuter,_,_,_,_)) = bindingOuter + + + let lidOuter,lidVisOuter = + match bindingPatOuter with + | SynPat.LongIdent (lid,None,None,[],lidVisOuter,m) -> lid,lidVisOuter + | SynPat.Named (_,id,_,visOuter,m) -> LongIdentWithDots([id],[]),visOuter + | p -> raiseParseErrorAt mBindLhs (FSComp.SR.parsInvalidDeclarationSyntax()) + // Merge the visibility from the outer point with the inner point, e.g. + // member this.Size with get () = m_size + + let mergeLidVisOuter lidVisInner = + match lidVisInner,lidVisOuter with + | None,None -> None + | Some lidVisInner,None | None,Some lidVisInner -> Some lidVisInner + | Some _, Some _ -> + errorR(Error(FSComp.SR.parsMultipleAccessibilitiesForGetSet(),mBindLhs)); + lidVisInner + + // Replace the "get" or the "set" with the right name + let rec go p = + match p with + | SynPat.LongIdent (LongIdentWithDots([id],_),_,tyargs,args,lidVisInner,m) -> + // Setters have all arguments tupled in their internal form, though they don't + // appear to be tupled from the syntax. Somewhat unfortunate + let args = + if id.idText = "set" then + match args with + | [SynPat.Paren(SynPat.Tuple (indexPats,_),indexPatRange);valuePat] when id.idText = "set" -> + [SynPat.Tuple(indexPats@[valuePat],unionRanges indexPatRange valuePat.Range)] + | [indexPat;valuePat] -> + [SynPat.Tuple(args,unionRanges indexPat.Range valuePat.Range)] + | [valuePat] -> + [valuePat] + | _ -> + raiseParseErrorAt m (FSComp.SR.parsSetSyntax()) + else + args + // let idTool : Ident list = lidOuter |> List.map (fun (li:Ident) -> ident(li.idText,id.idRange)) |> List.rev |> List.take 1 + SynPat.LongIdent (lidOuter,Some(id),tyargs,args,mergeLidVisOuter lidVisInner,m) + | SynPat.Named (_,nm,_,lidVisInner,m) -> SynPat.LongIdent (lidOuter,None,None,[],mergeLidVisOuter lidVisInner,m) + | SynPat.Typed (p,ty,m) -> SynPat.Typed(go p,ty,m) + | SynPat.Attrib (p,attribs,m) -> SynPat.Attrib(go p,attribs,m) + | SynPat.Wild(m) -> SynPat.Wild(m) + | _ -> raiseParseErrorAt mBindLhs (FSComp.SR.parsInvalidDeclarationSyntax()) + go pv,PreXmlDoc.Merge doc2 doc + Some <| SynMemberDefn.Member (Binding (vis, NormalBinding, isInline, isMutable, attrs, xmlDocAdjusted, valSynData, bindingPatAdjusted, rhsRetInfo, rhsExpr, mBindLhs, spBind),mWhole))) + + ) +# 1372 "..\pars.fsy" + : 'memberCore)); +# 5576 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1545 "..\pars.fsy" + + ) +# 1545 "..\pars.fsy" + : 'abstractMemberFlags)); +# 5586 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1546 "..\pars.fsy" + + ) +# 1546 "..\pars.fsy" + : 'abstractMemberFlags)); +# 5596 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1550 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + [mkClassMemberLocalBindings(false,None,_1,_2,_3)] + ) +# 1550 "..\pars.fsy" + : 'classDefnMember)); +# 5610 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1554 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + [mkClassMemberLocalBindings(true,Some (rhs parseState 3),_1,_2,_4)] + ) +# 1554 "..\pars.fsy" + : 'classDefnMember)); +# 5624 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'memberFlags)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'memberCore)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_ODECLEND)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1558 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let _,flags = _3 + _4 _2 flags _1 + ) +# 1558 "..\pars.fsy" + : 'classDefnMember)); +# 5641 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'interfaceMember)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_interfaceImplDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1563 "..\pars.fsy" + if nonNil _1 then errorR(Error(FSComp.SR.parsAttributesAreNotPermittedOnInterfaceImplementations(),rhs parseState 1)); + if isSome _2 then errorR(Error(FSComp.SR.parsInterfacesHaveSameVisibilityAsEnclosingType(),rhs parseState 3)); + let mWhole = + match _5 with + | None -> rhs2 parseState 3 4 + | Some(mems) -> (rhs2 parseState 3 4, mems) ||> unionRangeWithListBy (fun (mem:SynMemberDefn) -> mem.Range) + [ SynMemberDefn.Interface (_4, _5, mWhole) ] + ) +# 1563 "..\pars.fsy" + : 'classDefnMember)); +# 5662 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'abstractMemberFlags)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inline)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'nameop)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_explicitValTyparDecls)) in + let _8 = (let data = parseState.GetInput(8) in (Microsoft.FSharp.Core.Operators.unbox data : 'topTypeWithTypeConstraints)) in + let _9 = (let data = parseState.GetInput(9) in (Microsoft.FSharp.Core.Operators.unbox data : 'classMemberSpfnGetSet)) in + let _10 = (let data = parseState.GetInput(10) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_ODECLEND)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1572 "..\pars.fsy" + let ty,arity = _8 + let isInline,doc,id,explicitValTyparDecls = _4,grabXmlDoc(parseState,3),_5,_6 + let getSetRangeOpt, getSet = _9 + let getSetAdjuster arity = match arity,getSet with SynValInfo([],_),MemberKind.Member -> MemberKind.PropertyGet | _ -> getSet + let wholeRange = + let m = rhs parseState 3 + match getSetRangeOpt with + | None -> unionRanges m ty.Range + | Some m2 -> unionRanges m m2 + if isSome _2 then errorR(Error(FSComp.SR.parsAccessibilityModsIllegalForAbstract(),wholeRange)); + let valSpfn = ValSpfn(_1,id,explicitValTyparDecls,ty,arity, isInline,false,doc, None,None,wholeRange) + [ SynMemberDefn.AbstractSlot(valSpfn,AbstractMemberFlags (getSetAdjuster arity), wholeRange) ] + ) +# 1572 "..\pars.fsy" + : 'classDefnMember)); +# 5692 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'inheritsDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1586 "..\pars.fsy" + if nonNil _1 then errorR(Error(FSComp.SR.parsAttributesIllegalOnInherit(),rhs parseState 1)); + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityIllegalOnInherit(),rhs parseState 1)); + [ _3 ] + ) +# 1586 "..\pars.fsy" + : 'classDefnMember)); +# 5707 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'valDefnDecl)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_ODECLEND)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1591 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + _3 None _1 false + ) +# 1591 "..\pars.fsy" + : 'classDefnMember)); +# 5722 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'valDefnDecl)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_ODECLEND)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1595 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + _4 (Some (rhs parseState 3)) _1 true + ) +# 1595 "..\pars.fsy" + : 'classDefnMember)); +# 5737 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'memberFlags)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'autoPropsDefnDecl)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_ODECLEND)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1599 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)) + let isStatic, flags = _3 + _4 _1 isStatic flags + ) +# 1599 "..\pars.fsy" + : 'classDefnMember)); +# 5754 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPattern)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'optAsSpec)) in + let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _8 = (let data = parseState.GetInput(8) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_ODECLEND)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1604 "..\pars.fsy" + let m = unionRanges (rhs2 parseState 3 6) _7.Range + let expr = _7 + let valSynData = SynValData (Some CtorMemberFlags, SynValInfo([SynInfo.InferSynArgInfoFromPat _4],SynInfo.unnamedRetVal), _5) + let vis = _2 + let declPat = SynPat.LongIdent (LongIdentWithDots([mkSynId (rhs parseState 3) "new"],[]),None,Some noInferredTypars,[_4],vis,rhs parseState 3) + // Check that 'SynPatForConstructorDecl' matches this correctly + assert (match declPat with SynPatForConstructorDecl _ -> true | _ -> false); + [ SynMemberDefn.Member(Binding (None,NormalBinding,false,false,_1,grabXmlDoc(parseState,3),valSynData, declPat,None,expr,m,NoSequencePointAtInvisibleBinding),m) ] + ) +# 1604 "..\pars.fsy" + : 'classDefnMember)); +# 5777 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'type_keyword)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1614 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + [ SynMemberDefn.NestedType(_5,None,rhs2 parseState 3 5) ] + ) +# 1614 "..\pars.fsy" + : 'classDefnMember)); +# 5792 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_mutable)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1619 "..\pars.fsy" + let mRhs = rhs2 parseState 4 6 + let doc = grabXmlDoc(parseState,4) + let mValDecl = rhs2 parseState 1 6 + (fun mLeft attribs isStatic -> + let mValDecl = match mLeft with None -> mValDecl | Some m -> unionRanges m mValDecl + let fld = Field(attribs,isStatic,Some _4,_6,_2,doc,_3,mRhs) + [ SynMemberDefn.ValField(fld, mValDecl) ]) + ) +# 1619 "..\pars.fsy" + : 'valDefnDecl)); +# 5812 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_mutable)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_typ)) in + let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _8 = (let data = parseState.GetInput(8) in (Microsoft.FSharp.Core.Operators.unbox data : 'classMemberSpfnGetSet)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1629 "..\pars.fsy" + let doc = grabXmlDoc(parseState,5) + let mValDecl = unionRanges (rhs parseState 1) _7.Range + let mGetSetOpt, getSet = _8 + if _2 then errorR(Error(FSComp.SR.parsMutableOnAutoPropertyShouldBeGetSet(),rhs parseState 3)) + (fun attribs isStatic flags -> + [ SynMemberDefn.AutoProperty(attribs, isStatic, _4, _5, getSet, flags, doc, _3, _7, mGetSetOpt, mValDecl) ]) + ) +# 1629 "..\pars.fsy" + : 'autoPropsDefnDecl)); +# 5833 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1638 "..\pars.fsy" + None + ) +# 1638 "..\pars.fsy" + : 'opt_typ)); +# 5843 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1639 "..\pars.fsy" + Some _2 + ) +# 1639 "..\pars.fsy" + : 'opt_typ)); +# 5854 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1643 "..\pars.fsy" + let (LongIdentWithDots(lid,dotms)) = _3 in (None,LongIdentWithDots(ident(MangledGlobalName,rhs parseState 1)::lid, rhs parseState 2::dotms)) + ) +# 1643 "..\pars.fsy" + : 'atomicPatternLongIdent)); +# 5865 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1644 "..\pars.fsy" + (None,_1) + ) +# 1644 "..\pars.fsy" + : 'atomicPatternLongIdent)); +# 5876 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'access)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1645 "..\pars.fsy" + (Some(_1), _2) + ) +# 1645 "..\pars.fsy" + : 'atomicPatternLongIdent)); +# 5888 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1648 "..\pars.fsy" + None + ) +# 1648 "..\pars.fsy" + : 'opt_access)); +# 5898 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'access)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1649 "..\pars.fsy" + Some(_1) + ) +# 1649 "..\pars.fsy" + : 'opt_access)); +# 5909 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1652 "..\pars.fsy" + SynAccess.Private + ) +# 1652 "..\pars.fsy" + : 'access)); +# 5919 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1653 "..\pars.fsy" + SynAccess.Public + ) +# 1653 "..\pars.fsy" + : 'access)); +# 5929 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1654 "..\pars.fsy" + SynAccess.Internal + ) +# 1654 "..\pars.fsy" + : 'access)); +# 5939 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'access)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1658 "..\pars.fsy" + Some(_1) + ) +# 1658 "..\pars.fsy" + : 'opt_declVisibility)); +# 5950 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1659 "..\pars.fsy" + None + ) +# 1659 "..\pars.fsy" + : 'opt_declVisibility)); +# 5960 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'objectImplementationBlock)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'declEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1662 "..\pars.fsy" + Some(_2) + ) +# 1662 "..\pars.fsy" + : 'opt_interfaceImplDefn)); +# 5972 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1663 "..\pars.fsy" + None + ) +# 1663 "..\pars.fsy" + : 'opt_interfaceImplDefn)); +# 5982 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnBlock)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'declEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1666 "..\pars.fsy" + _2 + ) +# 1666 "..\pars.fsy" + : 'opt_classDefn)); +# 5994 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1667 "..\pars.fsy" + [] + ) +# 1667 "..\pars.fsy" + : 'opt_classDefn)); +# 6004 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnBlock)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'declEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1670 "..\pars.fsy" + _2 + ) +# 1670 "..\pars.fsy" + : 'opt_classSpfn)); +# 6016 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1671 "..\pars.fsy" + [] + ) +# 1671 "..\pars.fsy" + : 'opt_classSpfn)); +# 6026 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeNonAtomicDeprecated)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'optBaseSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1676 "..\pars.fsy" + let mDecl = unionRanges (rhs parseState 1) ((_2): SynType).Range + SynMemberDefn.Inherit(_2,_3,mDecl) + ) +# 1676 "..\pars.fsy" + : 'inheritsDefn)); +# 6039 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeNonAtomicDeprecated)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'optBaseSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1679 "..\pars.fsy" + let mDecl = unionRanges (rhs parseState 1) _4.Range + SynMemberDefn.ImplicitInherit(_2,_4,_5,mDecl) + ) +# 1679 "..\pars.fsy" + : 'inheritsDefn)); +# 6054 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1682 "..\pars.fsy" + let mDecl = (rhs parseState 1) + if not _2 then errorR(Error(FSComp.SR.parsTypeNameCannotBeEmpty(), mDecl)) + SynMemberDefn.Inherit(SynType.LongIdent(LongIdentWithDots([], [])), None,mDecl) + ) +# 1682 "..\pars.fsy" + : 'inheritsDefn)); +# 6067 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'asSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1687 "..\pars.fsy" + Some(_1) + ) +# 1687 "..\pars.fsy" + : 'optAsSpec)); +# 6078 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1688 "..\pars.fsy" + None + ) +# 1688 "..\pars.fsy" + : 'optAsSpec)); +# 6088 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1691 "..\pars.fsy" + _2 + ) +# 1691 "..\pars.fsy" + : 'asSpec)); +# 6099 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'baseSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1694 "..\pars.fsy" + Some(_1) + ) +# 1694 "..\pars.fsy" + : 'optBaseSpec)); +# 6110 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1695 "..\pars.fsy" + None + ) +# 1695 "..\pars.fsy" + : 'optBaseSpec)); +# 6120 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1699 "..\pars.fsy" + if (_2).idText <> "base" then + errorR(Error(FSComp.SR.parsInheritDeclarationsCannotHaveAsBindings(),rhs2 parseState 1 2)); + ident("base",rhs parseState 2) + ) +# 1699 "..\pars.fsy" + : 'baseSpec)); +# 6133 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1704 "..\pars.fsy" + errorR(Error(FSComp.SR.parsInheritDeclarationsCannotHaveAsBindings(),rhs2 parseState 1 2)); + ident("base",rhs parseState 2) + ) +# 1704 "..\pars.fsy" + : 'baseSpec)); +# 6144 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'objectImplementationMembers)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1710 "..\pars.fsy" + _2 + ) +# 1710 "..\pars.fsy" + : 'objectImplementationBlock)); +# 6156 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'objectImplementationMembers)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1712 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedEndOfFileObjectMembers()); + _2 + ) +# 1712 "..\pars.fsy" + : 'objectImplementationBlock)); +# 6169 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'objectImplementationMembers)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1715 "..\pars.fsy" + _1 + ) +# 1715 "..\pars.fsy" + : 'objectImplementationBlock)); +# 6180 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'objectImplementationMember)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'objectImplementationMembers)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1718 "..\pars.fsy" + _1 @ _3 + ) +# 1718 "..\pars.fsy" + : 'objectImplementationMembers)); +# 6193 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'objectImplementationMember)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1719 "..\pars.fsy" + _1 + ) +# 1719 "..\pars.fsy" + : 'objectImplementationMembers)); +# 6205 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'memberOrOverride)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'memberCore)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_ODECLEND)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1723 "..\pars.fsy" + _3 None OverrideMemberFlags _1 + ) +# 1723 "..\pars.fsy" + : 'objectImplementationMember)); +# 6219 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'memberOrOverride)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'autoPropsDefnDecl)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_ODECLEND)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1725 "..\pars.fsy" + _3 _1 false OverrideMemberFlags + ) +# 1725 "..\pars.fsy" + : 'objectImplementationMember)); +# 6233 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'memberOrOverride)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1726 "..\pars.fsy" + [] + ) +# 1726 "..\pars.fsy" + : 'objectImplementationMember)); +# 6245 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'memberCore)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_ODECLEND)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1727 "..\pars.fsy" + [] + ) +# 1727 "..\pars.fsy" + : 'objectImplementationMember)); +# 6258 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1730 "..\pars.fsy" + + ) +# 1730 "..\pars.fsy" + : 'memberOrOverride)); +# 6268 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1731 "..\pars.fsy" + + ) +# 1731 "..\pars.fsy" + : 'memberOrOverride)); +# 6278 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : string * bool)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1736 "..\pars.fsy" + errorR(Error(FSComp.SR.parsUnexpectedQuotationOperatorInTypeAliasDidYouMeanVerbatimString(), rhs parseState 4)) + SynTypeDefnSimpleRepr.TypeAbbrev (ParserDetail.ThereWereSignificantParseErrorsSoDoNotTypecheckThisNode, SynType.LongIdent(_3), unionRanges (rhs parseState 1) _3.Range) + ) +# 1736 "..\pars.fsy" + : Ast.SynTypeDefnSimpleRepr)); +# 6295 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1739 "..\pars.fsy" + if nonNil _1 then errorR(Error(FSComp.SR.parsAttributesIllegalHere(),rhs parseState 1)); + if isSome _2 then errorR(Error(FSComp.SR.parsTypeAbbreviationsCannotHaveVisibilityDeclarations(),rhs parseState 2)); + SynTypeDefnSimpleRepr.TypeAbbrev (ParserDetail.Ok, _3, unionRanges (rhs parseState 1) _3.Range) + ) +# 1739 "..\pars.fsy" + : Ast.SynTypeDefnSimpleRepr)); +# 6310 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : (Ast.SynEnumCase, Ast.SynUnionCase) Choice list)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1743 "..\pars.fsy" + if nonNil _1 then errorR(Error(FSComp.SR.parsAttributesIllegalHere(),rhs parseState 1)); + let rangesOf3 = _3 |> List.map (function |Choice1Of2(ec)->ec.Range | Choice2Of2(uc)->uc.Range) + let mWhole = (rhs2 parseState 1 2, rangesOf3) ||> List.fold unionRanges + if _3 |> List.exists (function Choice1Of2 _ -> true | _ -> false) then ( + if isSome _2 then errorR(Error(FSComp.SR.parsEnumTypesCannotHaveVisibilityDeclarations(),rhs parseState 2)); + SynTypeDefnSimpleRepr.Enum (_3 |> List.choose (function + | Choice1Of2 data -> + Some(data) + | Choice2Of2(UnionCase(_,_,_,_,_,m)) -> + errorR(Error(FSComp.SR.parsAllEnumFieldsRequireValues(),m)); None), + mWhole) + ) else + SynTypeDefnSimpleRepr.Union (_2, + _3 |> List.choose (function Choice2Of2 data -> Some(data) | Choice1Of2 _ -> failwith "huh?"), + mWhole) + ) +# 1743 "..\pars.fsy" + : Ast.SynTypeDefnSimpleRepr)); +# 6337 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'braceFieldDeclList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1759 "..\pars.fsy" + if nonNil _1 then errorR(Error(FSComp.SR.parsAttributesIllegalHere(),rhs parseState 1)); + SynTypeDefnSimpleRepr.Record (_2,_3,lhs parseState) + ) +# 1759 "..\pars.fsy" + : Ast.SynTypeDefnSimpleRepr)); +# 6351 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'inlineAssemblyTyconRepr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1762 "..\pars.fsy" + if nonNil _1 then errorR(Error(FSComp.SR.parsAttributesIllegalHere(),rhs parseState 1)); + libraryOnlyError (lhs parseState); + if isSome _2 then errorR(Error(FSComp.SR.parsInlineAssemblyCannotHaveVisibilityDeclarations(),rhs parseState 2)); + _4 + ) +# 1762 "..\pars.fsy" + : Ast.SynTypeDefnSimpleRepr)); +# 6368 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdFieldDeclList)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rbrace)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1770 "..\pars.fsy" + _2 + ) +# 1770 "..\pars.fsy" + : 'braceFieldDeclList)); +# 6380 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdFieldDeclList)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1772 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBrace()); + _2 + ) +# 1772 "..\pars.fsy" + : 'braceFieldDeclList)); +# 6393 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rbrace)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1775 "..\pars.fsy" + [] + ) +# 1775 "..\pars.fsy" + : 'braceFieldDeclList)); +# 6404 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'stringOrKeywordString)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HASH)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1779 "..\pars.fsy" + libraryOnlyError (lhs parseState); + let lhsm = lhs parseState + SynTypeDefnSimpleRepr.LibraryOnlyILAssembly (ParseAssemblyCodeType _2 (rhs parseState 2),lhsm) + ) +# 1779 "..\pars.fsy" + : 'inlineAssemblyTyconRepr)); +# 6418 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1784 "..\pars.fsy" + TyconClass + ) +# 1784 "..\pars.fsy" + : 'classOrInterfaceOrStruct)); +# 6428 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1785 "..\pars.fsy" + TyconInterface + ) +# 1785 "..\pars.fsy" + : 'classOrInterfaceOrStruct)); +# 6438 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1786 "..\pars.fsy" + TyconStruct + ) +# 1786 "..\pars.fsy" + : 'classOrInterfaceOrStruct)); +# 6448 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1789 "..\pars.fsy" + + ) +# 1789 "..\pars.fsy" + : 'interfaceMember)); +# 6458 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1790 "..\pars.fsy" + + ) +# 1790 "..\pars.fsy" + : 'interfaceMember)); +# 6468 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1794 "..\pars.fsy" + [], _2.Lid,false,[],_1,grabXmlDoc(parseState,2) + ) +# 1794 "..\pars.fsy" + : 'tyconNameAndTyparDecls)); +# 6480 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'prefixTyparDecls)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1796 "..\pars.fsy" + _2, _3.Lid,false,[],_1,grabXmlDoc(parseState,2) + ) +# 1796 "..\pars.fsy" + : 'tyconNameAndTyparDecls)); +# 6493 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'postfixTyparDecls)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1798 "..\pars.fsy" + let tps,tpcs = _3 + tps, _2.Lid,true,tpcs,_1,grabXmlDoc(parseState,2) + ) +# 1798 "..\pars.fsy" + : 'tyconNameAndTyparDecls)); +# 6507 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1802 "..\pars.fsy" + [ TyparDecl([],_1) ] + ) +# 1802 "..\pars.fsy" + : 'prefixTyparDecls)); +# 6518 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'prefixTyparDeclList)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1803 "..\pars.fsy" + List.rev _2 + ) +# 1803 "..\pars.fsy" + : 'prefixTyparDecls)); +# 6530 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'prefixTyparDeclList)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typarDecl)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1806 "..\pars.fsy" + _3 :: _1 + ) +# 1806 "..\pars.fsy" + : 'prefixTyparDeclList)); +# 6542 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typarDecl)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1807 "..\pars.fsy" + [_1] + ) +# 1807 "..\pars.fsy" + : 'prefixTyparDeclList)); +# 6553 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1811 "..\pars.fsy" + TyparDecl(_1,_2) + ) +# 1811 "..\pars.fsy" + : 'typarDecl)); +# 6565 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_TYAPP)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'prefixTyparDeclList)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_typeConstraints)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1817 "..\pars.fsy" + if not _2 then warning(Error(FSComp.SR.parsNonAdjacentTypars(),rhs2 parseState 2 5)); + List.rev _3, _4 + ) +# 1817 "..\pars.fsy" + : 'postfixTyparDecls)); +# 6581 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'prefixTyparDeclList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1824 "..\pars.fsy" + (List.rev _1,true) + ) +# 1824 "..\pars.fsy" + : 'explicitValTyparDeclsCore)); +# 6592 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'prefixTyparDeclList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1826 "..\pars.fsy" + (List.rev _1,false) + ) +# 1826 "..\pars.fsy" + : 'explicitValTyparDeclsCore)); +# 6603 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1828 "..\pars.fsy" + ([],false) + ) +# 1828 "..\pars.fsy" + : 'explicitValTyparDeclsCore)); +# 6613 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_TYAPP)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'explicitValTyparDeclsCore)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_typeConstraints)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1832 "..\pars.fsy" + if not _2 then warning(Error(FSComp.SR.parsNonAdjacentTypars(),rhs2 parseState 2 5)); + let tps,flex = _3 + SynValTyparDecls(tps,flex,_4) + ) +# 1832 "..\pars.fsy" + : 'explicitValTyparDecls)); +# 6630 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'explicitValTyparDecls)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1838 "..\pars.fsy" + _1 + ) +# 1838 "..\pars.fsy" + : 'opt_explicitValTyparDecls)); +# 6641 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1840 "..\pars.fsy" + SynValTyparDecls([],true,[]) + ) +# 1840 "..\pars.fsy" + : 'opt_explicitValTyparDecls)); +# 6651 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'explicitValTyparDecls)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1844 "..\pars.fsy" + Some _1 + ) +# 1844 "..\pars.fsy" + : 'opt_explicitValTyparDecls2)); +# 6662 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1846 "..\pars.fsy" + None + ) +# 1846 "..\pars.fsy" + : 'opt_explicitValTyparDecls2)); +# 6672 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1852 "..\pars.fsy" + [] + ) +# 1852 "..\pars.fsy" + : 'opt_typeConstraints)); +# 6682 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeConstraints)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1854 "..\pars.fsy" + List.rev _2 + ) +# 1854 "..\pars.fsy" + : 'opt_typeConstraints)); +# 6693 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeConstraints)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeConstraint)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1859 "..\pars.fsy" + _3 :: _1 + ) +# 1859 "..\pars.fsy" + : 'typeConstraints)); +# 6705 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeConstraint)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1860 "..\pars.fsy" + [_1] + ) +# 1860 "..\pars.fsy" + : 'typeConstraints)); +# 6716 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1866 "..\pars.fsy" + libraryOnlyError (lhs parseState); WhereTyparDefaultsToType(_2,_4,lhs parseState) + ) +# 1866 "..\pars.fsy" + : 'typeConstraint)); +# 6728 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1868 "..\pars.fsy" + WhereTyparSubtypeOfType(_1,_3,lhs parseState) + ) +# 1868 "..\pars.fsy" + : 'typeConstraint)); +# 6740 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1870 "..\pars.fsy" + WhereTyparIsValueType(_1,lhs parseState) + ) +# 1870 "..\pars.fsy" + : 'typeConstraint)); +# 6751 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1872 "..\pars.fsy" + if _3 <> "not" then reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedIdentifier(_3)); + WhereTyparIsReferenceType(_1,lhs parseState) + ) +# 1872 "..\pars.fsy" + : 'typeConstraint)); +# 6764 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1875 "..\pars.fsy" + WhereTyparSupportsNull(_1,lhs parseState) + ) +# 1875 "..\pars.fsy" + : 'typeConstraint)); +# 6775 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'classMemberSpfn)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1877 "..\pars.fsy" + WhereTyparSupportsMember([ _1 ],_4,lhs parseState) + ) +# 1877 "..\pars.fsy" + : 'typeConstraint)); +# 6788 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typarAlts)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'classMemberSpfn)) in + let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1879 "..\pars.fsy" + WhereTyparSupportsMember(List.rev(_2),_6,lhs parseState) + ) +# 1879 "..\pars.fsy" + : 'typeConstraint)); +# 6802 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : range * range option * Ast.SynType list * range list * range)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1881 "..\pars.fsy" + let _ltm,_gtm,args,_commas,mWhole = _4 in WhereTyparIsDelegate(_1, args, unionRanges _1.Range mWhole) + ) +# 1881 "..\pars.fsy" + : 'typeConstraint)); +# 6814 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : range * range option * Ast.SynType list * range list * range)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1883 "..\pars.fsy" + match _3 with + | "enum" -> let _ltm,_gtm,args,_commas,mWhole = _4 in WhereTyparIsEnum(_1, args, unionRanges _1.Range mWhole) + | nm -> raiseParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedIdentifier(nm)) + ) +# 1883 "..\pars.fsy" + : 'typeConstraint)); +# 6829 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1887 "..\pars.fsy" + match _3 with + | "comparison" -> WhereTyparIsComparable(_1,lhs parseState) + | "equality" -> WhereTyparIsEquatable(_1,lhs parseState) + | "unmanaged" -> WhereTyparIsUnmanaged(_1,lhs parseState) + | nm -> raiseParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedIdentifier(nm)) + ) +# 1887 "..\pars.fsy" + : 'typeConstraint)); +# 6845 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typarAlts)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1894 "..\pars.fsy" + _3::_1 + ) +# 1894 "..\pars.fsy" + : 'typarAlts)); +# 6857 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1895 "..\pars.fsy" + [_1] + ) +# 1895 "..\pars.fsy" + : 'typarAlts)); +# 6868 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'barAndgrabXmlDoc)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'attrUnionCaseDecls)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1901 "..\pars.fsy" + _2 _1 + ) +# 1901 "..\pars.fsy" + : (Ast.SynEnumCase, Ast.SynUnionCase) Choice list)); +# 6880 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'firstUnionCaseDeclOfMany)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'barAndgrabXmlDoc)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'attrUnionCaseDecls)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1903 "..\pars.fsy" + _1 :: _3 _2 + ) +# 1903 "..\pars.fsy" + : (Ast.SynEnumCase, Ast.SynUnionCase) Choice list)); +# 6893 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'firstUnionCaseDecl)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1905 "..\pars.fsy" + [_1] + ) +# 1905 "..\pars.fsy" + : (Ast.SynEnumCase, Ast.SynUnionCase) Choice list)); +# 6904 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1908 "..\pars.fsy" + grabXmlDoc(parseState,1) + ) +# 1908 "..\pars.fsy" + : 'barAndgrabXmlDoc)); +# 6914 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attrUnionCaseDecl)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'barAndgrabXmlDoc)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'attrUnionCaseDecls)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1911 "..\pars.fsy" + (fun xmlDoc -> _1 xmlDoc :: _3 _2) + ) +# 1911 "..\pars.fsy" + : 'attrUnionCaseDecls)); +# 6927 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attrUnionCaseDecl)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1912 "..\pars.fsy" + (fun xmlDoc -> [ _1 xmlDoc ]) + ) +# 1912 "..\pars.fsy" + : 'attrUnionCaseDecls)); +# 6938 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'unionCaseName)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1916 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsUnionCasesCannotHaveVisibilityDeclarations(),rhs parseState 2)); + let mDecl = rhs parseState 3 + (fun xmlDoc -> Choice2Of2 (UnionCase ( _1, _3,UnionCaseFields [],xmlDoc,None,mDecl))) + + ) +# 1916 "..\pars.fsy" + : 'attrUnionCaseDecl)); +# 6955 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'unionCaseName)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'unionCaseRepr)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1921 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsUnionCasesCannotHaveVisibilityDeclarations(),rhs parseState 2)); + let mDecl = rhs2 parseState 3 5 + (fun xmlDoc -> Choice2Of2 (UnionCase ( _1, _3,UnionCaseFields _5,xmlDoc,None,mDecl))) + + ) +# 1921 "..\pars.fsy" + : 'attrUnionCaseDecl)); +# 6973 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'unionCaseName)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'topType)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1926 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsUnionCasesCannotHaveVisibilityDeclarations(),rhs parseState 2)); + libraryOnlyWarning(lhs parseState); + let mDecl = rhs2 parseState 3 5 + (fun xmlDoc -> Choice2Of2 (UnionCase ( _1, _3,UnionCaseFullType _5,xmlDoc,None,mDecl))) + + ) +# 1926 "..\pars.fsy" + : 'attrUnionCaseDecl)); +# 6992 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'unionCaseName)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'constant)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1932 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsEnumFieldsCannotHaveVisibilityDeclarations(),rhs parseState 2)); + let mDecl = rhs2 parseState 3 5 + (fun xmlDoc -> Choice1Of2 (EnumCase ( _1, _3,_5,xmlDoc,mDecl))) + + ) +# 1932 "..\pars.fsy" + : 'attrUnionCaseDecl)); +# 7010 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'nameop)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1940 "..\pars.fsy" + _1 + ) +# 1940 "..\pars.fsy" + : 'unionCaseName)); +# 7021 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1942 "..\pars.fsy" + ident(opNameCons,rhs parseState 2) + ) +# 1942 "..\pars.fsy" + : 'unionCaseName)); +# 7032 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1944 "..\pars.fsy" + ident(opNameNil,rhs2 parseState 2 3) + ) +# 1944 "..\pars.fsy" + : 'unionCaseName)); +# 7043 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1948 "..\pars.fsy" + + Choice2Of2 (UnionCase ( [], _1,UnionCaseFields [],PreXmlDoc.Empty,None,rhs parseState 1)) + + ) +# 1948 "..\pars.fsy" + : 'firstUnionCaseDeclOfMany)); +# 7057 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'constant)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1952 "..\pars.fsy" + + Choice1Of2 (EnumCase ([],_1,_3,PreXmlDoc.Empty,rhs2 parseState 1 3)) + + ) +# 1952 "..\pars.fsy" + : 'firstUnionCaseDeclOfMany)); +# 7072 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'firstUnionCaseDecl)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1956 "..\pars.fsy" + _1 + ) +# 1956 "..\pars.fsy" + : 'firstUnionCaseDeclOfMany)); +# 7084 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'unionCaseRepr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1960 "..\pars.fsy" + + Choice2Of2 (UnionCase ( [],_1,UnionCaseFields _3,PreXmlDoc.Empty,None,rhs2 parseState 1 3)) + + ) +# 1960 "..\pars.fsy" + : 'firstUnionCaseDecl)); +# 7098 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'constant)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1964 "..\pars.fsy" + + Choice1Of2 (EnumCase ([],_1,_3,PreXmlDoc.Empty,rhs2 parseState 1 3)) + + ) +# 1964 "..\pars.fsy" + : 'firstUnionCaseDecl)); +# 7113 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'braceFieldDeclList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1970 "..\pars.fsy" + errorR(Deprecated(FSComp.SR.parsConsiderUsingSeparateRecordType(),lhs parseState)); + _1 + ) +# 1970 "..\pars.fsy" + : 'unionCaseRepr)); +# 7125 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleTypeElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1973 "..\pars.fsy" + List.map mkAnonField (_1 :: _3) + ) +# 1973 "..\pars.fsy" + : 'unionCaseRepr)); +# 7137 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1975 "..\pars.fsy" + [mkAnonField _1] + ) +# 1975 "..\pars.fsy" + : 'unionCaseRepr)); +# 7148 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdFieldDecl)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'seps)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdFieldDeclList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1979 "..\pars.fsy" + _1 :: _3 + ) +# 1979 "..\pars.fsy" + : 'recdFieldDeclList)); +# 7161 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdFieldDecl)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1981 "..\pars.fsy" + [_1] + ) +# 1981 "..\pars.fsy" + : 'recdFieldDeclList)); +# 7173 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'fieldDecl)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1985 "..\pars.fsy" + let fld = _2 _1 false + let (Field(a,b,c,d,e,f,vis,g)) = fld + if isSome vis then errorR(Error(FSComp.SR.parsRecordFieldsCannotHaveVisibilityDeclarations(),rhs parseState 2)); + Field(a,b,c,d,e,f,None,g) + ) +# 1985 "..\pars.fsy" + : 'recdFieldDecl)); +# 7188 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_mutable)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1992 "..\pars.fsy" + let mRhs = rhs2 parseState 3 5 + let xmlDoc = grabXmlDoc(parseState,3) + (fun attrs stat -> Field(attrs, stat,Some _3,_5,_1,xmlDoc,_2,mRhs)) + ) +# 1992 "..\pars.fsy" + : 'fieldDecl)); +# 7204 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExceptionRepr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_classDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1999 "..\pars.fsy" + ExceptionDefn(_1,_2, (_1.Range,_2) ||> unionRangeWithListBy (fun cd -> cd.Range) ) + ) +# 1999 "..\pars.fsy" + : Ast.SynExceptionDefn)); +# 7216 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExceptionRepr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_classSpfn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2003 "..\pars.fsy" + ExceptionSig(_1,_2,lhs parseState) + ) +# 2003 "..\pars.fsy" + : 'exconSpfn)); +# 7228 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2006 "..\pars.fsy" + grabXmlDoc(parseState,1) + ) +# 2006 "..\pars.fsy" + : 'exceptionAndGrabDoc)); +# 7238 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'exceptionAndGrabDoc)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'exconIntro)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'exconRepr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2010 "..\pars.fsy" + ExceptionDefnRepr(_2,_4,_5,_1,_3,(match _5 with None -> rhs2 parseState 1 4 | Some p -> unionRanges (rangeOfLongIdent p) (rhs2 parseState 1 4))) + ) +# 2010 "..\pars.fsy" + : Ast.SynExceptionRepr)); +# 7253 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2014 "..\pars.fsy" + UnionCase ( [], _1,UnionCaseFields [],PreXmlDoc.Empty,None,lhs parseState) + ) +# 2014 "..\pars.fsy" + : 'exconIntro)); +# 7264 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'unionCaseRepr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2016 "..\pars.fsy" + UnionCase ( [], _1,UnionCaseFields _3,PreXmlDoc.Empty,None,lhs parseState) + ) +# 2016 "..\pars.fsy" + : 'exconIntro)); +# 7276 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2019 "..\pars.fsy" + None + ) +# 2019 "..\pars.fsy" + : 'exconRepr)); +# 7286 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2020 "..\pars.fsy" + Some (_2.Lid) + ) +# 2020 "..\pars.fsy" + : 'exconRepr)); +# 7297 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2023 "..\pars.fsy" + _2 + ) +# 2023 "..\pars.fsy" + : Ast.LongIdentWithDots)); +# 7308 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_rec)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'localBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2027 "..\pars.fsy" + let mLetKwd = rhs parseState 1 + let isUse = _1 + let isRec = _2 + let localBindingsLastRangeOpt, localBindingsBuilder = _3 + + // Calculate the precise range of the binding set, up to the end of the last r.h.s. expression + let bindingSetRange = + match localBindingsLastRangeOpt with + | None -> rhs2 parseState 1 2 (* there was some error - this will be an approximate range *) + | Some lastRange -> unionRanges mLetKwd lastRange + // The first binding swallows any attributes prior to the 'let' + BindingSetPreAttrs(mLetKwd,isRec,isUse, + (fun attrs vis -> + // apply the builder + let binds = localBindingsBuilder attrs vis mLetKwd + if not isRec && List.length binds > 1 then + reportParseErrorAt mLetKwd (FSComp.SR.parsLetAndForNonRecBindings()); + [],binds), + bindingSetRange) + ) +# 2027 "..\pars.fsy" + : 'defnBindings)); +# 7339 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'cPrototype)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2048 "..\pars.fsy" + let bindRange = lhs parseState + BindingSetPreAttrs(bindRange, false,false,_1,bindRange) + ) +# 2048 "..\pars.fsy" + : 'defnBindings)); +# 7351 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2053 "..\pars.fsy" + let mDoKwd = rhs parseState 1 + let mWhole = unionRanges mDoKwd _2.Range + // any attributes prior to the 'let' are left free, e.g. become top-level attributes + // associated with the module, 'main' function or assembly depending on their target + BindingSetPreAttrs(mDoKwd,false,false,(fun attrs vis -> attrs,[mkSynDoBinding (vis,true,_2,mWhole)]), mWhole) + ) +# 2053 "..\pars.fsy" + : 'doBinding)); +# 7366 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_rec)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'localBindings)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteDefnBindingsTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2062 "..\pars.fsy" + let mLetKwd = rhs parseState 1 + let isUse = _1 + let isRec = _2 + _4 (if isUse then "use" else "let") mLetKwd; // report unterminated error + + let localBindingsLastRangeOpt, localBindingsBuilder = _3 + + // Calculate the precise range of the binding set, up to the end of the last r.h.s. expression + let bindingSetRange = + match localBindingsLastRangeOpt with + | None -> rhs parseState 1 (* there was some error - this will be an approximate range *) + | Some lastRange -> unionRanges mLetKwd lastRange + // the first binding swallow any attributes prior to the 'let' + BindingSetPreAttrs(mLetKwd,isRec,isUse, + (fun attrs vis -> + let binds = localBindingsBuilder attrs vis mLetKwd + if not isRec && List.length binds > 1 then + reportParseErrorAt mLetKwd (FSComp.SR.parsLetAndForNonRecBindings()); + [],binds), + bindingSetRange), (unionRanges mLetKwd bindingSetRange) + ) +# 2062 "..\pars.fsy" + : 'hardwhiteLetBindings)); +# 7399 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteDefnBindingsTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2086 "..\pars.fsy" + let mLetKwd = rhs parseState 1 + let bindingSetRange = unionRanges mLetKwd _2.Range + let seqPt = NoSequencePointAtDoBinding + // any attributes prior to the 'let' are left free, e.g. become top-level attributes + // associated with the module, 'main' function or assembly depending on their target + BindingSetPreAttrs(mLetKwd,false,false,(fun attrs vis -> attrs,[mkSynDoBinding (vis,true,_2,bindingSetRange)]),bindingSetRange), _2 + ) +# 2086 "..\pars.fsy" + : 'hardwhiteDoBinding)); +# 7416 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'defnBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2094 "..\pars.fsy" + _1 + ) +# 2094 "..\pars.fsy" + : 'classDefnBindings)); +# 7427 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'doBinding)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2095 "..\pars.fsy" + _1 + ) +# 2095 "..\pars.fsy" + : 'classDefnBindings)); +# 7438 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteLetBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2096 "..\pars.fsy" + let b,m = _1 in b + ) +# 2096 "..\pars.fsy" + : 'classDefnBindings)); +# 7449 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteDoBinding)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2097 "..\pars.fsy" + fst _1 + ) +# 2097 "..\pars.fsy" + : 'classDefnBindings)); +# 7460 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2102 "..\pars.fsy" + (fun _ m -> ()) + ) +# 2102 "..\pars.fsy" + : 'hardwhiteDefnBindingsTerminator)); +# 7470 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2104 "..\pars.fsy" + (fun kwd m -> reportParseErrorAt m (match kwd with + | "let!" -> FSComp.SR.parsUnmatchedLetBang() + | "use!" -> FSComp.SR.parsUnmatchedUseBang() + | "use" -> FSComp.SR.parsUnmatchedUse() + | _ (*"let" *) -> FSComp.SR.parsUnmatchedLet())) + ) +# 2104 "..\pars.fsy" + : 'hardwhiteDefnBindingsTerminator)); +# 7485 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'cRetType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : 'cArgs)) in + let _8 = (let data = parseState.GetInput(8) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2112 "..\pars.fsy" + let rty,vis,nm,args = _2,_3,_4,_7 + let xmlDoc = grabXmlDoc(parseState,1) + let nmm = rhs parseState 3 + let argsm = rhs parseState 6 + let mBindLhs = lhs parseState + let mWhole = lhs parseState + let mRhs = lhs parseState + let rhsExpr = SynExpr.App(ExprAtomicFlag.NonAtomic, + false, + SynExpr.Ident(ident("failwith",rhs parseState 6)), + SynExpr.Const(SynConst.String("extern was not given a DllImport attribute",rhs parseState 8),rhs parseState 8), + mRhs) + (fun attrs vis -> + let bindingId = SynPat.LongIdent (LongIdentWithDots([nm],[]), None, Some noInferredTypars, [SynPat.Tuple(args,argsm)], vis, nmm) + let binding = mkSynBinding + (xmlDoc, bindingId) + (vis, false, false, mBindLhs, NoSequencePointAtInvisibleBinding, Some rty ,rhsExpr, mRhs, [], attrs, None) + [], [binding]) + ) +# 2112 "..\pars.fsy" + : 'cPrototype)); +# 7518 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'cMoreArgs)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2133 "..\pars.fsy" + List.rev _1 + ) +# 2133 "..\pars.fsy" + : 'cArgs)); +# 7529 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'cArg)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2135 "..\pars.fsy" + [_1] + ) +# 2135 "..\pars.fsy" + : 'cArgs)); +# 7540 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2137 "..\pars.fsy" + [] + ) +# 2137 "..\pars.fsy" + : 'cArgs)); +# 7550 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'cMoreArgs)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'cArg)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2141 "..\pars.fsy" + _3 :: _1 + ) +# 2141 "..\pars.fsy" + : 'cMoreArgs)); +# 7562 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'cArg)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'cArg)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2143 "..\pars.fsy" + [_3; _1] + ) +# 2143 "..\pars.fsy" + : 'cMoreArgs)); +# 7574 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'cType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2147 "..\pars.fsy" + let m = lhs parseState in SynPat.Typed(SynPat.Wild m,_2,m) |> addAttribs _1 + ) +# 2147 "..\pars.fsy" + : 'cArg)); +# 7586 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'cType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2149 "..\pars.fsy" + let m = lhs parseState in SynPat.Typed(SynPat.Named (SynPat.Wild m,_3,false,None,m),_2,m) |> addAttribs _1 + ) +# 2149 "..\pars.fsy" + : 'cArg)); +# 7599 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2153 "..\pars.fsy" + let m = _1.Range + SynType.App(SynType.LongIdent(_1),None,[],[],None,false,m) + ) +# 2153 "..\pars.fsy" + : 'cType)); +# 7611 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'cType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2157 "..\pars.fsy" + let m = lhs parseState + SynType.App(SynType.LongIdent(LongIdentWithDots([ident("[]",m)],[])),None,[_1],[],None,true,m) + ) +# 2157 "..\pars.fsy" + : 'cType)); +# 7624 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'cType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2161 "..\pars.fsy" + let m = lhs parseState + SynType.App(SynType.LongIdent(LongIdentWithDots([ident("nativeptr",m)],[])),None,[_1],[],None,true,m) + ) +# 2161 "..\pars.fsy" + : 'cType)); +# 7636 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'cType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2165 "..\pars.fsy" + let m = lhs parseState + SynType.App(SynType.LongIdent(LongIdentWithDots([ident("byref",m)],[])),None,[_1],[],None,true,m) + ) +# 2165 "..\pars.fsy" + : 'cType)); +# 7648 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2169 "..\pars.fsy" + let m = lhs parseState + SynType.App(SynType.LongIdent(LongIdentWithDots([ident("nativeint",m)],[])),None,[],[],None,true,m) + ) +# 2169 "..\pars.fsy" + : 'cType)); +# 7659 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'cType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2174 "..\pars.fsy" + SynReturnInfo((_2,SynArgInfo(_1,false,None)),rhs parseState 2) + ) +# 2174 "..\pars.fsy" + : 'cRetType)); +# 7671 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2176 "..\pars.fsy" + let m = rhs parseState 2 + SynReturnInfo((SynType.App(SynType.LongIdent(LongIdentWithDots([ident("unit",m)],[])),None,[],[],None,false,m),SynArgInfo(_1,false,None)),m) + ) +# 2176 "..\pars.fsy" + : 'cRetType)); +# 7683 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attr_localBinding)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moreLocalBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2182 "..\pars.fsy" + let (moreBindings, moreBindingRanges) = List.unzip _2 + let moreLocalBindingsLastRange = if moreBindingRanges.IsEmpty then None else Some (List.last moreBindingRanges) + match _1 with + | Some (localBindingRange,attrLocalBindingBuilder) -> + let lastRange = + match moreLocalBindingsLastRange with + | None -> localBindingRange + | Some m -> m + Some lastRange, (fun attrs vis mLetKwd -> attrLocalBindingBuilder attrs vis mLetKwd true :: moreBindings) + | None -> + moreLocalBindingsLastRange, (fun _attrs _vis _letm -> moreBindings) + ) +# 2182 "..\pars.fsy" + : 'localBindings)); +# 7705 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'attr_localBinding)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moreLocalBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2196 "..\pars.fsy" + let mLetKwd = rhs parseState 1 + (match _2 with + | Some (localBindingRange,attrLocalBindingBuilder) -> (attrLocalBindingBuilder [] None mLetKwd false,localBindingRange) :: _3 + | None -> _3) + ) +# 2196 "..\pars.fsy" + : 'moreLocalBindings)); +# 7720 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2201 "..\pars.fsy" + [] + ) +# 2201 "..\pars.fsy" + : 'moreLocalBindings)); +# 7730 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'localBinding)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2205 "..\pars.fsy" + let attrs2 = _1 + let localBindingRange,localBindingBuilder = _2 + let attrLocalBindingBuilder = (fun attrs vis mLetKwd _ -> localBindingBuilder (attrs@attrs2) vis mLetKwd) + Some(localBindingRange,attrLocalBindingBuilder) + ) +# 2205 "..\pars.fsy" + : 'attr_localBinding)); +# 7745 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2210 "..\pars.fsy" + None + ) +# 2210 "..\pars.fsy" + : 'attr_localBinding)); +# 7755 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inline)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_mutable)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'bindingPattern)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_topReturnTypeWithTypeConstraints)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedExprWithStaticOptimizationsBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2214 "..\pars.fsy" + let (expr:SynExpr),opts = _6 + let eqm = rhs parseState 5 + let mRhs = expr.Range + let optReturnType = _4 + let bindingBuilder, mBindLhs = _3 + let localBindingRange = unionRanges (rhs2 parseState 3 5) mRhs + let localBindingBuilder = + (fun attrs vis mLetKwd -> + let mWhole = unionRanges mLetKwd mRhs + let spBind = if IsControlFlowExpression expr then NoSequencePointAtLetBinding else SequencePointAtBinding(mWhole) + bindingBuilder (vis,_1,_2,mBindLhs,spBind,optReturnType,expr,mRhs,opts,attrs,None)) + localBindingRange,localBindingBuilder + ) +# 2214 "..\pars.fsy" + : 'localBinding)); +# 7781 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inline)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_mutable)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'bindingPattern)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_topReturnTypeWithTypeConstraints)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2227 "..\pars.fsy" + let mWhole = rhs2 parseState 3 5 + let mRhs = rhs parseState 5 + let optReturnType = _4 + let bindingBuilder,mBindLhs = _3 + let localBindingBuilder = + (fun attrs vis mLetKwd -> + let spBind = SequencePointAtBinding(unionRanges mLetKwd mRhs) + let eqm = rhs parseState 5 + let zeroWidthAtEnd = eqm.EndRange + bindingBuilder (vis,_1,_2,mBindLhs,spBind,optReturnType,arbExpr("localBinding1",zeroWidthAtEnd),mRhs,[],attrs,None)) + mWhole,localBindingBuilder + ) +# 2227 "..\pars.fsy" + : 'localBinding)); +# 7805 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inline)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_mutable)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'bindingPattern)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_topReturnTypeWithTypeConstraints)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2239 "..\pars.fsy" + if not _5 then reportParseErrorAt (rhs parseState 5) (FSComp.SR.parsUnexpectedEndOfFileDefinition()) + let optReturnType = _4 + let mWhole = match optReturnType with None -> rhs parseState 3 | Some _ -> rhs2 parseState 3 4 + let mRhs = mWhole.EndRange // zero-width range at end of last good token + let bindingBuilder,mBindLhs = _3 + let localBindingBuilder = + (fun attrs vis mLetKwd -> + let spBind = SequencePointAtBinding(unionRanges mLetKwd mRhs) + bindingBuilder (vis,_1,_2,mBindLhs,spBind,optReturnType,arbExpr("localBinding2",mRhs),mRhs,[],attrs,None)) + mWhole,localBindingBuilder + ) +# 2239 "..\pars.fsy" + : 'localBinding)); +# 7829 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedExprWithStaticOptimizations)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2253 "..\pars.fsy" + _2 + ) +# 2253 "..\pars.fsy" + : 'typedExprWithStaticOptimizationsBlock)); +# 7841 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedExprWithStaticOptimizations)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2255 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedEndOfFile()); + let a,b = _2 + (exprFromParseError a, b) + ) +# 2255 "..\pars.fsy" + : 'typedExprWithStaticOptimizationsBlock)); +# 7855 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedExprWithStaticOptimizations)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2259 "..\pars.fsy" + _1 + ) +# 2259 "..\pars.fsy" + : 'typedExprWithStaticOptimizationsBlock)); +# 7866 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_staticOptimizations)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2262 "..\pars.fsy" + _1, List.rev _2 + ) +# 2262 "..\pars.fsy" + : 'typedExprWithStaticOptimizations)); +# 7878 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_staticOptimizations)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticOptimization)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2265 "..\pars.fsy" + _2 :: _1 + ) +# 2265 "..\pars.fsy" + : 'opt_staticOptimizations)); +# 7890 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2266 "..\pars.fsy" + [] + ) +# 2266 "..\pars.fsy" + : 'opt_staticOptimizations)); +# 7900 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticOptimizationConditions)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2269 "..\pars.fsy" + (_2,_4) + ) +# 2269 "..\pars.fsy" + : 'staticOptimization)); +# 7912 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticOptimizationConditions)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticOptimizationCondition)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2272 "..\pars.fsy" + _3 :: _1 + ) +# 2272 "..\pars.fsy" + : 'staticOptimizationConditions)); +# 7924 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticOptimizationCondition)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2273 "..\pars.fsy" + [_1 ] + ) +# 2273 "..\pars.fsy" + : 'staticOptimizationConditions)); +# 7935 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2276 "..\pars.fsy" + WhenTyparTyconEqualsTycon(_1,_3,lhs parseState) + ) +# 2276 "..\pars.fsy" + : 'staticOptimizationCondition)); +# 7947 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2277 "..\pars.fsy" + WhenTyparIsStruct(_1,lhs parseState) + ) +# 2277 "..\pars.fsy" + : 'staticOptimizationCondition)); +# 7958 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : sbyte * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2280 "..\pars.fsy" + if snd _1 then errorR(Error(FSComp.SR.lexOutsideEightBitSigned(), lhs parseState)); + SynConst.SByte (fst _1) + ) +# 2280 "..\pars.fsy" + : 'rawConstant)); +# 7970 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : byte)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2282 "..\pars.fsy" + SynConst.Byte _1 + ) +# 2282 "..\pars.fsy" + : 'rawConstant)); +# 7981 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int16 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2283 "..\pars.fsy" + if snd _1 then errorR(Error(FSComp.SR.lexOutsideSixteenBitSigned(), lhs parseState)); + SynConst.Int16 (fst _1) + ) +# 2283 "..\pars.fsy" + : 'rawConstant)); +# 7993 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : uint16)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2285 "..\pars.fsy" + SynConst.UInt16 _1 + ) +# 2285 "..\pars.fsy" + : 'rawConstant)); +# 8004 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int32 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2286 "..\pars.fsy" + if snd _1 then errorR(Error(FSComp.SR.lexOutsideThirtyTwoBitSigned(), lhs parseState)); + SynConst.Int32 (fst _1) + ) +# 2286 "..\pars.fsy" + : 'rawConstant)); +# 8016 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : uint32)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2288 "..\pars.fsy" + SynConst.UInt32 _1 + ) +# 2288 "..\pars.fsy" + : 'rawConstant)); +# 8027 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int64 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2289 "..\pars.fsy" + if snd _1 then errorR(Error(FSComp.SR.lexOutsideSixtyFourBitSigned(), lhs parseState)); + SynConst.Int64 (fst _1) + ) +# 2289 "..\pars.fsy" + : 'rawConstant)); +# 8039 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : uint64)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2291 "..\pars.fsy" + SynConst.UInt64 _1 + ) +# 2291 "..\pars.fsy" + : 'rawConstant)); +# 8050 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int64)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2292 "..\pars.fsy" + SynConst.IntPtr _1 + ) +# 2292 "..\pars.fsy" + : 'rawConstant)); +# 8061 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : uint64)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2293 "..\pars.fsy" + SynConst.UIntPtr _1 + ) +# 2293 "..\pars.fsy" + : 'rawConstant)); +# 8072 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : single)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2294 "..\pars.fsy" + SynConst.Single _1 + ) +# 2294 "..\pars.fsy" + : 'rawConstant)); +# 8083 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : double)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2295 "..\pars.fsy" + SynConst.Double _1 + ) +# 2295 "..\pars.fsy" + : 'rawConstant)); +# 8094 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : char)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2296 "..\pars.fsy" + SynConst.Char _1 + ) +# 2296 "..\pars.fsy" + : 'rawConstant)); +# 8105 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : System.Decimal)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2297 "..\pars.fsy" + SynConst.Decimal _1 + ) +# 2297 "..\pars.fsy" + : 'rawConstant)); +# 8116 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : (string * string))) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2298 "..\pars.fsy" + SynConst.UserNum _1 + ) +# 2298 "..\pars.fsy" + : 'rawConstant)); +# 8127 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'stringOrKeywordString)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2299 "..\pars.fsy" + SynConst.String (_1,lhs parseState) + ) +# 2299 "..\pars.fsy" + : 'rawConstant)); +# 8138 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : byte[])) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2300 "..\pars.fsy" + SynConst.Bytes (_1,lhs parseState) + ) +# 2300 "..\pars.fsy" + : 'rawConstant)); +# 8149 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'rawConstant)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2303 "..\pars.fsy" + _1 + ) +# 2303 "..\pars.fsy" + : 'constant)); +# 8160 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'rawConstant)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeArg)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2304 "..\pars.fsy" + SynConst.Measure(_1, _3) + ) +# 2304 "..\pars.fsy" + : 'constant)); +# 8172 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2308 "..\pars.fsy" + let xmlDoc = grabXmlDoc(parseState,1) + mkSynBinding (xmlDoc,_1), rhs parseState 1 + ) +# 2308 "..\pars.fsy" + : 'bindingPattern)); +# 8184 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2314 "..\pars.fsy" + SynSimplePat.Id (_1,None,false,false,false,rhs parseState 1) + ) +# 2314 "..\pars.fsy" + : 'simplePattern)); +# 8195 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2316 "..\pars.fsy" + SynSimplePat.Id (_2,None,false,false,true,rhs parseState 2) + ) +# 2316 "..\pars.fsy" + : 'simplePattern)); +# 8206 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'simplePattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeWithTypeConstraints)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2318 "..\pars.fsy" + let lhsm = lhs parseState + SynSimplePat.Typed(_1,_3,lhsm) + ) +# 2318 "..\pars.fsy" + : 'simplePattern)); +# 8219 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'simplePattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2321 "..\pars.fsy" + let lhsm = lhs parseState + SynSimplePat.Attrib(_2,_1,lhsm) + ) +# 2321 "..\pars.fsy" + : 'simplePattern)); +# 8232 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'simplePattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2326 "..\pars.fsy" + [_1] + ) +# 2326 "..\pars.fsy" + : 'simplePatternCommaList)); +# 8243 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'simplePattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'simplePatternCommaList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2328 "..\pars.fsy" + _1 :: _3 + ) +# 2328 "..\pars.fsy" + : 'simplePatternCommaList)); +# 8255 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'simplePatternCommaList)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2332 "..\pars.fsy" + _2 + ) +# 2332 "..\pars.fsy" + : 'simplePatterns)); +# 8267 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2334 "..\pars.fsy" + [] + ) +# 2334 "..\pars.fsy" + : 'simplePatterns)); +# 8278 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'simplePatternCommaList)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2336 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()); + [] + ) +# 2336 "..\pars.fsy" + : 'simplePatterns)); +# 8291 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2339 "..\pars.fsy" + (* silent recovery *) [] + ) +# 2339 "..\pars.fsy" + : 'simplePatterns)); +# 8302 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2341 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()); + [] + ) +# 2341 "..\pars.fsy" + : 'simplePatterns)); +# 8314 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2347 "..\pars.fsy" + SynPat.Named (_1,_3,false,None,rhs2 parseState 1 3) + ) +# 2347 "..\pars.fsy" + : Ast.SynPat)); +# 8326 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2349 "..\pars.fsy" + SynPat.Or(_1,_3,rhs2 parseState 1 3) + ) +# 2349 "..\pars.fsy" + : Ast.SynPat)); +# 8338 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2351 "..\pars.fsy" + SynPat.LongIdent (LongIdentWithDots(mkSynCaseName (rhs parseState 2) opNameCons,[]), None, None,[SynPat.Tuple ([_1;_3],rhs2 parseState 1 3)],None,lhs parseState) + ) +# 2351 "..\pars.fsy" + : Ast.SynPat)); +# 8350 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tuplePatternElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2353 "..\pars.fsy" + SynPat.Tuple(List.rev _1, lhs parseState) + ) +# 2353 "..\pars.fsy" + : Ast.SynPat)); +# 8361 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'conjPatternElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2355 "..\pars.fsy" + SynPat.Ands(List.rev _1, lhs parseState) + ) +# 2355 "..\pars.fsy" + : Ast.SynPat)); +# 8372 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'constrPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2357 "..\pars.fsy" + _1 + ) +# 2357 "..\pars.fsy" + : Ast.SynPat)); +# 8383 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tuplePatternElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2361 "..\pars.fsy" + _3 :: _1 + ) +# 2361 "..\pars.fsy" + : 'tuplePatternElements)); +# 8395 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2363 "..\pars.fsy" + _3 :: _1 :: [] + ) +# 2363 "..\pars.fsy" + : 'tuplePatternElements)); +# 8407 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'conjPatternElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2367 "..\pars.fsy" + _3 :: _1 + ) +# 2367 "..\pars.fsy" + : 'conjPatternElements)); +# 8419 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2369 "..\pars.fsy" + _3 :: _1 :: [] + ) +# 2369 "..\pars.fsy" + : 'conjPatternElements)); +# 8431 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatternLongIdent)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'explicitValTyparDecls)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2373 "..\pars.fsy" + let vis,lid = _1 in SynPat.LongIdent (lid,None,Some _2,[],vis,lhs parseState) + ) +# 2373 "..\pars.fsy" + : 'constrPattern)); +# 8443 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatternLongIdent)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_explicitValTyparDecls2)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2375 "..\pars.fsy" + let vis,lid = _1 in SynPat.LongIdent (lid,None,_2,_3,vis,lhs parseState) + ) +# 2375 "..\pars.fsy" + : 'constrPattern)); +# 8456 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatternLongIdent)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_explicitValTyparDecls2)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2377 "..\pars.fsy" + let vis,lid = _1 in SynPat.LongIdent (lid,None,_2,_4,vis,lhs parseState) + ) +# 2377 "..\pars.fsy" + : 'constrPattern)); +# 8469 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatternLongIdent)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_explicitValTyparDecls2)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2379 "..\pars.fsy" + let vis,lid = _1 in SynPat.LongIdent (lid,None,_2,_4,vis,lhs parseState) + ) +# 2379 "..\pars.fsy" + : 'constrPattern)); +# 8482 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2381 "..\pars.fsy" + SynPat.IsInst(_2,lhs parseState) + ) +# 2381 "..\pars.fsy" + : 'constrPattern)); +# 8493 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2383 "..\pars.fsy" + _1 + ) +# 2383 "..\pars.fsy" + : 'constrPattern)); +# 8504 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPattern)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2387 "..\pars.fsy" + _1 :: _2 + ) +# 2387 "..\pars.fsy" + : 'atomicPatterns)); +# 8516 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2389 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsSuccessivePatternsShouldBeSpacedOrTupled()); + _1 :: _3 + ) +# 2389 "..\pars.fsy" + : 'atomicPatterns)); +# 8529 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2392 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsSuccessivePatternsShouldBeSpacedOrTupled()); + _1 :: _3 + ) +# 2392 "..\pars.fsy" + : 'atomicPatterns)); +# 8542 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2394 "..\pars.fsy" + [_1] + ) +# 2394 "..\pars.fsy" + : 'atomicPatterns)); +# 8553 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'quoteExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2399 "..\pars.fsy" + SynPat.QuoteExpr(_1,lhs parseState) + ) +# 2399 "..\pars.fsy" + : 'atomicPattern)); +# 8564 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : char)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : char)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2400 "..\pars.fsy" + SynPat.DeprecatedCharRange (_1,_3,rhs2 parseState 1 3) + ) +# 2400 "..\pars.fsy" + : 'atomicPattern)); +# 8576 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recordPatternElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rbrace)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2402 "..\pars.fsy" + _2 + ) +# 2402 "..\pars.fsy" + : 'atomicPattern)); +# 8588 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'listPatternElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2404 "..\pars.fsy" + SynPat.ArrayOrList(false,_2,lhs parseState) + ) +# 2404 "..\pars.fsy" + : 'atomicPattern)); +# 8599 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'listPatternElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2406 "..\pars.fsy" + SynPat.ArrayOrList(true,_2, lhs parseState) + ) +# 2406 "..\pars.fsy" + : 'atomicPattern)); +# 8610 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2408 "..\pars.fsy" + SynPat.Wild (lhs parseState) + ) +# 2408 "..\pars.fsy" + : 'atomicPattern)); +# 8620 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2410 "..\pars.fsy" + SynPat.OptionalVal(_2,lhs parseState) + ) +# 2410 "..\pars.fsy" + : 'atomicPattern)); +# 8631 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatternLongIdent)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2412 "..\pars.fsy" + let vis,lidwd = _1 + if List.length lidwd.Lid > 1 || (let c = (List.head lidwd.Lid).idText.[0] in Char.IsUpper(c) && not (Char.IsLower c)) + then mkSynPatMaybeVar lidwd vis (lhs parseState) + else mkSynPatVar vis (List.head lidwd.Lid) + ) +# 2412 "..\pars.fsy" + : 'atomicPattern)); +# 8645 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'constant)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2417 "..\pars.fsy" + SynPat.Const (_1,_1.Range (lhs parseState)) + ) +# 2417 "..\pars.fsy" + : 'atomicPattern)); +# 8656 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2419 "..\pars.fsy" + SynPat.Const(SynConst.Bool false,lhs parseState) + ) +# 2419 "..\pars.fsy" + : 'atomicPattern)); +# 8666 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2421 "..\pars.fsy" + SynPat.Const(SynConst.Bool true,lhs parseState) + ) +# 2421 "..\pars.fsy" + : 'atomicPattern)); +# 8676 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2423 "..\pars.fsy" + SynPat.Null(lhs parseState) + ) +# 2423 "..\pars.fsy" + : 'atomicPattern)); +# 8686 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPatternBody)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2425 "..\pars.fsy" + let m = (lhs parseState) + SynPat.Paren(_2 m,m) + ) +# 2425 "..\pars.fsy" + : 'atomicPattern)); +# 8699 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPatternBody)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2428 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()); + patFromParseError (_2 (rhs2 parseState 1 2)) + ) +# 2428 "..\pars.fsy" + : 'atomicPattern)); +# 8712 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2431 "..\pars.fsy" + (* silent recovery *) SynPat.Wild (lhs parseState) + ) +# 2431 "..\pars.fsy" + : 'atomicPattern)); +# 8723 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2433 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()); + SynPat.Wild (lhs parseState) + ) +# 2433 "..\pars.fsy" + : 'atomicPattern)); +# 8735 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2440 "..\pars.fsy" + (fun m -> _1) + ) +# 2440 "..\pars.fsy" + : 'parenPatternBody)); +# 8746 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2442 "..\pars.fsy" + (fun m -> SynPat.Const(SynConst.Unit,m)) + ) +# 2442 "..\pars.fsy" + : 'parenPatternBody)); +# 8756 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2471 "..\pars.fsy" + SynPat.Named (_1,_3,false,None,rhs2 parseState 1 3) + ) +# 2471 "..\pars.fsy" + : 'parenPattern)); +# 8768 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2473 "..\pars.fsy" + SynPat.Or(_1,_3,rhs2 parseState 1 3) + ) +# 2473 "..\pars.fsy" + : 'parenPattern)); +# 8780 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleParenPatternElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2475 "..\pars.fsy" + SynPat.Tuple(List.rev _1,lhs parseState) + ) +# 2475 "..\pars.fsy" + : 'parenPattern)); +# 8791 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'conjParenPatternElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2477 "..\pars.fsy" + SynPat.Ands(List.rev _1,rhs2 parseState 1 3) + ) +# 2477 "..\pars.fsy" + : 'parenPattern)); +# 8802 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeWithTypeConstraints)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2479 "..\pars.fsy" + let lhsm = lhs parseState + SynPat.Typed(_1,_3,lhsm) + ) +# 2479 "..\pars.fsy" + : 'parenPattern)); +# 8815 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2482 "..\pars.fsy" + let lhsm = lhs parseState + SynPat.Attrib(_2,_1,lhsm) + ) +# 2482 "..\pars.fsy" + : 'parenPattern)); +# 8828 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2485 "..\pars.fsy" + SynPat.LongIdent (LongIdentWithDots(mkSynCaseName (rhs parseState 2) opNameCons,[]), None, None, [ SynPat.Tuple ([_1;_3],rhs2 parseState 1 3) ],None,lhs parseState) + ) +# 2485 "..\pars.fsy" + : 'parenPattern)); +# 8840 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'constrPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2486 "..\pars.fsy" + _1 + ) +# 2486 "..\pars.fsy" + : 'parenPattern)); +# 8851 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleParenPatternElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2490 "..\pars.fsy" + _3 :: _1 + ) +# 2490 "..\pars.fsy" + : 'tupleParenPatternElements)); +# 8863 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2492 "..\pars.fsy" + _3 :: _1 :: [] + ) +# 2492 "..\pars.fsy" + : 'tupleParenPatternElements)); +# 8875 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'conjParenPatternElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2496 "..\pars.fsy" + _3 :: _1 + ) +# 2496 "..\pars.fsy" + : 'conjParenPatternElements)); +# 8887 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2498 "..\pars.fsy" + _3 :: _1 :: [] + ) +# 2498 "..\pars.fsy" + : 'conjParenPatternElements)); +# 8899 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recordPatternElementsAux)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2501 "..\pars.fsy" + let rs,m = _1 in SynPat.Record (rs,m) + ) +# 2501 "..\pars.fsy" + : 'recordPatternElements)); +# 8910 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recordPatternElement)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2505 "..\pars.fsy" + [_1],lhs parseState + ) +# 2505 "..\pars.fsy" + : 'recordPatternElementsAux)); +# 8922 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recordPatternElement)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'seps)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recordPatternElementsAux)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2507 "..\pars.fsy" + let r = _1 in let (rs,dropMark) = _3 in (r :: rs),lhs parseState + ) +# 2507 "..\pars.fsy" + : 'recordPatternElementsAux)); +# 8935 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2510 "..\pars.fsy" + (List.frontAndBack _1.Lid,_3) + ) +# 2510 "..\pars.fsy" + : 'recordPatternElement)); +# 8947 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2514 "..\pars.fsy" + [] + ) +# 2514 "..\pars.fsy" + : 'listPatternElements)); +# 8957 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2516 "..\pars.fsy" + [_1] + ) +# 2516 "..\pars.fsy" + : 'listPatternElements)); +# 8969 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'seps)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'listPatternElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2518 "..\pars.fsy" + _1 :: _3 + ) +# 2518 "..\pars.fsy" + : 'listPatternElements)); +# 8982 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2523 "..\pars.fsy" + _2 + ) +# 2523 "..\pars.fsy" + : Ast.SynExpr)); +# 8994 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2525 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedEndOfFileExpression()); + exprFromParseError _2 + ) +# 2525 "..\pars.fsy" + : Ast.SynExpr)); +# 9007 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2528 "..\pars.fsy" + _1 + ) +# 2528 "..\pars.fsy" + : Ast.SynExpr)); +# 9018 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2533 "..\pars.fsy" + _2 + ) +# 2533 "..\pars.fsy" + : Ast.SynExpr)); +# 9030 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2535 "..\pars.fsy" + _1 + ) +# 2535 "..\pars.fsy" + : Ast.SynExpr)); +# 9041 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2540 "..\pars.fsy" + _1 + ) +# 2540 "..\pars.fsy" + : 'typedSeqExprBlockR)); +# 9052 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2541 "..\pars.fsy" + _1 + ) +# 2541 "..\pars.fsy" + : 'typedSeqExprBlockR)); +# 9063 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'seqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeWithTypeConstraints)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2544 "..\pars.fsy" + SynExpr.Typed (_1,_3, unionRanges _1.Range _3.Range) + ) +# 2544 "..\pars.fsy" + : 'typedSeqExpr)); +# 9075 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'seqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2545 "..\pars.fsy" + _1 + ) +# 2545 "..\pars.fsy" + : 'typedSeqExpr)); +# 9086 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'seps)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'seqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2549 "..\pars.fsy" + SynExpr.Sequential(SequencePointsAtSeq,true,_1,_3,unionRanges _1.Range _3.Range) + ) +# 2549 "..\pars.fsy" + : 'seqExpr)); +# 9099 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'seps)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2551 "..\pars.fsy" + _1 + ) +# 2551 "..\pars.fsy" + : 'seqExpr)); +# 9111 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2553 "..\pars.fsy" + _1 + ) +# 2553 "..\pars.fsy" + : 'seqExpr)); +# 9122 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'seqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2555 "..\pars.fsy" + SynExpr.Sequential(SequencePointsAtSeq,false,_1,_3,unionRanges _1.Range _3.Range ) + ) +# 2555 "..\pars.fsy" + : 'seqExpr)); +# 9134 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2557 "..\pars.fsy" + SynExpr.Sequential(SequencePointsAtSeq,false,_1,_4,unionRanges _1.Range _4.Range) + ) +# 2557 "..\pars.fsy" + : 'seqExpr)); +# 9147 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteLetBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2559 "..\pars.fsy" + let hwlb,m = _1 + let mLetKwd,isUse = match hwlb with (BindingSetPreAttrs(m,_,isUse,_,_)) -> m,isUse + reportParseErrorAt mLetKwd (FSComp.SR.parsExpectedStatementAfterLet(if isUse then "use" else "let")) + let fauxRange = m.EndRange // zero width range at end of m + mkLocalBindings (m,hwlb,arbExpr("seqExpr",fauxRange)) + ) +# 2559 "..\pars.fsy" + : 'seqExpr)); +# 9162 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2570 "..\pars.fsy" + debugPrint("recovering via error"); true + ) +# 2570 "..\pars.fsy" + : 'recover)); +# 9172 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LexerWhitespaceContinuation)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2571 "..\pars.fsy" + debugPrint("recovering via EOF"); false + ) +# 2571 "..\pars.fsy" + : 'recover)); +# 9183 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'defnBindings)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2576 "..\pars.fsy" + mkLocalBindings (unionRanges (rhs2 parseState 1 2) _3.Range,_1,_3) + ) +# 2576 "..\pars.fsy" + : Ast.SynExpr)); +# 9195 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'defnBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2578 "..\pars.fsy" + mkLocalBindings (rhs2 parseState 1 2,_1,arbExpr("declExpr1",(rhs parseState 3))) + ) +# 2578 "..\pars.fsy" + : Ast.SynExpr)); +# 9206 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteLetBindings)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2583 "..\pars.fsy" + let hwlb,m = _1 + mkLocalBindings (unionRanges m _2.Range,hwlb,_2) + ) +# 2583 "..\pars.fsy" + : Ast.SynExpr)); +# 9219 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteLetBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2586 "..\pars.fsy" + let hwlb,m = _1 + reportParseErrorAt (match hwlb with (BindingSetPreAttrs(m,_,_,_,_)) -> m) (FSComp.SR.parsErrorInReturnForLetIncorrectIndentation()) + mkLocalBindings (m,hwlb,arbExpr("declExpr2",(rhs parseState 2))) + ) +# 2586 "..\pars.fsy" + : Ast.SynExpr)); +# 9232 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteLetBindings)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2590 "..\pars.fsy" + let hwlb,m = _1 + mkLocalBindings (unionRanges m _3.Range ,hwlb,_3) + ) +# 2590 "..\pars.fsy" + : Ast.SynExpr)); +# 9245 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteLetBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2593 "..\pars.fsy" + let hwlb,m = _1 + //reportParseErrorAt (match hwlb with (BindingSetPreAttrs(m,_,_,_,_)) -> m) (FSComp.SR.parsErrorInReturnForLetIncorrectIndentation()) + mkLocalBindings (unionRanges m (rhs parseState 3),hwlb,arbExpr("declExpr3",(rhs parseState 3))) + ) +# 2593 "..\pars.fsy" + : Ast.SynExpr)); +# 9258 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteDoBinding)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2598 "..\pars.fsy" + let e = snd _1 + SynExpr.Do(e,e.Range) + ) +# 2598 "..\pars.fsy" + : Ast.SynExpr)); +# 9270 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'anonMatchingExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2602 "..\pars.fsy" + _1 + ) +# 2602 "..\pars.fsy" + : Ast.SynExpr)); +# 9281 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'anonLambdaExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2603 "..\pars.fsy" + _1 + ) +# 2603 "..\pars.fsy" + : Ast.SynExpr)); +# 9292 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'withClauses)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2606 "..\pars.fsy" + let mMatch = (rhs parseState 1) + let mWith,(clauses,mLast) = _3 + let spBind = SequencePointAtBinding(unionRanges mMatch mWith) + SynExpr.Match(spBind, _2,clauses,false,unionRanges mMatch mLast) + ) +# 2606 "..\pars.fsy" + : Ast.SynExpr)); +# 9307 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2612 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileMatch()); + // Produce approximate expression during error recovery + exprFromParseError _2 + ) +# 2612 "..\pars.fsy" + : Ast.SynExpr)); +# 9321 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExprBlockR)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'withClauses)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2617 "..\pars.fsy" + let mTry = (rhs parseState 1) + let spTry = SequencePointAtTry(mTry) + let mWith,(clauses,mLast) = _3 + let spWith = SequencePointAtWith(mWith) + let mTryToWith = unionRanges mTry mWith + let mWithToLast = unionRanges mWith mLast + let mTryToLast = unionRanges mTry mLast + SynExpr.TryWith(_2, mTryToWith, clauses,mWithToLast, mTryToLast,spTry,spWith) + ) +# 2617 "..\pars.fsy" + : Ast.SynExpr)); +# 9340 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExprBlockR)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2627 "..\pars.fsy" + // Produce approximate expression during error recovery + // Include any expressions to make sure they gets type checked in case that generates useful results for intellisense + if not _3 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileTry()); + exprFromParseError _2 + ) +# 2627 "..\pars.fsy" + : Ast.SynExpr)); +# 9355 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExprBlockR)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2633 "..\pars.fsy" + let mTry = rhs parseState 1 + let spTry = SequencePointAtTry(mTry) + let spFinally = SequencePointAtFinally(rhs parseState 3) + let mTryToLast = unionRanges mTry _4.Range + SynExpr.TryFinally(_2, _4,mTryToLast,spTry,spFinally) + ) +# 2633 "..\pars.fsy" + : Ast.SynExpr)); +# 9371 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ifExprCases)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2640 "..\pars.fsy" + let mIf = (rhs parseState 1) + _3 _2 mIf + ) +# 2640 "..\pars.fsy" + : Ast.SynExpr)); +# 9384 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2644 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsIncompleteIf()); + // Produce an approximate expression during error recovery. + // Include expressions to make sure they get type checked in case that generates useful results for intellisense. + // Generate a throwAway for the expression so it isn't forced to have a type 'bool' + // from the context it is used in. + exprFromParseError _2 + ) +# 2644 "..\pars.fsy" + : Ast.SynExpr)); +# 9401 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2652 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsIncompleteIf()) + // Produce an approximate expression during error recovery. There can still be value in doing this even + // for this pathological case. + let m = (rhs parseState 1) + let mEnd = m.EndRange + let spIfToThen = SequencePointAtBinding mEnd + exprFromParseError (SynExpr.IfThenElse(arbExpr("ifGuard1",mEnd),arbExpr("thenBody1",mEnd),None,spIfToThen,true,m,m)) + ) +# 2652 "..\pars.fsy" + : Ast.SynExpr)); +# 9418 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2661 "..\pars.fsy" + SynExpr.Lazy(_2,unionRanges (rhs parseState 1) _2.Range) + ) +# 2661 "..\pars.fsy" + : Ast.SynExpr)); +# 9429 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2664 "..\pars.fsy" + SynExpr.Assert(_2, unionRanges (rhs parseState 1) _2.Range) + ) +# 2664 "..\pars.fsy" + : Ast.SynExpr)); +# 9440 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2667 "..\pars.fsy" + raiseParseErrorAt (rhs parseState 1) (FSComp.SR.parsAssertIsNotFirstClassValue()) + ) +# 2667 "..\pars.fsy" + : Ast.SynExpr)); +# 9450 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2670 "..\pars.fsy" + SynExpr.Lazy(_2,unionRanges (rhs parseState 1) _2.Range) + ) +# 2670 "..\pars.fsy" + : Ast.SynExpr)); +# 9461 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2673 "..\pars.fsy" + SynExpr.Assert(_2, unionRanges (rhs parseState 1) _2.Range) + ) +# 2673 "..\pars.fsy" + : Ast.SynExpr)); +# 9472 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2676 "..\pars.fsy" + raiseParseErrorAt (rhs parseState 1) (FSComp.SR.parsAssertIsNotFirstClassValue()) + ) +# 2676 "..\pars.fsy" + : Ast.SynExpr)); +# 9482 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'doneDeclEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2679 "..\pars.fsy" + let mWhileHeader = unionRanges (rhs parseState 1) _2.Range + let spWhile = SequencePointAtWhileLoop mWhileHeader + let mWhileAll = unionRanges (rhs parseState 1) _4.Range + SynExpr.While(spWhile,_2,_4,mWhileAll) + ) +# 2679 "..\pars.fsy" + : Ast.SynExpr)); +# 9499 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2685 "..\pars.fsy" + if not _5 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileWhile()); + let mWhileHeader = unionRanges (rhs parseState 1) _2.Range + let spWhile = SequencePointAtWhileLoop mWhileHeader + let mWhileAll = unionRanges (rhs parseState 1) _4.Range + exprFromParseError (SynExpr.While(spWhile,_2,_4,mWhileAll)) + ) +# 2685 "..\pars.fsy" + : Ast.SynExpr)); +# 9517 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'doneDeclEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2692 "..\pars.fsy" + // silent recovery + let mWhileHeader = unionRanges (rhs parseState 1) _2.Range + let spWhile = SequencePointAtWhileLoop mWhileHeader + let mWhileBodyArb = unionRanges (rhs parseState 4) (rhs parseState 5) + let mWhileAll = unionRanges (rhs parseState 1) (rhs parseState 5) + SynExpr.While(spWhile,_2,arbExpr("whileBody1",mWhileBodyArb),mWhileAll) + ) +# 2692 "..\pars.fsy" + : Ast.SynExpr)); +# 9535 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2700 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsWhileDoExpected()) + let mWhileHeader = unionRanges (rhs parseState 1) _2.Range + let spWhile = SequencePointAtWhileLoop mWhileHeader + let mWhileBodyArb = rhs parseState 3 + let mWhileAll = unionRanges (rhs parseState 1) (rhs parseState 3) + exprFromParseError (SynExpr.While(spWhile,_2,arbExpr("whileBody2",mWhileBodyArb),mWhileAll)) + ) +# 2700 "..\pars.fsy" + : Ast.SynExpr)); +# 9552 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2708 "..\pars.fsy" + if not _2 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileWhile()); + arbExpr("whileLoop1",rhs parseState 1) + ) +# 2708 "..\pars.fsy" + : Ast.SynExpr)); +# 9564 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doneDeclEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2712 "..\pars.fsy" + //silent recovery + let mWhileHeader = rhs parseState 1 + let spWhile = SequencePointAtWhileLoop mWhileHeader + let mWhileBodyArb = rhs parseState 3 + let mWhileAll = unionRanges (rhs parseState 1) (rhs parseState 3) + exprFromParseError (SynExpr.While(spWhile,arbExpr("whileGuard1",mWhileHeader),arbExpr("whileBody3",mWhileBodyArb),mWhileAll)) + ) +# 2712 "..\pars.fsy" + : Ast.SynExpr)); +# 9580 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopBinder)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'doneDeclEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2720 "..\pars.fsy" + let spBind = SequencePointAtForLoop(rhs2 parseState 1 3) + let (a,b,_) = _2 + SynExpr.ForEach(spBind,SeqExprOnly false,true,a,b,_4,unionRanges (rhs parseState 1) _4.Range) + ) +# 2720 "..\pars.fsy" + : Ast.SynExpr)); +# 9596 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopBinder)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2725 "..\pars.fsy" + if not _5 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileFor()) + let spBind = SequencePointAtForLoop(rhs2 parseState 1 3) + let (a,b,_) = _2 + let mForLoopAll = unionRanges (rhs parseState 1) _4.Range + SynExpr.ForEach(spBind,SeqExprOnly false,true,a,b,_4,mForLoopAll) + ) +# 2725 "..\pars.fsy" + : Ast.SynExpr)); +# 9614 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopBinder)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'doneDeclEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2732 "..\pars.fsy" + // Silent recovery + let mForLoopHeader = rhs2 parseState 1 3 + let spBind = SequencePointAtForLoop mForLoopHeader + let (a,b,_) = _2 + let mForLoopBodyArb = rhs parseState 5 + let mForLoopAll = rhs2 parseState 1 5 + SynExpr.ForEach(spBind,SeqExprOnly false,true,a,b,arbExpr("forLoopBody2a",mForLoopBodyArb),mForLoopAll) + ) +# 2732 "..\pars.fsy" + : Ast.SynExpr)); +# 9633 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopBinder)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2741 "..\pars.fsy" + if not _4 then reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsExpectedExpressionAfterToken()) + let mForLoopHeader = rhs2 parseState 1 3 + let spBind = SequencePointAtForLoop mForLoopHeader + let (a,b,_) = _2 + let mForLoopBodyArb = rhs parseState 3 + let mForLoopAll = rhs2 parseState 1 3 + SynExpr.ForEach(spBind,SeqExprOnly false,true,a,b,arbExpr("forLoopBody2",mForLoopBodyArb),mForLoopAll) + ) +# 2741 "..\pars.fsy" + : Ast.SynExpr)); +# 9652 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopBinder)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2750 "..\pars.fsy" + let (a,b,ok) = _2 + if not _3 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsForDoExpected()) + let mForLoopHeader = rhs2 parseState 1 3 + let spBind = SequencePointAtForLoop mForLoopHeader + let mForLoopBodyArb = rhs parseState 3 + let mForLoopAll = rhs2 parseState 1 3 + SynExpr.ForEach(spBind,SeqExprOnly false,true,a,b,arbExpr("forLoopBody1",mForLoopBodyArb),mForLoopAll) + ) +# 2750 "..\pars.fsy" + : Ast.SynExpr)); +# 9670 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopRange)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'doneDeclEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2759 "..\pars.fsy" + let mForLoopHeader = rhs2 parseState 1 3 + let spBind = SequencePointAtForLoop mForLoopHeader + let (a,b,c,d) = _2 + let mForLoopAll = unionRanges (rhs parseState 1) _4.Range + SynExpr.For(spBind,a,b,c,d,_4,mForLoopAll) + ) +# 2759 "..\pars.fsy" + : Ast.SynExpr)); +# 9688 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopRange)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2766 "..\pars.fsy" + if not _5 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileFor()); + // Still produce an expression + let mForLoopHeader = rhs2 parseState 1 3 + let spBind = SequencePointAtForLoop mForLoopHeader + let (a,b,c,d) = _2 + let mForLoopAll = unionRanges (rhs parseState 1) _4.Range + exprFromParseError (SynExpr.For(spBind,a,b,c,d,_4,mForLoopAll)) + ) +# 2766 "..\pars.fsy" + : Ast.SynExpr)); +# 9708 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopRange)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'doneDeclEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2775 "..\pars.fsy" + // silent recovery + let mForLoopHeader = rhs2 parseState 1 3 + let spBind = SequencePointAtForLoop mForLoopHeader + let (a,b,c,d) = _2 + let mForLoopBodyArb = rhs parseState 5 + let mForLoopAll = rhs2 parseState 1 5 + SynExpr.For(spBind,a,b,c,d,arbExpr("declExpr11",mForLoopBodyArb),mForLoopAll) + ) +# 2775 "..\pars.fsy" + : Ast.SynExpr)); +# 9727 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopRange)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2784 "..\pars.fsy" + if not _4 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileFor()) + let mForLoopHeader = rhs2 parseState 1 3 + let spBind = SequencePointAtForLoop mForLoopHeader + let (a,b,c,d) = _2 + let mForLoopBodyArb = rhs parseState 3 + let mForLoopAll = rhs2 parseState 1 3 + exprFromParseError (SynExpr.For(spBind,a,b,c,d,arbExpr("declExpr11",mForLoopBodyArb),mForLoopAll)) + ) +# 2784 "..\pars.fsy" + : Ast.SynExpr)); +# 9746 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopRange)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2793 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileFor()); + let mForLoopHeader = rhs2 parseState 1 2 + let spBind = SequencePointAtForLoop mForLoopHeader + let (a,b,c,d) = _2 + let mForLoopBodyArb = (rhs parseState 2).EndRange + let mForLoopAll = rhs2 parseState 1 2 + exprFromParseError (SynExpr.For(spBind,a,b,c,d,arbExpr("declExpr11",mForLoopBodyArb),mForLoopAll)) + ) +# 2793 "..\pars.fsy" + : Ast.SynExpr)); +# 9764 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'doneDeclEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2803 "..\pars.fsy" + // silent recovery + let mForLoopHeader = rhs2 parseState 1 2 + let mForLoopAll = unionRanges (rhs parseState 1) _4.Range + let spBind = SequencePointAtForLoop(mForLoopHeader) + SynExpr.For(spBind,mkSynId mForLoopHeader "_loopVar",arbExpr("startLoopRange1",mForLoopHeader),true,arbExpr("endLoopRange1",rhs parseState 3),_4,mForLoopAll) + ) +# 2803 "..\pars.fsy" + : Ast.SynExpr)); +# 9781 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2822 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsIdentifierExpected()) + arbExpr("declExpr12",(rhs parseState 1)) + ) +# 2822 "..\pars.fsy" + : Ast.SynExpr)); +# 9793 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'doneDeclEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2826 "..\pars.fsy" + reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsInOrEqualExpected()) + let mForLoopHeader = rhs2 parseState 1 2 + let spBind = SequencePointAtForLoop mForLoopHeader + let mForLoopBodyArb = rhs parseState 4 + let mForLoopAll = rhs2 parseState 1 4 + SynExpr.ForEach(spBind,SeqExprOnly false,true,_2,arbExpr("forLoopCollection",mForLoopHeader),arbExpr("forLoopBody3",mForLoopBodyArb),mForLoopAll) + ) +# 2826 "..\pars.fsy" + : Ast.SynExpr)); +# 9810 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2834 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileFor()); + let mForLoopHeader = rhs2 parseState 1 2 + let spBind = SequencePointAtForLoop mForLoopHeader + let mForLoopBodyArb = (rhs parseState 2).EndRange + let mForLoopAll = rhs2 parseState 1 2 + exprFromParseError (SynExpr.ForEach(spBind,SeqExprOnly false,true,_2,arbExpr("forLoopCollection",mForLoopHeader),arbExpr("forLoopBody3",mForLoopBodyArb),mForLoopAll)) + ) +# 2834 "..\pars.fsy" + : Ast.SynExpr)); +# 9827 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2843 "..\pars.fsy" + SynExpr.YieldOrReturn((_1,not _1),_2, unionRanges (rhs parseState 1) _2.Range) + ) +# 2843 "..\pars.fsy" + : Ast.SynExpr)); +# 9839 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2846 "..\pars.fsy" + SynExpr.YieldOrReturnFrom((_1,not _1), _2, unionRanges (rhs parseState 1) _2.Range) + ) +# 2846 "..\pars.fsy" + : Ast.SynExpr)); +# 9851 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2849 "..\pars.fsy" + let spBind = SequencePointAtBinding(rhs2 parseState 1 5) + let m = unionRanges (rhs parseState 1) _7.Range + SynExpr.LetOrUseBang(spBind,(_1 = "use"),true,_2,_4,_7,m) + ) +# 2849 "..\pars.fsy" + : Ast.SynExpr)); +# 9868 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteDefnBindingsTerminator)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2854 "..\pars.fsy" + _5 (if _1 = "use" then "use!" else "let!") (rhs parseState 1); // report unterminated error + let spBind = SequencePointAtBinding(unionRanges (rhs parseState 1) _4.Range) + let m = unionRanges (rhs parseState 1) _7.Range + SynExpr.LetOrUseBang(spBind,(_1 = "use"),true,_2,_4,_7,m) + ) +# 2854 "..\pars.fsy" + : Ast.SynExpr)); +# 9887 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteDefnBindingsTerminator)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2860 "..\pars.fsy" + // error recovery that allows intellisense when writing incomplete computation expressions + let spBind = SequencePointAtBinding(unionRanges (rhs parseState 1) _4.Range) + let mAll = unionRanges (rhs parseState 1) (rhs parseState 7) + let m = _4.Range.EndRange // zero-width range + SynExpr.LetOrUseBang(spBind,(_1 = "use"),true,_2,_4, SynExpr.ImplicitZero m, mAll) + ) +# 2860 "..\pars.fsy" + : Ast.SynExpr)); +# 9906 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2867 "..\pars.fsy" + let spBind = NoSequencePointAtDoBinding + SynExpr.LetOrUseBang(spBind,false,true,SynPat.Const(SynConst.Unit,_2.Range),_2,_5, unionRanges (rhs parseState 1) _5.Range) + ) +# 2867 "..\pars.fsy" + : Ast.SynExpr)); +# 9920 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteDefnBindingsTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2871 "..\pars.fsy" + SynExpr.DoBang(_2, unionRanges (rhs parseState 1) _2.Range) + ) +# 2871 "..\pars.fsy" + : Ast.SynExpr)); +# 9932 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopBinder)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'monadicSingleLineQualifiersThenArrowThenExprR)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2874 "..\pars.fsy" + let spBind = SequencePointAtForLoop(rhs2 parseState 1 2) + let (a,b,_) = _2 in SynExpr.ForEach(spBind,SeqExprOnly true,true,a,b,_4,unionRanges (rhs parseState 1) _4.Range) + ) +# 2874 "..\pars.fsy" + : Ast.SynExpr)); +# 9946 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExprBlockR)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2878 "..\pars.fsy" + errorR(Error(FSComp.SR.parsArrowUseIsLimited(),lhs parseState)); + SynExpr.YieldOrReturn((true,true),_2, (unionRanges (rhs parseState 1) _2.Range)) + ) +# 2878 "..\pars.fsy" + : Ast.SynExpr)); +# 9958 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2883 "..\pars.fsy" + SynExpr.TypeTest(_1,_3, unionRanges _1.Range _3.Range) + ) +# 2883 "..\pars.fsy" + : Ast.SynExpr)); +# 9970 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2884 "..\pars.fsy" + SynExpr.Upcast(_1,_3, unionRanges _1.Range _3.Range) + ) +# 2884 "..\pars.fsy" + : Ast.SynExpr)); +# 9982 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2885 "..\pars.fsy" + SynExpr.Downcast(_1,_3, unionRanges _1.Range _3.Range) + ) +# 2885 "..\pars.fsy" + : Ast.SynExpr)); +# 9994 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2888 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 ":=" _3 + ) +# 2888 "..\pars.fsy" + : Ast.SynExpr)); +# 10006 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2889 "..\pars.fsy" + mkSynAssign _1 _3 + ) +# 2889 "..\pars.fsy" + : Ast.SynExpr)); +# 10018 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2891 "..\pars.fsy" + let exprs,commas = _1 in SynExpr.Tuple(List.rev exprs, List.rev commas, (commas.Head, exprs) ||> unionRangeWithListBy (fun e -> e.Range) ) + ) +# 2891 "..\pars.fsy" + : Ast.SynExpr)); +# 10029 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2892 "..\pars.fsy" + SynExpr.JoinIn(_1,rhs parseState 2,_3,unionRanges _1.Range _3.Range) + ) +# 2892 "..\pars.fsy" + : Ast.SynExpr)); +# 10041 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2893 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 "||" _3 + ) +# 2893 "..\pars.fsy" + : Ast.SynExpr)); +# 10053 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2894 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 _2 _3 + ) +# 2894 "..\pars.fsy" + : Ast.SynExpr)); +# 10066 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2895 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 "or" _3 + ) +# 2895 "..\pars.fsy" + : Ast.SynExpr)); +# 10078 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2896 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 "&" _3 + ) +# 2896 "..\pars.fsy" + : Ast.SynExpr)); +# 10090 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2897 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 "&&" _3 + ) +# 2897 "..\pars.fsy" + : Ast.SynExpr)); +# 10102 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2898 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 _2 _3 + ) +# 2898 "..\pars.fsy" + : Ast.SynExpr)); +# 10115 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2899 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 "=" _3 + ) +# 2899 "..\pars.fsy" + : Ast.SynExpr)); +# 10127 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2900 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 _2 _3 + ) +# 2900 "..\pars.fsy" + : Ast.SynExpr)); +# 10140 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2901 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 "$" _3 + ) +# 2901 "..\pars.fsy" + : Ast.SynExpr)); +# 10152 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2902 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 "<" _3 + ) +# 2902 "..\pars.fsy" + : Ast.SynExpr)); +# 10165 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2903 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 ">" _3 + ) +# 2903 "..\pars.fsy" + : Ast.SynExpr)); +# 10178 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2904 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 _2 _3 + ) +# 2904 "..\pars.fsy" + : Ast.SynExpr)); +# 10191 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2905 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 _2 _3 + ) +# 2905 "..\pars.fsy" + : Ast.SynExpr)); +# 10204 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2906 "..\pars.fsy" + SynExpr.App (ExprAtomicFlag.NonAtomic, true, mkSynIdGet (rhs parseState 2) opNameCons,SynExpr.Tuple ([_1;_3],[rhs parseState 2],unionRanges _1.Range _3.Range),unionRanges _1.Range _3.Range) + ) +# 2906 "..\pars.fsy" + : Ast.SynExpr)); +# 10216 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2907 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 _2 _3 + ) +# 2907 "..\pars.fsy" + : Ast.SynExpr)); +# 10229 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2908 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 "-" _3 + ) +# 2908 "..\pars.fsy" + : Ast.SynExpr)); +# 10241 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2909 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 "*" _3 + ) +# 2909 "..\pars.fsy" + : Ast.SynExpr)); +# 10253 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2910 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 _2 _3 + ) +# 2910 "..\pars.fsy" + : Ast.SynExpr)); +# 10266 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2911 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 _2 _3 + ) +# 2911 "..\pars.fsy" + : Ast.SynExpr)); +# 10279 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2913 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("in")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 "@in" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2913 "..\pars.fsy" + : Ast.SynExpr)); +# 10291 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2915 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("||")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 "||" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2915 "..\pars.fsy" + : Ast.SynExpr)); +# 10303 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2917 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression(_2)); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 _2 (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2917 "..\pars.fsy" + : Ast.SynExpr)); +# 10316 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2919 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("or")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 "or" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2919 "..\pars.fsy" + : Ast.SynExpr)); +# 10328 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2921 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("&")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 "&" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2921 "..\pars.fsy" + : Ast.SynExpr)); +# 10340 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2923 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("&&")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 "&&" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2923 "..\pars.fsy" + : Ast.SynExpr)); +# 10352 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2925 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression(_2)); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 _2 (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2925 "..\pars.fsy" + : Ast.SynExpr)); +# 10365 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2927 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("=")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 "=" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2927 "..\pars.fsy" + : Ast.SynExpr)); +# 10377 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2929 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression(_2)); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 _2 (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2929 "..\pars.fsy" + : Ast.SynExpr)); +# 10390 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2931 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("$")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 "$" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2931 "..\pars.fsy" + : Ast.SynExpr)); +# 10402 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2933 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("<")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 "<" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2933 "..\pars.fsy" + : Ast.SynExpr)); +# 10415 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2935 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression(">")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 ">" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2935 "..\pars.fsy" + : Ast.SynExpr)); +# 10428 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2937 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression(_2)); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 _2 (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2937 "..\pars.fsy" + : Ast.SynExpr)); +# 10441 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2939 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression(_2)); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 _2 (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2939 "..\pars.fsy" + : Ast.SynExpr)); +# 10454 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2941 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("::")); + SynExpr.App (ExprAtomicFlag.NonAtomic, true, mkSynIdGet (rhs parseState 2) opNameCons,SynExpr.Tuple ([_1;(arbExpr("declExprInfix",(rhs parseState 3).StartRange))],[rhs parseState 2],unionRanges _1.Range (rhs parseState 3).StartRange),unionRanges _1.Range (rhs parseState 3).StartRange) + ) +# 2941 "..\pars.fsy" + : Ast.SynExpr)); +# 10466 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2943 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression(_2)); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 _2 (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2943 "..\pars.fsy" + : Ast.SynExpr)); +# 10479 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2945 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("-")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 "-" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2945 "..\pars.fsy" + : Ast.SynExpr)); +# 10491 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2947 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("*")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 "*" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2947 "..\pars.fsy" + : Ast.SynExpr)); +# 10503 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2949 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression(_2)); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 _2 (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2949 "..\pars.fsy" + : Ast.SynExpr)); +# 10516 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2951 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression(_2)); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 _2 (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2951 "..\pars.fsy" + : Ast.SynExpr)); +# 10529 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2954 "..\pars.fsy" + _1 + ) +# 2954 "..\pars.fsy" + : Ast.SynExpr)); +# 10540 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2958 "..\pars.fsy" + let con = SynConst.String (_1,rhs parseState 1) + let arg2 = SynExpr.Const (con,con.Range (rhs parseState 1)) + arg2 + ) +# 2958 "..\pars.fsy" + : 'dynamicArg)); +# 10553 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2962 "..\pars.fsy" + _2 + ) +# 2962 "..\pars.fsy" + : 'dynamicArg)); +# 10565 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'withPatternClauses)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2966 "..\pars.fsy" + rhs parseState 1, _2 + ) +# 2966 "..\pars.fsy" + : 'withClauses)); +# 10576 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'withPatternClauses)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2968 "..\pars.fsy" + rhs parseState 1, _2 + ) +# 2968 "..\pars.fsy" + : 'withClauses)); +# 10587 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'withPatternClauses)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2970 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileWith()); + rhs parseState 1, _2 + ) +# 2970 "..\pars.fsy" + : 'withClauses)); +# 10600 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'patternClauses)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2975 "..\pars.fsy" + _1 + ) +# 2975 "..\pars.fsy" + : 'withPatternClauses)); +# 10611 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'patternClauses)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2977 "..\pars.fsy" + _2 + ) +# 2977 "..\pars.fsy" + : 'withPatternClauses)); +# 10622 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2979 "..\pars.fsy" + // silent recovery + let mLast = rhs parseState 1 + [], mLast + ) +# 2979 "..\pars.fsy" + : 'withPatternClauses)); +# 10634 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2983 "..\pars.fsy" + // silent recovery + let mLast = rhs parseState 1 + [], mLast + ) +# 2983 "..\pars.fsy" + : 'withPatternClauses)); +# 10646 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'patternGuard)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2990 "..\pars.fsy" + _1, _2, rhs parseState 1 + ) +# 2990 "..\pars.fsy" + : 'patternAndGuard)); +# 10658 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'patternAndGuard)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2994 "..\pars.fsy" + let pat,guard,patm = _1 + let mLast = _2.Range + [Clause(pat,guard,_2,patm,SequencePointAtTarget)], mLast + ) +# 2994 "..\pars.fsy" + : 'patternClauses)); +# 10672 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'patternAndGuard)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'patternClauses)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2998 "..\pars.fsy" + let pat,guard,patm = _1 + let clauses,mLast = _4 + (Clause(pat,guard,_2,patm,SequencePointAtTarget) :: clauses), mLast + ) +# 2998 "..\pars.fsy" + : 'patternClauses)); +# 10687 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'patternAndGuard)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3002 "..\pars.fsy" + let pat,guard,patm = _1 + let mLast = rhs parseState 3 + // silent recovery + [Clause(pat,guard,_2,patm,SequencePointAtTarget)], mLast + ) +# 3002 "..\pars.fsy" + : 'patternClauses)); +# 10702 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'patternAndGuard)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3007 "..\pars.fsy" + let pat,guard,patm = _1 + let mLast = _2.Range + // silent recovery + [Clause(pat,guard,_2,patm,SequencePointAtTarget)], mLast + ) +# 3007 "..\pars.fsy" + : 'patternClauses)); +# 10717 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'patternAndGuard)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3012 "..\pars.fsy" + let pat,guard,patm = _1 + let mLast = rhs parseState 2 + // silent recovery + [Clause(pat,guard,SynExpr.Const(SynConst.Unit,mLast.EndRange),patm,SequencePointAtTarget)], mLast + ) +# 3012 "..\pars.fsy" + : 'patternClauses)); +# 10731 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3019 "..\pars.fsy" + Some _2 + ) +# 3019 "..\pars.fsy" + : 'patternGuard)); +# 10742 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3021 "..\pars.fsy" + None + ) +# 3021 "..\pars.fsy" + : 'patternGuard)); +# 10752 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExprBlockR)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3025 "..\pars.fsy" + _2 + ) +# 3025 "..\pars.fsy" + : Ast.SynExpr)); +# 10763 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'ifExprThen)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'ifExprElifs)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3029 "..\pars.fsy" + let exprThen,mThen = _1 + (fun exprGuard mIf -> + let mIfToThen = unionRanges mIf mThen + let lastBranch : SynExpr = match _2 with None -> exprThen | Some e -> e + let mIfToEndOfLastBranch = unionRanges mIf lastBranch.Range + let spIfToThen = SequencePointAtBinding(mIfToThen) + SynExpr.IfThenElse(exprGuard,exprThen,_2,spIfToThen,false,mIfToThen,mIfToEndOfLastBranch)) + ) +# 3029 "..\pars.fsy" + : 'ifExprCases)); +# 10781 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3039 "..\pars.fsy" + _2, rhs parseState 1 + ) +# 3039 "..\pars.fsy" + : 'ifExprThen)); +# 10792 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3041 "..\pars.fsy" + _3,rhs parseState 1 + ) +# 3041 "..\pars.fsy" + : 'ifExprThen)); +# 10804 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3043 "..\pars.fsy" + if not _4 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileThen()); + exprFromParseError _3,rhs parseState 1 + ) +# 3043 "..\pars.fsy" + : 'ifExprThen)); +# 10817 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3048 "..\pars.fsy" + None + ) +# 3048 "..\pars.fsy" + : 'ifExprElifs)); +# 10827 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3050 "..\pars.fsy" + Some _2 + ) +# 3050 "..\pars.fsy" + : 'ifExprElifs)); +# 10838 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3052 "..\pars.fsy" + Some _3 + ) +# 3052 "..\pars.fsy" + : 'ifExprElifs)); +# 10850 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3054 "..\pars.fsy" + if not _4 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileElse()); + Some (exprFromParseError _3) + ) +# 3054 "..\pars.fsy" + : 'ifExprElifs)); +# 10863 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ifExprCases)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3057 "..\pars.fsy" + let mElif = rhs parseState 1 + Some (_3 _2 mElif) + ) +# 3057 "..\pars.fsy" + : 'ifExprElifs)); +# 10876 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3060 "..\pars.fsy" + Some (exprFromParseError _2) + ) +# 3060 "..\pars.fsy" + : 'ifExprElifs)); +# 10888 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3064 "..\pars.fsy" + let exprs,commas = _1 in (_3 :: exprs),((rhs parseState 2)::commas) + ) +# 3064 "..\pars.fsy" + : 'tupleExpr)); +# 10900 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3066 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsExpectedExpressionAfterToken()) + let exprs,commas = _1 + let zeroWidthAtNextToken = (rhs parseState 3).StartRange + ((arbExpr("tupleExpr1",zeroWidthAtNextToken)) :: exprs), (rhs parseState 2)::commas + ) +# 3066 "..\pars.fsy" + : 'tupleExpr)); +# 10915 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3071 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsExpectedExpressionAfterToken()) + let zeroWidthAtNextToken = (rhs parseState 3).StartRange + ((arbExpr("tupleExpr2",zeroWidthAtNextToken)) :: [_1]), [rhs parseState 2] + ) +# 3071 "..\pars.fsy" + : 'tupleExpr)); +# 10929 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3075 "..\pars.fsy" + [_3 ; _1], [rhs parseState 2] + ) +# 3075 "..\pars.fsy" + : 'tupleExpr)); +# 10941 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3079 "..\pars.fsy" + mkSynPrefix (rhs parseState 1) (unionRanges (rhs parseState 1) _2.Range) "~-" _2 + ) +# 3079 "..\pars.fsy" + : Ast.SynExpr)); +# 10952 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3081 "..\pars.fsy" + if not (IsValidPrefixOperatorUse _1) then reportParseErrorAt _2.Range (FSComp.SR.parsInvalidPrefixOperator()); + mkSynPrefix (rhs parseState 1) (unionRanges (rhs parseState 1) _2.Range) ("~"^(_1)) _2 + ) +# 3081 "..\pars.fsy" + : Ast.SynExpr)); +# 10965 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3084 "..\pars.fsy" + if not (IsValidPrefixOperatorUse _1) then reportParseErrorAt _2.Range (FSComp.SR.parsInvalidPrefixOperator()); + if _1 = "&" then + SynExpr.AddressOf(true,_2,rhs parseState 1,unionRanges (rhs parseState 1) _2.Range) + elif _1 = "&&" then + SynExpr.AddressOf(false,_2,rhs parseState 1,unionRanges (rhs parseState 1) _2.Range) + else + mkSynPrefix (rhs parseState 1) (unionRanges (rhs parseState 1) _2.Range) ("~"^(_1)) _2 + ) +# 3084 "..\pars.fsy" + : Ast.SynExpr)); +# 10983 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3092 "..\pars.fsy" + if not (IsValidPrefixOperatorUse _1) then reportParseErrorAt _2.Range (FSComp.SR.parsInvalidPrefixOperator()); + mkSynPrefix (rhs parseState 1) (unionRanges (rhs parseState 1) _2.Range) ("~"^(_1)) _2 + ) +# 3092 "..\pars.fsy" + : Ast.SynExpr)); +# 10996 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3095 "..\pars.fsy" + SynExpr.AddressOf(true,_2,rhs parseState 1,unionRanges (rhs parseState 1) _2.Range) + ) +# 3095 "..\pars.fsy" + : Ast.SynExpr)); +# 11007 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3097 "..\pars.fsy" + SynExpr.AddressOf(false,_2,rhs parseState 1, unionRanges (rhs parseState 1) _2.Range) + ) +# 3097 "..\pars.fsy" + : Ast.SynExpr)); +# 11018 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeNonAtomicDeprecated)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3099 "..\pars.fsy" + SynExpr.New(false,_2,_4,unionRanges (rhs parseState 1) _4.Range) + ) +# 3099 "..\pars.fsy" + : Ast.SynExpr)); +# 11031 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeNonAtomicDeprecated)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3101 "..\pars.fsy" + SynExpr.New(false,_2,arbExpr("minusExpr",(rhs parseState 4)),unionRanges (rhs parseState 1) (_2).Range) + ) +# 3101 "..\pars.fsy" + : Ast.SynExpr)); +# 11043 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3103 "..\pars.fsy" + arbExpr("minusExpr2",(rhs parseState 1)) + ) +# 3103 "..\pars.fsy" + : Ast.SynExpr)); +# 11053 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3105 "..\pars.fsy" + SynExpr.InferredUpcast(_2,unionRanges (rhs parseState 1) _2.Range) + ) +# 3105 "..\pars.fsy" + : Ast.SynExpr)); +# 11064 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3107 "..\pars.fsy" + SynExpr.InferredDowncast(_2,unionRanges (rhs parseState 1) _2.Range) + ) +# 3107 "..\pars.fsy" + : Ast.SynExpr)); +# 11075 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3109 "..\pars.fsy" + _1 + ) +# 3109 "..\pars.fsy" + : Ast.SynExpr)); +# 11086 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3113 "..\pars.fsy" + SynExpr.App (ExprAtomicFlag.NonAtomic, false, _1,_2,unionRanges _1.Range _2.Range) + ) +# 3113 "..\pars.fsy" + : Ast.SynExpr)); +# 11098 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3115 "..\pars.fsy" + let arg,_ = _1 + arg + ) +# 3115 "..\pars.fsy" + : Ast.SynExpr)); +# 11110 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3120 "..\pars.fsy" + let arg2,hpa2 = _2 + if not (IsValidPrefixOperatorUse _1) then reportParseErrorAt arg2.Range (FSComp.SR.parsInvalidPrefixOperator()); + if hpa2 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsSuccessiveArgsShouldBeSpacedOrTupled()); + mkSynPrefix (rhs parseState 1) (unionRanges (rhs parseState 1) arg2.Range) ("~"^(_1)) arg2 + ) +# 3120 "..\pars.fsy" + : Ast.SynExpr)); +# 11125 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3125 "..\pars.fsy" + let arg,hpa = _1 + if hpa then reportParseErrorAt arg.Range (FSComp.SR.parsSuccessiveArgsShouldBeSpacedOrTupled()); + arg + ) +# 3125 "..\pars.fsy" + : Ast.SynExpr)); +# 11138 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3132 "..\pars.fsy" + let arg1,_ = _1 + let arg2,_ = _3 + SynExpr.App (ExprAtomicFlag.Atomic, false, arg1,arg2,unionRanges arg1.Range arg2.Range),true + ) +# 3132 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11152 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3137 "..\pars.fsy" + let arg1,_ = _1 + let arg2,_ = _3 + SynExpr.App (ExprAtomicFlag.Atomic, false, arg1,arg2,unionRanges arg1.Range arg2.Range),true + ) +# 3137 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11166 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : range * range option * bool * Ast.SynType list * range list * range)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3142 "..\pars.fsy" + let arg1,_ = _1 + let mLessThan,mGreaterThan,_,args,commas,mTypeArgs = _3 + let mWholeExpr = unionRanges arg1.Range mTypeArgs + SynExpr.TypeApp(arg1, mLessThan, args, commas, mGreaterThan, mTypeArgs, mWholeExpr), false + ) +# 3142 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11181 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3148 "..\pars.fsy" + let arg2,hpa2 = _2 + if not (IsValidPrefixOperatorUse _1) then reportParseErrorAt arg2.Range (FSComp.SR.parsInvalidPrefixOperator()); + mkSynPrefix (rhs parseState 1) (unionRanges (rhs parseState 1) arg2.Range) _1 arg2,hpa2 + ) +# 3148 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11195 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicExprQualification)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3153 "..\pars.fsy" + let arg1,hpa1 = _1 + _3 arg1 (lhs parseState) (rhs parseState 2),hpa1 + ) +# 3153 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11208 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicExprQualification)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3156 "..\pars.fsy" + let arg1 = SynExpr.Ident(ident("base",rhs parseState 1)) + _3 arg1 (lhs parseState) (rhs parseState 2),false + ) +# 3156 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11220 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'nameop)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3159 "..\pars.fsy" + SynExpr.LongIdent (true,LongIdentWithDots([_2],[]),None,rhs parseState 2),false + ) +# 3159 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11231 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'dynamicArg)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3161 "..\pars.fsy" + let arg1,hpa1 = _1 + mkSynInfix (rhs parseState 2) arg1 "?" _3, hpa1 + ) +# 3161 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11244 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3164 "..\pars.fsy" + SynExpr.Ident (ident(MangledGlobalName,rhs parseState 1)), false + ) +# 3164 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11254 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'nameop)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3166 "..\pars.fsy" + SynExpr.Ident (_1),false + ) +# 3166 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11265 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'listExprElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3168 "..\pars.fsy" + _2 (lhs parseState) false,false + ) +# 3168 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11276 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'listExprElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3170 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBracket()); + exprFromParseError (_2 (rhs2 parseState 1 2) false), false + ) +# 3170 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11289 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3173 "..\pars.fsy" + // silent recovery + SynExpr.ArrayOrList(false,[ ], lhs parseState),false + ) +# 3173 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11300 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3176 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBracket()); + // silent recovery + exprFromParseError (SynExpr.ArrayOrList(false,[ ], rhs parseState 1)),false + ) +# 3176 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11313 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3180 "..\pars.fsy" + _1,false + ) +# 3180 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11324 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'identOrOp)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3184 "..\pars.fsy" + let idm = rhs parseState 1 + (fun e lhsm dotm -> mkSynDot dotm lhsm e _1) + ) +# 3184 "..\pars.fsy" + : 'atomicExprQualification)); +# 11336 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3187 "..\pars.fsy" + (fun e lhsm dotm -> + reportParseErrorAt dotm (FSComp.SR.parsMissingQualificationAfterDot()); + let fixedLhsm = mkRange lhsm.FileName lhsm.Start dotm.End // previous lhsm is wrong after 'recover' + mkSynDotMissing dotm fixedLhsm e) + ) +# 3187 "..\pars.fsy" + : 'atomicExprQualification)); +# 11349 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3192 "..\pars.fsy" + (fun e lhsm dotm -> + reportParseErrorAt dotm (FSComp.SR.parsMissingQualificationAfterDot()); + let fixedLhsm = mkRange lhsm.FileName lhsm.Start dotm.End // previous lhsm is wrong after 'recover' + // Include 'e' in the returned expression but throw it away + SynExpr.DiscardAfterMissingQualificationAfterDot(e,fixedLhsm)) + ) +# 3192 "..\pars.fsy" + : 'atomicExprQualification)); +# 11364 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : int32 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3198 "..\pars.fsy" + (fun e lhsm dotm -> + libraryOnlyError(lhs parseState); + SynExpr.LibraryOnlyUnionCaseFieldGet (e,mkSynCaseName lhsm opNameCons,(fst _5),lhsm)) + ) +# 3198 "..\pars.fsy" + : 'atomicExprQualification)); +# 11378 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3202 "..\pars.fsy" + (fun e lhsm dotm -> + mlCompatWarning (FSComp.SR.parsParenFormIsForML()) (lhs parseState); + mkSynDotParenGet lhsm dotm e _2) + ) +# 3202 "..\pars.fsy" + : 'atomicExprQualification)); +# 11392 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3206 "..\pars.fsy" + (fun e lhsm dotm -> mkSynDotBrackGet lhsm dotm e _2) + ) +# 3206 "..\pars.fsy" + : 'atomicExprQualification)); +# 11403 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3209 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBracket()); + (fun e lhsm dotm -> exprFromParseError (mkSynDotBrackGet lhsm dotm e _2)) + ) +# 3209 "..\pars.fsy" + : 'atomicExprQualification)); +# 11416 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3213 "..\pars.fsy" + let mArg = rhs2 parseState 1 3 + (fun e lhsm dotm -> mkSynDotBrackGet lhsm dotm e (arbExpr("indexerExpr1",mArg))) + ) +# 3213 "..\pars.fsy" + : 'atomicExprQualification)); +# 11427 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3216 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBracket()) + let mArg = (rhs parseState 1).EndRange + (fun e lhsm dotm -> exprFromParseError (mkSynDotBrackGet lhsm dotm e (arbExpr("indexerExpr2",mArg)))) + ) +# 3216 "..\pars.fsy" + : 'atomicExprQualification)); +# 11440 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'optRange)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3220 "..\pars.fsy" + (fun e lhsm dotm -> mkSynDotBrackSliceGet lhsm dotm e _2) + ) +# 3220 "..\pars.fsy" + : 'atomicExprQualification)); +# 11451 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'optRange)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'optRange)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3222 "..\pars.fsy" + (fun e lhsm dotm -> mkSynDotBrackSlice2Get lhsm dotm e _2 _4) + ) +# 3222 "..\pars.fsy" + : 'atomicExprQualification)); +# 11463 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'optRange)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'optRange)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'optRange)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3224 "..\pars.fsy" + (fun e lhsm dotm -> mkSynDotBrackSlice3Get lhsm dotm e _2 _4 _6) + ) +# 3224 "..\pars.fsy" + : 'atomicExprQualification)); +# 11476 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'optRange)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'optRange)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'optRange)) in + let _8 = (let data = parseState.GetInput(8) in (Microsoft.FSharp.Core.Operators.unbox data : 'optRange)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3226 "..\pars.fsy" + (fun e lhsm dotm -> mkSynDotBrackSlice4Get lhsm dotm e _2 _4 _6 _8) + ) +# 3226 "..\pars.fsy" + : 'atomicExprQualification)); +# 11490 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3230 "..\pars.fsy" + mkSynOptionalExpr (rhs parseState 1) (Some _1), mkSynOptionalExpr (rhs parseState 3) (Some _3) + ) +# 3230 "..\pars.fsy" + : 'optRange)); +# 11502 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3232 "..\pars.fsy" + mkSynOptionalExpr (rhs parseState 1) (Some _1), mkSynOptionalExpr (rhs parseState 2) None + ) +# 3232 "..\pars.fsy" + : 'optRange)); +# 11513 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3234 "..\pars.fsy" + mkSynOptionalExpr (rhs parseState 1) None, mkSynOptionalExpr (rhs parseState 2) (Some _2) + ) +# 3234 "..\pars.fsy" + : 'optRange)); +# 11524 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3236 "..\pars.fsy" + mkSynOptionalExpr (rhs parseState 1) None, mkSynOptionalExpr (rhs parseState 1) None + ) +# 3236 "..\pars.fsy" + : 'optRange)); +# 11534 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'constant)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3242 "..\pars.fsy" + SynExpr.Const (_1,_1.Range (lhs parseState)) + ) +# 3242 "..\pars.fsy" + : Ast.SynExpr)); +# 11545 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3244 "..\pars.fsy" + _1 + ) +# 3244 "..\pars.fsy" + : Ast.SynExpr)); +# 11556 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'braceExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3246 "..\pars.fsy" + _1 + ) +# 3246 "..\pars.fsy" + : Ast.SynExpr)); +# 11567 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3248 "..\pars.fsy" + SynExpr.Null(lhs parseState) + ) +# 3248 "..\pars.fsy" + : Ast.SynExpr)); +# 11577 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3250 "..\pars.fsy" + SynExpr.Const(SynConst.Bool false,lhs parseState) + ) +# 3250 "..\pars.fsy" + : Ast.SynExpr)); +# 11587 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3252 "..\pars.fsy" + SynExpr.Const(SynConst.Bool true,lhs parseState) + ) +# 3252 "..\pars.fsy" + : Ast.SynExpr)); +# 11597 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'quoteExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3254 "..\pars.fsy" + _1 + ) +# 3254 "..\pars.fsy" + : Ast.SynExpr)); +# 11608 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'arrayExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3256 "..\pars.fsy" + _1 + ) +# 3256 "..\pars.fsy" + : Ast.SynExpr)); +# 11619 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'beginEndExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3258 "..\pars.fsy" + _1 + ) +# 3258 "..\pars.fsy" + : Ast.SynExpr)); +# 11630 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3262 "..\pars.fsy" + SynExpr.Paren(_2, rhs parseState 1, Some(rhs parseState 3), rhs2 parseState 1 3) + ) +# 3262 "..\pars.fsy" + : 'beginEndExpr)); +# 11641 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3264 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBegin()); exprFromParseError _2 + ) +# 3264 "..\pars.fsy" + : 'beginEndExpr)); +# 11653 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3266 "..\pars.fsy" + (* silent recovery *) arbExpr("beginEndExpr",(lhs parseState)) + ) +# 3266 "..\pars.fsy" + : 'beginEndExpr)); +# 11663 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3268 "..\pars.fsy" + mkSynUnit (lhs parseState) + ) +# 3268 "..\pars.fsy" + : 'beginEndExpr)); +# 11673 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string * bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : string * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3272 "..\pars.fsy" + if _1 <> _3 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsMismatchedQuote(fst _1)) + (SynExpr.Quote(mkSynIdGet (lhs parseState) (CompileOpName (fst _1)), snd _1, _2, false, lhs parseState)) + ) +# 3272 "..\pars.fsy" + : 'quoteExpr)); +# 11687 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string * bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3275 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatched(fst _1)) + let mExpr = rhs2 parseState 1 2 + exprFromParseError (SynExpr.Quote(mkSynIdGet (lhs parseState) (CompileOpName (fst _1)),snd _1, _2, false, mExpr)) + ) +# 3275 "..\pars.fsy" + : 'quoteExpr)); +# 11702 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string * bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : string * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3279 "..\pars.fsy" + (* silent recovery *) SynExpr.Quote(mkSynIdGet (lhs parseState) (CompileOpName (fst _1)),snd _1, arbExpr("quoteExpr",(rhs parseState 2)), false, lhs parseState) + ) +# 3279 "..\pars.fsy" + : 'quoteExpr)); +# 11714 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string * bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3281 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatched(fst _1)) + exprFromParseError (SynExpr.Quote(mkSynIdGet (lhs parseState) (CompileOpName (fst _1)),snd _1, arbExpr("quoteExpr2",(rhs parseState 1).EndRange), false, rhs parseState 1)) + ) +# 3281 "..\pars.fsy" + : 'quoteExpr)); +# 11727 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'listExprElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3286 "..\pars.fsy" + _2 (lhs parseState) true + ) +# 3286 "..\pars.fsy" + : 'arrayExpr)); +# 11738 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'listExprElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3288 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBracketBar()); + exprFromParseError (_2 (rhs2 parseState 1 2) true) + ) +# 3288 "..\pars.fsy" + : 'arrayExpr)); +# 11751 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3291 "..\pars.fsy" + (* silent recovery *) SynExpr.ArrayOrList(true,[ ], lhs parseState) + ) +# 3291 "..\pars.fsy" + : 'arrayExpr)); +# 11761 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3293 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBracketBar()); + (* silent recovery *) + exprFromParseError (SynExpr.ArrayOrList(true,[ ], rhs parseState 1)) + ) +# 3293 "..\pars.fsy" + : 'arrayExpr)); +# 11774 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3299 "..\pars.fsy" + SynExpr.Const(SynConst.Unit,(rhs2 parseState 1 2)) + ) +# 3299 "..\pars.fsy" + : 'parenExpr)); +# 11785 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenExprBody)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3301 "..\pars.fsy" + let m = rhs2 parseState 1 3 + SynExpr.Paren(_2 m, rhs parseState 1, Some(rhs parseState 3), m) + ) +# 3301 "..\pars.fsy" + : 'parenExpr)); +# 11798 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenExprBody)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_other_than_rparen_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3304 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()) + let lhsm = unionRangeWithPos (rhs parseState 1) (rhs parseState 3).Start + SynExpr.Paren(exprFromParseError (_2 lhsm), rhs parseState 1, None, lhsm) + ) +# 3304 "..\pars.fsy" + : 'parenExpr)); +# 11812 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3308 "..\pars.fsy" + // silent recovery + SynExpr.Paren(arbExpr("parenExpr1",(rhs parseState 1).EndRange),(rhs parseState 1),Some(rhs parseState 3),(rhs2 parseState 1 3)) + ) +# 3308 "..\pars.fsy" + : 'parenExpr)); +# 11824 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3311 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()) + let lhsm = unionRangeWithPos (rhs parseState 1) (rhs parseState 2).Start + arbExpr("parenExpr2tcs", lhsm) + ) +# 3311 "..\pars.fsy" + : 'parenExpr)); +# 11836 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3315 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()) + let lhsm = unionRangeWithPos (rhs parseState 1) (rhs parseState 2).Start + arbExpr("parenExpr2mcs", lhsm) + ) +# 3315 "..\pars.fsy" + : 'parenExpr)); +# 11848 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3319 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()) + let lhsm = unionRangeWithPos (rhs parseState 1) (rhs parseState 2).Start + arbExpr("parenExpr2rbcs", lhsm) + ) +# 3319 "..\pars.fsy" + : 'parenExpr)); +# 11860 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3323 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()) + let lhsm = unionRangeWithPos (rhs parseState 1) (rhs parseState 2).Start + arbExpr("parenExpr2obecs", lhsm) + ) +# 3323 "..\pars.fsy" + : 'parenExpr)); +# 11872 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3327 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()); + arbExpr("parenExpr2",(lhs parseState)) + ) +# 3327 "..\pars.fsy" + : 'parenExpr)); +# 11884 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticallyKnownHeadTypars)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'classMemberSpfn)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3339 "..\pars.fsy" + (fun m -> SynExpr.TraitCall(_1,_4,_6,m)) + ) +# 3339 "..\pars.fsy" + : 'parenExprBody)); +# 11898 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3341 "..\pars.fsy" + (fun _m -> _1) + ) +# 3341 "..\pars.fsy" + : 'parenExprBody)); +# 11909 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'inlineAssemblyExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3343 "..\pars.fsy" + _1 + ) +# 3343 "..\pars.fsy" + : 'parenExprBody)); +# 11920 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticallyKnownHeadTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3347 "..\pars.fsy" + [_1] + ) +# 3347 "..\pars.fsy" + : 'staticallyKnownHeadTypars)); +# 11931 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticallyKnownHeadTyparAlts)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3349 "..\pars.fsy" + List.rev _2 + ) +# 3349 "..\pars.fsy" + : 'staticallyKnownHeadTypars)); +# 11943 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticallyKnownHeadTyparAlts)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticallyKnownHeadTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3353 "..\pars.fsy" + _3 :: _1 + ) +# 3353 "..\pars.fsy" + : 'staticallyKnownHeadTyparAlts)); +# 11955 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticallyKnownHeadTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3355 "..\pars.fsy" + [_1] + ) +# 3355 "..\pars.fsy" + : 'staticallyKnownHeadTyparAlts)); +# 11966 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'braceExprBody)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rbrace)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3359 "..\pars.fsy" + let m,r = _2 in r (rhs2 parseState 1 3) + ) +# 3359 "..\pars.fsy" + : 'braceExpr)); +# 11978 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'braceExprBody)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3361 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBrace()) ; + let m,r = _2 + // Note, we can't use 'exprFromParseError' because the extra syntax node interferes with some syntax-directed transformations for computation expressions + r (unionRanges (rhs parseState 1) m) + ) +# 3361 "..\pars.fsy" + : 'braceExpr)); +# 11993 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rbrace)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3366 "..\pars.fsy" + // silent recovery + arbExpr("braceExpr",rhs2 parseState 1 3) + ) +# 3366 "..\pars.fsy" + : 'braceExpr)); +# 12005 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3369 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBrace()) ; + // Note, we can't use 'exprFromParseError' because the extra syntax node interferes with some syntax-directed transformations for computation expressions + SynExpr.Record(None,None,[],rhs parseState 1) + ) +# 3369 "..\pars.fsy" + : 'braceExpr)); +# 12018 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'rbrace)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3373 "..\pars.fsy" + let m = rhs2 parseState 1 2 + SynExpr.Record(None,None,[],m) + ) +# 3373 "..\pars.fsy" + : 'braceExpr)); +# 12030 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3378 "..\pars.fsy" + (lhs parseState), (fun m -> let a,b,c = _1 in SynExpr.Record(a,b,c,m)) + ) +# 3378 "..\pars.fsy" + : 'braceExprBody)); +# 12041 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'objExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3380 "..\pars.fsy" + _1 + ) +# 3380 "..\pars.fsy" + : 'braceExprBody)); +# 12052 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'monadicExprInitial)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3382 "..\pars.fsy" + let m,r = _1 in (m, r false) + ) +# 3382 "..\pars.fsy" + : 'braceExprBody)); +# 12063 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'monadicExprInitial)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3386 "..\pars.fsy" + let m,r = _1 in (fun lhsm isArray -> SynExpr.ArrayOrListOfSeqExpr(isArray, r true m, lhsm)) + ) +# 3386 "..\pars.fsy" + : 'listExprElements)); +# 12074 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3388 "..\pars.fsy" + (fun lhsm isArray -> SynExpr.ArrayOrList(isArray,[ ], lhsm)) + ) +# 3388 "..\pars.fsy" + : 'listExprElements)); +# 12084 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'seqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3392 "..\pars.fsy" + _1.Range, (fun isArrayOrList lhsm -> SynExpr.CompExpr(isArrayOrList,ref(isArrayOrList),_1,lhsm)) + ) +# 3392 "..\pars.fsy" + : 'monadicExprInitial)); +# 12095 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'rangeSequenceExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3394 "..\pars.fsy" + _1 + ) +# 3394 "..\pars.fsy" + : 'monadicExprInitial)); +# 12106 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3398 "..\pars.fsy" + let opm = (rhs parseState 2) + (unionRanges _1.Range _3.Range),(fun _isArray wholem -> + // in the case of "{ 1 .. 10 }", we want the range of the expression to include the curlies, that comes from a higher level rule in the grammar, + // passed down as 'wholem', so patch up that range here + match (mkSynInfix opm _1 ".." _3) with + | SynExpr.App(a,b,c,d,_) -> SynExpr.App(a,b,c,d,wholem) + | _ -> failwith "impossible") + ) +# 3398 "..\pars.fsy" + : 'rangeSequenceExpr)); +# 12124 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3406 "..\pars.fsy" + (unionRanges _1.Range _5.Range),(fun _isArray wholem -> mkSynTrifix wholem ".. .." _1 _3 _5) + ) +# 3406 "..\pars.fsy" + : 'rangeSequenceExpr)); +# 12137 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3409 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedEndOfFileExpression()); + let opm = (rhs parseState 2) + let e = arbExpr("rangeSeqError1", (rhs parseState 3).StartRange) + (unionRanges _1.Range e.Range),(fun _isArray wholem -> + // in the case of "{ 1 .. 10 }", we want the range of the expression to include the curlies, that comes from a higher level rule in the grammar, + // passed down as 'wholem', so patch up that range here + match (mkSynInfix opm _1 ".." e) with + | SynExpr.App(a,b,c,d,_) -> SynExpr.App(a,b,c,d,wholem) + | _ -> failwith "impossible") + ) +# 3409 "..\pars.fsy" + : 'rangeSequenceExpr)); +# 12157 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExprBlockR)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3425 "..\pars.fsy" + SynExpr.YieldOrReturn((true,false), _2, unionRanges (rhs parseState 1) _2.Range) + ) +# 3425 "..\pars.fsy" + : 'monadicSingleLineQualifiersThenArrowThenExprR)); +# 12168 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3430 "..\pars.fsy" + (_1, _3, true) + ) +# 3430 "..\pars.fsy" + : 'forLoopBinder)); +# 12180 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rangeSequenceExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3432 "..\pars.fsy" + let m,r = _3 in (_1, r false m, true) + ) +# 3432 "..\pars.fsy" + : 'forLoopBinder)); +# 12192 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3434 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsExpectedExpressionAfterToken()) + (_1, arbExpr("forLoopBinder",(rhs parseState 2)), false) + ) +# 3434 "..\pars.fsy" + : 'forLoopBinder)); +# 12205 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3437 "..\pars.fsy" + if not _2 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsInOrEqualExpected()) + (_1, arbExpr("forLoopBinder2",(rhs parseState 1).EndRange), false) + ) +# 3437 "..\pars.fsy" + : 'forLoopBinder)); +# 12218 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopDirection)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3442 "..\pars.fsy" + idOfPat (rhs parseState 1) _1,_3,_4,_5 + ) +# 3442 "..\pars.fsy" + : 'forLoopRange)); +# 12232 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'stringOrKeywordString)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inlineAssemblyTypeArg)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_curriedArgExprs)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inlineAssemblyReturnTypes)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HASH)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3446 "..\pars.fsy" + libraryOnlyWarning (lhs parseState); + let s,sm = _2,rhs parseState 2 + (fun m -> SynExpr.LibraryOnlyILAssembly (ParseAssemblyCodeInstructions s sm,_3,List.rev _4,_5,m)) + ) +# 3446 "..\pars.fsy" + : 'inlineAssemblyExpr)); +# 12249 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_curriedArgExprs)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3451 "..\pars.fsy" + _2 :: _1 + ) +# 3451 "..\pars.fsy" + : 'opt_curriedArgExprs)); +# 12261 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3452 "..\pars.fsy" + [] + ) +# 3452 "..\pars.fsy" + : 'opt_curriedArgExprs)); +# 12271 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3455 "..\pars.fsy" + None + ) +# 3455 "..\pars.fsy" + : 'opt_atomicExprAfterType)); +# 12281 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3456 "..\pars.fsy" + Some(_1) + ) +# 3456 "..\pars.fsy" + : 'opt_atomicExprAfterType)); +# 12292 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3459 "..\pars.fsy" + [] + ) +# 3459 "..\pars.fsy" + : 'opt_inlineAssemblyTypeArg)); +# 12302 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'type_keyword)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3460 "..\pars.fsy" + [_3] + ) +# 3460 "..\pars.fsy" + : 'opt_inlineAssemblyTypeArg)); +# 12315 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3464 "..\pars.fsy" + [] + ) +# 3464 "..\pars.fsy" + : 'opt_inlineAssemblyReturnTypes)); +# 12325 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3466 "..\pars.fsy" + [_2] + ) +# 3466 "..\pars.fsy" + : 'opt_inlineAssemblyReturnTypes)); +# 12336 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3468 "..\pars.fsy" + [] + ) +# 3468 "..\pars.fsy" + : 'opt_inlineAssemblyReturnTypes)); +# 12347 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeNonAtomicDeprecated)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_atomicExprAfterType)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdExprBindings)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps_recd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3472 "..\pars.fsy" + let arg = match _4 with None -> mkSynUnit (lhs parseState) | Some e -> e + let l = List.rev _5 + let dummyField = mkRecdField (LongIdentWithDots([], [])) // dummy identifier, it will be discarded + let l = rebindRanges (dummyField, None) l _6 + let (_, _, inheritsSep) = List.head l + let bindings = List.tail l + (Some (_2,arg,rhs2 parseState 2 4, inheritsSep, rhs parseState 1), None, bindings) + ) +# 3472 "..\pars.fsy" + : 'recdExpr)); +# 12368 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdExprBindings)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps_recd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3481 "..\pars.fsy" + match _1 with + | LongOrSingleIdent(false, (LongIdentWithDots(_,_) as f),None,m) -> + let f = mkRecdField f + let l = List.rev _4 + let l = rebindRanges (f, Some _3) l _5 + (None, None, l) + | _ -> raiseParseErrorAt (rhs parseState 2) (FSComp.SR.parsFieldBinding()) + ) +# 3481 "..\pars.fsy" + : 'recdExpr)); +# 12388 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3494 "..\pars.fsy" + let m = rhs parseState 1 + reportParseErrorAt m (FSComp.SR.parsUnderscoreInvalidFieldName()) + reportParseErrorAt m (FSComp.SR.parsFieldBinding()) + let f = mkUnderscoreRecdField m + (None, None, [ f, None, None ]) + ) +# 3494 "..\pars.fsy" + : 'recdExpr)); +# 12402 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3501 "..\pars.fsy" + let m = rhs parseState 1 + reportParseErrorAt m (FSComp.SR.parsUnderscoreInvalidFieldName()) + let f = mkUnderscoreRecdField m + reportParseErrorAt (rhs2 parseState 1 2) (FSComp.SR.parsFieldBinding()) + + (None, None, [f, None, None]) + ) +# 3501 "..\pars.fsy" + : 'recdExpr)); +# 12417 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdExprBindings)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps_recd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3510 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnderscoreInvalidFieldName()) + let f = mkUnderscoreRecdField (rhs parseState 1) + let l = List.rev _4 + let l = rebindRanges (f, Some _3) l _5 + (None, None, l) + ) +# 3510 "..\pars.fsy" + : 'recdExpr)); +# 12434 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdBinding)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdExprBindings)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps_recd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3520 "..\pars.fsy" + let l = List.rev _4 + let l = rebindRanges _3 l _5 + (None,Some (_1, (rhs parseState 2, None)), l) + ) +# 3520 "..\pars.fsy" + : 'recdExpr)); +# 12450 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps_recd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3525 "..\pars.fsy" + (None,Some (_1, (rhs parseState 2, None)), []) + ) +# 3525 "..\pars.fsy" + : 'recdExpr)); +# 12462 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdBinding)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdExprBindings)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps_recd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3528 "..\pars.fsy" + + let l = List.rev _4 + let l = rebindRanges _3 l _5 + (None,Some (_1, (rhs parseState 2, None)), l) + ) +# 3528 "..\pars.fsy" + : 'recdExpr)); +# 12479 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'seps_recd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3534 "..\pars.fsy" + Some _1 + ) +# 3534 "..\pars.fsy" + : 'opt_seps_recd)); +# 12490 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3535 "..\pars.fsy" + None + ) +# 3535 "..\pars.fsy" + : 'opt_seps_recd)); +# 12500 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3538 "..\pars.fsy" + (rhs parseState 1), None + ) +# 3538 "..\pars.fsy" + : 'seps_recd)); +# 12510 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3539 "..\pars.fsy" + let m = (rhs parseState 1) in (m, Some m.End) + ) +# 3539 "..\pars.fsy" + : 'seps_recd)); +# 12520 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3540 "..\pars.fsy" + (rhs2 parseState 1 2), Some (rhs parseState 1).End + ) +# 3540 "..\pars.fsy" + : 'seps_recd)); +# 12530 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3541 "..\pars.fsy" + (rhs2 parseState 1 2), Some (rhs parseState 2).End + ) +# 3541 "..\pars.fsy" + : 'seps_recd)); +# 12540 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3547 "..\pars.fsy" + mkRecdField _1 + ) +# 3547 "..\pars.fsy" + : 'pathOrUnderscore)); +# 12551 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3549 "..\pars.fsy" + let m = rhs parseState 1 + reportParseErrorAt m (FSComp.SR.parsUnderscoreInvalidFieldName()) + mkUnderscoreRecdField m + ) +# 3549 "..\pars.fsy" + : 'pathOrUnderscore)); +# 12563 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdExprBindings)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'seps_recd)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdBinding)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3555 "..\pars.fsy" + (_3, Some _2) :: _1 + ) +# 3555 "..\pars.fsy" + : 'recdExprBindings)); +# 12576 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3556 "..\pars.fsy" + [] + ) +# 3556 "..\pars.fsy" + : 'recdExprBindings)); +# 12586 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'pathOrUnderscore)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3560 "..\pars.fsy" + (_1, Some _3) + ) +# 3560 "..\pars.fsy" + : 'recdBinding)); +# 12598 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'pathOrUnderscore)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3562 "..\pars.fsy" + + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsFieldBinding()) + (_1, None) + + ) +# 3562 "..\pars.fsy" + : 'recdBinding)); +# 12612 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'pathOrUnderscore)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3567 "..\pars.fsy" + + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsFieldBinding()) + (_1, None) + + ) +# 3567 "..\pars.fsy" + : 'recdBinding)); +# 12627 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'pathOrUnderscore)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3572 "..\pars.fsy" + + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsFieldBinding()) + (_1, None) + + ) +# 3572 "..\pars.fsy" + : 'recdBinding)); +# 12641 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'pathOrUnderscore)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3577 "..\pars.fsy" + + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsFieldBinding()) + (_1, None) + + ) +# 3577 "..\pars.fsy" + : 'recdBinding)); +# 12656 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'objExprBaseCall)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'objExprBindings)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_objExprInterfaces)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3590 "..\pars.fsy" + let mNewExpr = rhs parseState 1 + let fullRange = match _4 with [] -> (rhs parseState 1) | _ -> (rhs2 parseState 1 4) + fullRange, (fun m -> let (a,b) = _1 in SynExpr.ObjExpr(a,b,_2,_4, mNewExpr, m)) + ) +# 3590 "..\pars.fsy" + : 'objExpr)); +# 12672 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'objExprBaseCall)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'objExprInterfaces)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3594 "..\pars.fsy" + let mNewExpr = rhs parseState 1 + let fullRange = match _3 with [] -> (rhs parseState 1) | _ -> (rhs2 parseState 1 3) + fullRange, (fun m -> let (a,b) = _1 in SynExpr.ObjExpr(a,b,[],_3, mNewExpr, m)) + ) +# 3594 "..\pars.fsy" + : 'objExpr)); +# 12687 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeNonAtomicDeprecated)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3598 "..\pars.fsy" + let mNewExpr = rhs parseState 1 + (rhs2 parseState 1 2), (fun m -> let (a,b) = _2,None in SynExpr.ObjExpr(a,b,[],[], mNewExpr, m)) + ) +# 3598 "..\pars.fsy" + : 'objExpr)); +# 12699 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeNonAtomicDeprecated)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'baseSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3604 "..\pars.fsy" + (_2, Some(_4,Some(_5))) + ) +# 3604 "..\pars.fsy" + : 'objExprBaseCall)); +# 12713 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeNonAtomicDeprecated)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3606 "..\pars.fsy" + (_2, Some(_4,None)) + ) +# 3606 "..\pars.fsy" + : 'objExprBaseCall)); +# 12726 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeNonAtomicDeprecated)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3608 "..\pars.fsy" + _2,None + ) +# 3608 "..\pars.fsy" + : 'objExprBaseCall)); +# 12737 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'objExprBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3613 "..\pars.fsy" + _1 + ) +# 3613 "..\pars.fsy" + : 'opt_objExprBindings)); +# 12748 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3614 "..\pars.fsy" + [] + ) +# 3614 "..\pars.fsy" + : 'opt_objExprBindings)); +# 12758 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'localBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3618 "..\pars.fsy" + let mWithKwd = (rhs parseState 1) + let _localBindingsLastRange, localBindingsBuilder = _2 + localBindingsBuilder [] None mWithKwd + ) +# 3618 "..\pars.fsy" + : 'objExprBindings)); +# 12771 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'localBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3622 "..\pars.fsy" + let mWithKwd = (rhs parseState 1) + let _localBindingsLastRange, localBindingsBuilder = _2 + localBindingsBuilder [] None mWithKwd + ) +# 3622 "..\pars.fsy" + : 'objExprBindings)); +# 12784 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'objectImplementationBlock)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3626 "..\pars.fsy" + _2 |> + (List.choose (function + | SynMemberDefn.Member(b,m) -> Some b + | SynMemberDefn.AutoProperty(_,_,_,_,_,_,_,_,_,_,m) -> errorR(Error(FSComp.SR.parsIllegalMemberVarInObjectImplementation(),m)); None + | x -> errorR(Error(FSComp.SR.parsMemberIllegalInObjectImplementation(),x.Range)); None)) + ) +# 3626 "..\pars.fsy" + : 'objExprBindings)); +# 12800 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'objExprInterface)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_objExprInterfaces)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3633 "..\pars.fsy" + _1 :: _2 + ) +# 3633 "..\pars.fsy" + : 'objExprInterfaces)); +# 12812 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3637 "..\pars.fsy" + [] + ) +# 3637 "..\pars.fsy" + : 'opt_objExprInterfaces)); +# 12822 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'objExprInterface)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_objExprInterfaces)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3639 "..\pars.fsy" + _1 :: _2 + ) +# 3639 "..\pars.fsy" + : 'opt_objExprInterfaces)); +# 12834 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_objExprInterfaces)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3641 "..\pars.fsy" + (* silent recovery *) _2 + ) +# 3641 "..\pars.fsy" + : 'opt_objExprInterfaces)); +# 12845 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interfaceMember)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_objExprBindings)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declEnd)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3645 "..\pars.fsy" + InterfaceImpl(_2, _3, lhs parseState) + ) +# 3645 "..\pars.fsy" + : 'objExprInterface)); +# 12860 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3648 "..\pars.fsy" + true + ) +# 3648 "..\pars.fsy" + : 'forLoopDirection)); +# 12870 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3649 "..\pars.fsy" + false + ) +# 3649 "..\pars.fsy" + : 'forLoopDirection)); +# 12880 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3653 "..\pars.fsy" + let mAll = unionRanges (rhs parseState 1) _4.Range + mkSynFunMatchLambdas (parseState.GetSynArgNameGenerator()) false mAll _2 _4 + ) +# 3653 "..\pars.fsy" + : 'anonLambdaExpr)); +# 12893 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3656 "..\pars.fsy" + let mAll = rhs2 parseState 1 3 + mkSynFunMatchLambdas (parseState.GetSynArgNameGenerator()) false mAll _2 (arbExpr("anonLambdaExpr1",(rhs parseState 4))) + ) +# 3656 "..\pars.fsy" + : 'anonLambdaExpr)); +# 12905 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExprBlockR)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3659 "..\pars.fsy" + let mAll = unionRanges (rhs parseState 1) _4.Range + mkSynFunMatchLambdas (parseState.GetSynArgNameGenerator()) false mAll _2 _4 + ) +# 3659 "..\pars.fsy" + : 'anonLambdaExpr)); +# 12918 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExprBlockR)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3662 "..\pars.fsy" + if not _5 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileFunBody()); + let mAll = unionRanges (rhs parseState 1) _4.Range + exprFromParseError (mkSynFunMatchLambdas (parseState.GetSynArgNameGenerator()) false mAll _2 _4) + ) +# 3662 "..\pars.fsy" + : 'anonLambdaExpr)); +# 12933 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3666 "..\pars.fsy" + reportParseErrorAt (rhs2 parseState 1 3) (FSComp.SR.parsMissingFunctionBody()) + mkSynFunMatchLambdas (parseState.GetSynArgNameGenerator()) false (rhs2 parseState 1 3) _2 (arbExpr("anonLambdaExpr2",(rhs parseState 4))) + ) +# 3666 "..\pars.fsy" + : 'anonLambdaExpr)); +# 12945 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3670 "..\pars.fsy" + if not _4 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileFunBody()) + exprFromParseError (mkSynFunMatchLambdas (parseState.GetSynArgNameGenerator()) false (rhs2 parseState 1 3) _2 (arbExpr("anonLambdaExpr3",(rhs parseState 4)))) + ) +# 3670 "..\pars.fsy" + : 'anonLambdaExpr)); +# 12958 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3673 "..\pars.fsy" + exprFromParseError (mkSynFunMatchLambdas (parseState.GetSynArgNameGenerator()) false (rhs2 parseState 1 2) _2 (arbExpr("anonLambdaExpr4",(rhs parseState 3)))) + ) +# 3673 "..\pars.fsy" + : 'anonLambdaExpr)); +# 12969 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3675 "..\pars.fsy" + exprFromParseError (mkSynFunMatchLambdas (parseState.GetSynArgNameGenerator()) false (rhs parseState 1) [] (arbExpr("anonLambdaExpr5",(rhs parseState 2)))) + ) +# 3675 "..\pars.fsy" + : 'anonLambdaExpr)); +# 12979 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'withPatternClauses)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3679 "..\pars.fsy" + let clauses,mLast = _2 + let mAll = unionRanges (rhs parseState 1) mLast + SynExpr.MatchLambda(false,(rhs parseState 1),clauses,NoSequencePointAtInvisibleBinding,mAll) + ) +# 3679 "..\pars.fsy" + : 'anonMatchingExpr)); +# 12992 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'withPatternClauses)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3683 "..\pars.fsy" + let clauses,mLast = _2 + let mAll = unionRanges (rhs parseState 1) mLast + SynExpr.MatchLambda(false,(rhs parseState 1),clauses,NoSequencePointAtInvisibleBinding,mAll) + ) +# 3683 "..\pars.fsy" + : 'anonMatchingExpr)); +# 13005 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3691 "..\pars.fsy" + _1 + ) +# 3691 "..\pars.fsy" + : 'typeWithTypeConstraints)); +# 13016 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeConstraints)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3693 "..\pars.fsy" + SynType.WithGlobalConstraints(_1, List.rev _3,lhs parseState) + ) +# 3693 "..\pars.fsy" + : 'typeWithTypeConstraints)); +# 13028 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3697 "..\pars.fsy" + _1 + ) +# 3697 "..\pars.fsy" + : 'topTypeWithTypeConstraints)); +# 13039 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeConstraints)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3699 "..\pars.fsy" + let ty,arity = _1 + // nb. it doesn't matter where the constraints go in the structure of the type. + SynType.WithGlobalConstraints(ty,List.rev _3,lhs parseState), arity + ) +# 3699 "..\pars.fsy" + : 'topTypeWithTypeConstraints)); +# 13053 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3705 "..\pars.fsy" + None + ) +# 3705 "..\pars.fsy" + : 'opt_topReturnTypeWithTypeConstraints)); +# 13063 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'topTypeWithTypeConstraints)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3707 "..\pars.fsy" + let ty,arity = _2 + let arity = (match arity with SynValInfo([],rmdata)-> rmdata | _ -> SynInfo.unnamedRetVal) + Some (SynReturnInfo((ty,arity),rhs parseState 2)) + ) +# 3707 "..\pars.fsy" + : 'opt_topReturnTypeWithTypeConstraints)); +# 13076 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topTupleType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'topType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3713 "..\pars.fsy" + let dty,dmdata= _1 + let rty,(SynValInfo(dmdatas,rmdata)) = _3 + SynType.Fun(dty,rty,lhs parseState), (SynValInfo(dmdata::dmdatas, rmdata)) + ) +# 3713 "..\pars.fsy" + : 'topType)); +# 13090 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topTupleType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3717 "..\pars.fsy" + let ty,rmdata = _1 in ty, (SynValInfo([],(match rmdata with [md] -> md | _ -> SynInfo.unnamedRetVal))) + ) +# 3717 "..\pars.fsy" + : 'topType)); +# 13101 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topAppType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'topTupleTypeElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3721 "..\pars.fsy" + let ty,mdata = _1 in let tys,mdatas = List.unzip _3 in (SynType.Tuple(List.map (fun ty -> (false,ty)) (ty ::tys), lhs parseState)),(mdata :: mdatas) + ) +# 3721 "..\pars.fsy" + : 'topTupleType)); +# 13113 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topAppType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3723 "..\pars.fsy" + let ty,mdata = _1 in ty,[mdata] + ) +# 3723 "..\pars.fsy" + : 'topTupleType)); +# 13124 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topAppType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'topTupleTypeElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3726 "..\pars.fsy" + _1 :: _3 + ) +# 3726 "..\pars.fsy" + : 'topTupleTypeElements)); +# 13136 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topAppType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3727 "..\pars.fsy" + [_1] + ) +# 3727 "..\pars.fsy" + : 'topTupleTypeElements)); +# 13147 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3732 "..\pars.fsy" + match _2 with + | SynType.LongIdent(LongIdentWithDots([id],_)) -> _4,SynArgInfo(_1,false,Some id) + | _ -> raiseParseErrorAt (rhs parseState 2) (FSComp.SR.parsSyntaxErrorInLabeledType()) + ) +# 3732 "..\pars.fsy" + : 'topAppType)); +# 13162 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributes)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3736 "..\pars.fsy" + _5,SynArgInfo(_1,true,Some _3) + ) +# 3736 "..\pars.fsy" + : 'topAppType)); +# 13175 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3738 "..\pars.fsy" + (_2,SynArgInfo(_1,false,None)) + ) +# 3738 "..\pars.fsy" + : 'topAppType)); +# 13187 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3740 "..\pars.fsy" + match _1 with + | SynType.LongIdent(LongIdentWithDots([id],_)) -> _3,SynArgInfo([],false,Some id) + | _ -> raiseParseErrorAt (rhs parseState 2) (FSComp.SR.parsSyntaxErrorInLabeledType()) + ) +# 3740 "..\pars.fsy" + : 'topAppType)); +# 13201 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3744 "..\pars.fsy" + _4,SynArgInfo([],true,Some _2) + ) +# 3744 "..\pars.fsy" + : 'topAppType)); +# 13213 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3746 "..\pars.fsy" + _1,SynArgInfo([],false,None) + ) +# 3746 "..\pars.fsy" + : 'topAppType)); +# 13224 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3751 "..\pars.fsy" + SynType.Fun(_1,_3,lhs parseState) + ) +# 3751 "..\pars.fsy" + : Ast.SynType)); +# 13236 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3752 "..\pars.fsy" + _1 + ) +# 3752 "..\pars.fsy" + : Ast.SynType)); +# 13247 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleOrQuotTypeElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3756 "..\pars.fsy" + SynType.Tuple((false,_1) :: _3,lhs parseState) + ) +# 3756 "..\pars.fsy" + : 'tupleType)); +# 13259 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleOrQuotTypeElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3759 "..\pars.fsy" + if _1 <> "/" then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedInfixOperator()); + SynType.Tuple((true, SynType.StaticConstant (SynConst.Int32 1, lhs parseState)):: _2, lhs parseState) + ) +# 3759 "..\pars.fsy" + : 'tupleType)); +# 13272 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleOrQuotTypeElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3763 "..\pars.fsy" + if _2 <> "/" then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedInfixOperator()); + SynType.Tuple((true,_1) :: _3, lhs parseState) + ) +# 3763 "..\pars.fsy" + : 'tupleType)); +# 13286 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3765 "..\pars.fsy" + _1 + ) +# 3765 "..\pars.fsy" + : 'tupleType)); +# 13297 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleOrQuotTypeElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3768 "..\pars.fsy" + (false,_1) :: _3 + ) +# 3768 "..\pars.fsy" + : 'tupleOrQuotTypeElements)); +# 13309 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleOrQuotTypeElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3770 "..\pars.fsy" + if _2 <> "/" then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedInfixOperator()); + (true,_1) :: _3 + ) +# 3770 "..\pars.fsy" + : 'tupleOrQuotTypeElements)); +# 13323 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3772 "..\pars.fsy" + [(false,_1)] + ) +# 3772 "..\pars.fsy" + : 'tupleOrQuotTypeElements)); +# 13334 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleTypeElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3775 "..\pars.fsy" + _1 :: _3 + ) +# 3775 "..\pars.fsy" + : 'tupleTypeElements)); +# 13346 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3776 "..\pars.fsy" + [_1] + ) +# 3776 "..\pars.fsy" + : 'tupleTypeElements)); +# 13357 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3780 "..\pars.fsy" + SynType.LongIdent(_1) + ) +# 3780 "..\pars.fsy" + : 'appTypeCon)); +# 13368 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3783 "..\pars.fsy" + SynType.Var(_1, lhs parseState) + ) +# 3783 "..\pars.fsy" + : 'appTypeCon)); +# 13379 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeCon)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : int32 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3787 "..\pars.fsy" + if _2 <> "^" && _2 <> "^-" then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnexpectedInfixOperator()); + if _2 = "^-" then SynType.MeasurePower(_1, -(fst _3), lhs parseState) + else SynType.MeasurePower(_1, fst _3, lhs parseState) + ) +# 3787 "..\pars.fsy" + : 'appTypeConPower)); +# 13394 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeCon)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3791 "..\pars.fsy" + _1 + ) +# 3791 "..\pars.fsy" + : 'appTypeConPower)); +# 13405 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'arrayTypeSuffix)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3795 "..\pars.fsy" + SynType.Array(_2,_1,lhs parseState) + ) +# 3795 "..\pars.fsy" + : 'appType)); +# 13417 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'arrayTypeSuffix)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3797 "..\pars.fsy" + SynType.Array(_3,_1,lhs parseState) + ) +# 3797 "..\pars.fsy" + : 'appType)); +# 13429 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeConPower)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3799 "..\pars.fsy" + SynType.App(_2, None, [_1], [], None, true, unionRanges (rhs parseState 1) _2.Range) + ) +# 3799 "..\pars.fsy" + : 'appType)); +# 13441 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypePrefixArguments)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeConPower)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3801 "..\pars.fsy" + let args, commas = _2 + mlCompatWarning (FSComp.SR.parsMultiArgumentGenericTypeFormDeprecated()) (unionRanges (rhs parseState 1) _4.Range); + SynType.App(_4, None, args, commas, None, true, unionRanges (rhs parseState 1) _4.Range) + ) +# 3801 "..\pars.fsy" + : 'appType)); +# 13456 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'powerType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3805 "..\pars.fsy" + _1 + ) +# 3805 "..\pars.fsy" + : 'appType)); +# 13467 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3807 "..\pars.fsy" + let tp,typ = _1,_3 + let m = lhs parseState + SynType.WithGlobalConstraints(SynType.Var (tp, rhs parseState 1), [WhereTyparSubtypeOfType(tp,typ,m)],m) + ) +# 3807 "..\pars.fsy" + : 'appType)); +# 13481 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3811 "..\pars.fsy" + SynType.HashConstraint(_3, lhs parseState) + ) +# 3811 "..\pars.fsy" + : 'appType)); +# 13492 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3815 "..\pars.fsy" + 1 + ) +# 3815 "..\pars.fsy" + : 'arrayTypeSuffix)); +# 13502 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3817 "..\pars.fsy" + 2 + ) +# 3817 "..\pars.fsy" + : 'arrayTypeSuffix)); +# 13512 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3819 "..\pars.fsy" + 3 + ) +# 3819 "..\pars.fsy" + : 'arrayTypeSuffix)); +# 13522 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3821 "..\pars.fsy" + 4 + ) +# 3821 "..\pars.fsy" + : 'arrayTypeSuffix)); +# 13532 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActual)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActual)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgListElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3825 "..\pars.fsy" + let typeArgs, commas = _4 in _1 :: _3 :: List.rev typeArgs, (rhs parseState 2)::(List.rev commas) + ) +# 3825 "..\pars.fsy" + : 'appTypePrefixArguments)); +# 13545 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgListElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActual)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3829 "..\pars.fsy" + let typeArgs, commas = _1 + _3 :: typeArgs, (rhs parseState 2)::commas + ) +# 3829 "..\pars.fsy" + : 'typeArgListElements)); +# 13558 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgListElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'dummyTypeArg)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3832 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsMissingTypeArgs()) + let typeArgs, commas = _1 + _3 :: typeArgs, (rhs parseState 2)::commas + ) +# 3832 "..\pars.fsy" + : 'typeArgListElements)); +# 13572 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3836 "..\pars.fsy" + [], [] + ) +# 3836 "..\pars.fsy" + : 'typeArgListElements)); +# 13582 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3840 "..\pars.fsy" + _1 + ) +# 3840 "..\pars.fsy" + : 'powerType)); +# 13593 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : int32 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3842 "..\pars.fsy" + if _2 <> "^" && _2 <> "^-" then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnexpectedInfixOperator()); + if _2 = "^-" then SynType.MeasurePower(_1, - (fst _3), lhs parseState) + else SynType.MeasurePower(_1, fst _3, lhs parseState) + ) +# 3842 "..\pars.fsy" + : 'powerType)); +# 13608 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : int32 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3846 "..\pars.fsy" + if _2 <> "^" then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnexpectedInfixOperator()); + SynType.MeasurePower(_1, - (fst _4), lhs parseState) + ) +# 3846 "..\pars.fsy" + : 'powerType)); +# 13622 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'arrayTypeSuffix)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3852 "..\pars.fsy" + deprecatedWithError (FSComp.SR.parsNonAtomicType()) (lhs parseState); + SynType.Array(_2,_1,lhs parseState) + ) +# 3852 "..\pars.fsy" + : 'appTypeNonAtomicDeprecated)); +# 13635 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'arrayTypeSuffix)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3855 "..\pars.fsy" + deprecatedWithError (FSComp.SR.parsNonAtomicType()) (lhs parseState); + SynType.Array(_3,_1,lhs parseState) + ) +# 3855 "..\pars.fsy" + : 'appTypeNonAtomicDeprecated)); +# 13648 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeConPower)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3858 "..\pars.fsy" + let mWhole = unionRanges (rhs parseState 1) _2.Range // note: use "rhs parseState 1" to deal with parens in "(int) list" + deprecatedWithError (FSComp.SR.parsNonAtomicType()) mWhole; + SynType.App(_2, None, [_1], [], None, true, mWhole) + ) +# 3858 "..\pars.fsy" + : 'appTypeNonAtomicDeprecated)); +# 13662 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypePrefixArguments)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeConPower)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3862 "..\pars.fsy" + let args, commas = _2 + mlCompatWarning (FSComp.SR.parsMultiArgumentGenericTypeFormDeprecated()) (unionRanges (rhs parseState 1) _4.Range); + SynType.App(_4, None, args, commas, None, true, unionRanges (rhs parseState 1) _4.Range) + ) +# 3862 "..\pars.fsy" + : 'appTypeNonAtomicDeprecated)); +# 13677 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'powerTypeNonAtomicDeprecated)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3866 "..\pars.fsy" + _1 + ) +# 3866 "..\pars.fsy" + : 'appTypeNonAtomicDeprecated)); +# 13688 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3868 "..\pars.fsy" + deprecatedWithError (FSComp.SR.parsNonAtomicType()) (lhs parseState); + let tp,typ = _1,_3 + let m = lhs parseState + SynType.WithGlobalConstraints(SynType.Var (tp, rhs parseState 1), [WhereTyparSubtypeOfType(tp,typ,m)],m) + ) +# 3868 "..\pars.fsy" + : 'appTypeNonAtomicDeprecated)); +# 13703 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3873 "..\pars.fsy" + deprecatedWithError (FSComp.SR.parsNonAtomicType()) (lhs parseState); + SynType.HashConstraint(_3, lhs parseState) + ) +# 3873 "..\pars.fsy" + : 'appTypeNonAtomicDeprecated)); +# 13715 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3879 "..\pars.fsy" + _1 + ) +# 3879 "..\pars.fsy" + : 'powerTypeNonAtomicDeprecated)); +# 13726 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : int32 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3881 "..\pars.fsy" + if _2 <> "^" && _2 <> "^-" then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnexpectedInfixOperator()); + deprecatedWithError (FSComp.SR.parsNonAtomicType()) (lhs parseState); + if _2 = "^-" then SynType.MeasurePower(_1, - (fst _3), lhs parseState) + else SynType.MeasurePower(_1, fst _3, lhs parseState) + ) +# 3881 "..\pars.fsy" + : 'powerTypeNonAtomicDeprecated)); +# 13742 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : int32 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3886 "..\pars.fsy" + if _2 <> "^" then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnexpectedInfixOperator()); + deprecatedWithError (FSComp.SR.parsNonAtomicType()) (lhs parseState); + SynType.MeasurePower(_1, - (fst _4), lhs parseState) + ) +# 3886 "..\pars.fsy" + : 'powerTypeNonAtomicDeprecated)); +# 13757 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3895 "..\pars.fsy" + SynType.HashConstraint(_2, lhs parseState) + ) +# 3895 "..\pars.fsy" + : 'atomType)); +# 13768 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeConPower)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3897 "..\pars.fsy" + _1 + ) +# 3897 "..\pars.fsy" + : 'atomType)); +# 13779 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3899 "..\pars.fsy" + SynType.Anon (lhs parseState) + ) +# 3899 "..\pars.fsy" + : 'atomType)); +# 13789 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3901 "..\pars.fsy" + _2 + ) +# 3901 "..\pars.fsy" + : 'atomType)); +# 13801 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3903 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()) + _2 + ) +# 3903 "..\pars.fsy" + : 'atomType)); +# 13814 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'rawConstant)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3906 "..\pars.fsy" + SynType.StaticConstant(_1, rhs parseState 1) + ) +# 3906 "..\pars.fsy" + : 'atomType)); +# 13825 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3908 "..\pars.fsy" + let m = rhs parseState 1 + SynType.StaticConstant(SynConst.String (null, m), m) + ) +# 3908 "..\pars.fsy" + : 'atomType)); +# 13836 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3911 "..\pars.fsy" + let e,_ = _2 + SynType.StaticConstantExpr(e, e.Range) + + ) +# 3911 "..\pars.fsy" + : 'atomType)); +# 13849 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3915 "..\pars.fsy" + SynType.StaticConstant(SynConst.Bool false,lhs parseState) + ) +# 3915 "..\pars.fsy" + : 'atomType)); +# 13859 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3917 "..\pars.fsy" + SynType.StaticConstant(SynConst.Bool true,lhs parseState) + ) +# 3917 "..\pars.fsy" + : 'atomType)); +# 13869 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3919 "..\pars.fsy" + (* silent recovery *) SynType.Anon (lhs parseState) + ) +# 3919 "..\pars.fsy" + : 'atomType)); +# 13880 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeCon)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : range * range option * Ast.SynType list * range list * range)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3921 "..\pars.fsy" + let mLessThan,mGreaterThan,args,commas,mWhole = _2 in SynType.App(_1, Some(mLessThan), args, commas, mGreaterThan, false, unionRanges _1.Range mWhole) + ) +# 3921 "..\pars.fsy" + : 'atomType)); +# 13892 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3923 "..\pars.fsy" + SynType.LongIdentApp(_1, _3, None, [], [], None, unionRanges (rhs parseState 1) _3.Range) + ) +# 3923 "..\pars.fsy" + : 'atomType)); +# 13904 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : range * range option * Ast.SynType list * range list * range)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3925 "..\pars.fsy" + let mLessThan,mGreaterThan,args,commas,mWhole = _4 + SynType.LongIdentApp(_1, _3, Some(mLessThan), args, commas, mGreaterThan, unionRanges _1.Range mWhole) + ) +# 3925 "..\pars.fsy" + : 'atomType)); +# 13918 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeCon)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3928 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsExpectedNameAfterToken()) + _1 + ) +# 3928 "..\pars.fsy" + : 'atomType)); +# 13931 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : range * range option * bool * Ast.SynType list * range list * range)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3934 "..\pars.fsy" + let mLessThan, mGreaterThan, parsedOk, args, commas, mAll = _1 + if parsedOk then // if someone has "foo + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : range * range option * bool * Ast.SynType list * range list * range)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3939 "..\pars.fsy" + let mLessThan, mGreaterThan, _, args, commas, mAll = _2 + mLessThan, mGreaterThan, args, commas, mAll + ) +# 3939 "..\pars.fsy" + : range * range option * Ast.SynType list * range list * range)); +# 13957 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActualOrDummyIfEmpty)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActualOrDummyIfEmpty)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgListElements)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3944 "..\pars.fsy" + let typeArgs, commas = _5 + (rhs parseState 1), Some(rhs parseState 6), true, (_2 :: _4 :: List.rev typeArgs), (rhs parseState 3)::(List.rev commas), lhs parseState + ) +# 3944 "..\pars.fsy" + : range * range option * bool * Ast.SynType list * range list * range)); +# 13973 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActualOrDummyIfEmpty)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActualOrDummyIfEmpty)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgListElements)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3947 "..\pars.fsy" + if not _6 then + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileTypeArgs()) + else + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsMissingGreaterThan()) + let typeArgs, commas = _5 + let nextToken = rhs parseState 6 + let zeroWidthAtStartOfNextToken = nextToken.StartRange + (rhs parseState 1), None, false, (_2 :: _4 :: List.rev typeArgs), (rhs parseState 3)::(List.rev commas), unionRanges (rhs parseState 1) zeroWidthAtStartOfNextToken + ) +# 3947 "..\pars.fsy" + : range * range option * bool * Ast.SynType list * range list * range)); +# 13995 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActualOrDummyIfEmpty)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3957 "..\pars.fsy" + if not _4 then reportParseErrorAt (rhs parseState 4) (FSComp.SR.parsMissingTypeArgs()) + let nextToken = rhs parseState 4 + let zeroWidthAtStartOfNextToken = nextToken.StartRange + (rhs parseState 1), None, false, [_2], [rhs parseState 3], unionRanges (rhs parseState 1) zeroWidthAtStartOfNextToken + ) +# 3957 "..\pars.fsy" + : range * range option * bool * Ast.SynType list * range list * range)); +# 14011 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActual)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3963 "..\pars.fsy" + (rhs parseState 1), Some(rhs parseState 3), true, [_2], [], lhs parseState + ) +# 3963 "..\pars.fsy" + : range * range option * bool * Ast.SynType list * range list * range)); +# 14024 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActual)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3965 "..\pars.fsy" + if not _3 then + reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedEndOfFileTypeArgs()) + else + reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsMissingGreaterThan()) + (rhs parseState 1), None, false, [_2], [], (rhs2 parseState 1 2) + ) +# 3965 "..\pars.fsy" + : range * range option * bool * Ast.SynType list * range list * range)); +# 14041 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3972 "..\pars.fsy" + (rhs parseState 1), Some(rhs parseState 2), true, [], [], lhs parseState + ) +# 3972 "..\pars.fsy" + : range * range option * bool * Ast.SynType list * range list * range)); +# 14053 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3974 "..\pars.fsy" + if not _2 then + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsExpectedTypeAfterToken()) + else + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsMissingTypeArgs()) + let nextToken = rhs parseState 2 + let zeroWidthAtStartOfNextToken = nextToken.StartRange + (rhs parseState 1), None, false, [], [], unionRanges (rhs parseState 1) zeroWidthAtStartOfNextToken + ) +# 3974 "..\pars.fsy" + : range * range option * bool * Ast.SynType list * range list * range)); +# 14071 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3984 "..\pars.fsy" + _1 + ) +# 3984 "..\pars.fsy" + : 'typeArgActual)); +# 14082 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3986 "..\pars.fsy" + SynType.StaticConstantNamed(_1, _3, unionRanges _1.Range _3.Range) + ) +# 3986 "..\pars.fsy" + : 'typeArgActual)); +# 14094 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3988 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsMissingTypeArgs()) + let dummy = SynType.StaticConstant(SynConst.Int32(0), rhs parseState 2) + SynType.StaticConstantNamed(_1, dummy, (rhs2 parseState 1 2)) + + ) +# 3988 "..\pars.fsy" + : 'typeArgActual)); +# 14108 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActual)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3995 "..\pars.fsy" + _1 + ) +# 3995 "..\pars.fsy" + : 'typeArgActualOrDummyIfEmpty)); +# 14119 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'dummyTypeArg)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3997 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsMissingTypeArgs()) + _1 + ) +# 3997 "..\pars.fsy" + : 'typeArgActualOrDummyIfEmpty)); +# 14131 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4002 "..\pars.fsy" + + let m = rhs parseState 1 + let dummyStatVal = SynType.StaticConstant(SynConst.Int32(0), m) + let dummyName = SynType.LongIdent(LongIdentWithDots([ident("",m)],[])) + let dummyTypeArg = SynType.StaticConstantNamed(dummyName, dummyStatVal, m) + dummyTypeArg + ) +# 4002 "..\pars.fsy" + : 'dummyTypeArg)); +# 14146 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4012 "..\pars.fsy" + _2 + ) +# 4012 "..\pars.fsy" + : 'measureTypeArg)); +# 14159 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4014 "..\pars.fsy" + SynMeasure.Anon (lhs parseState) + ) +# 4014 "..\pars.fsy" + : 'measureTypeArg)); +# 14171 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4018 "..\pars.fsy" + SynMeasure.Named(_1.Lid, _1.Range) + ) +# 4018 "..\pars.fsy" + : 'measureTypeAtom)); +# 14182 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4021 "..\pars.fsy" + SynMeasure.Var(_1, lhs parseState) + ) +# 4021 "..\pars.fsy" + : 'measureTypeAtom)); +# 14193 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4024 "..\pars.fsy" + _2 + ) +# 4024 "..\pars.fsy" + : 'measureTypeAtom)); +# 14205 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeAtom)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4028 "..\pars.fsy" + _1 + ) +# 4028 "..\pars.fsy" + : 'measureTypePower)); +# 14216 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeAtom)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : int32 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4031 "..\pars.fsy" + if _2 <> "^" && _2 <> "^-" then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnexpectedOperatorForUnitOfMeasure()); + if _2 = "^-" then SynMeasure.Power(_1, - (fst _3), lhs parseState) + else SynMeasure.Power(_1, fst _3, lhs parseState) + ) +# 4031 "..\pars.fsy" + : 'measureTypePower)); +# 14231 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeAtom)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : int32 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4036 "..\pars.fsy" + if _2 <> "^" then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnexpectedOperatorForUnitOfMeasure()); + SynMeasure.Power(_1, - (fst _4), lhs parseState) + ) +# 4036 "..\pars.fsy" + : 'measureTypePower)); +# 14245 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int32 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4040 "..\pars.fsy" + if fst _1 <> 1 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedIntegerLiteralForUnitOfMeasure()); + SynMeasure.One + ) +# 4040 "..\pars.fsy" + : 'measureTypePower)); +# 14257 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypePower)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4045 "..\pars.fsy" + [_1] + ) +# 4045 "..\pars.fsy" + : 'measureTypeSeq)); +# 14268 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypePower)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeSeq)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4047 "..\pars.fsy" + _1 :: _2 + ) +# 4047 "..\pars.fsy" + : 'measureTypeSeq)); +# 14280 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeSeq)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4051 "..\pars.fsy" + SynMeasure.Seq(_1, lhs parseState) + ) +# 4051 "..\pars.fsy" + : 'measureTypeExpr)); +# 14291 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4053 "..\pars.fsy" + SynMeasure.Product(_1, _3, lhs parseState) + ) +# 4053 "..\pars.fsy" + : 'measureTypeExpr)); +# 14303 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4055 "..\pars.fsy" + if _2 <> "*" && _2 <> "/" then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnexpectedOperatorForUnitOfMeasure()); + if _2 = "*" then SynMeasure.Product(_1, _3, lhs parseState) + else SynMeasure.Divide(_1, _3, lhs parseState) + ) +# 4055 "..\pars.fsy" + : 'measureTypeExpr)); +# 14318 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4059 "..\pars.fsy" + if _1 <> "/" then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedOperatorForUnitOfMeasure()); + SynMeasure.Divide(SynMeasure.One, _2, lhs parseState) + ) +# 4059 "..\pars.fsy" + : 'measureTypeExpr)); +# 14331 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4064 "..\pars.fsy" + let id = mkSynId (lhs parseState) (_2).idText + Typar(id ,NoStaticReq,false) + ) +# 4064 "..\pars.fsy" + : Ast.SynTypar)); +# 14343 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticallyKnownHeadTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4067 "..\pars.fsy" + _1 + ) +# 4067 "..\pars.fsy" + : Ast.SynTypar)); +# 14354 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4071 "..\pars.fsy" + if _1 <> "^" then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedTypeParameter()); + Typar(_2,HeadTypeStaticReq,false) + ) +# 4071 "..\pars.fsy" + : 'staticallyKnownHeadTypar)); +# 14367 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4078 "..\pars.fsy" + ident(_1,rhs parseState 1) + ) +# 4078 "..\pars.fsy" + : Ast.Ident)); +# 14378 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4082 "..\pars.fsy" + LongIdentWithDots([ident(MangledGlobalName,rhs parseState 1)],[]) + ) +# 4082 "..\pars.fsy" + : Ast.LongIdentWithDots)); +# 14388 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4084 "..\pars.fsy" + LongIdentWithDots([_1],[]) + ) +# 4084 "..\pars.fsy" + : Ast.LongIdentWithDots)); +# 14399 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4086 "..\pars.fsy" + let (LongIdentWithDots(lid,dotms)) = _1 in LongIdentWithDots(lid @ [_3], dotms @ [rhs parseState 2]) + ) +# 4086 "..\pars.fsy" + : Ast.LongIdentWithDots)); +# 14411 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4088 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsExpectedNameAfterToken()) + let (LongIdentWithDots(lid,dotms)) = _1 in LongIdentWithDots(lid, dotms @ [rhs parseState 2]) + ) +# 4088 "..\pars.fsy" + : Ast.LongIdentWithDots)); +# 14424 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'operatorName)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4093 "..\pars.fsy" + ident(CompileOpName _2,rhs parseState 2) + ) +# 4093 "..\pars.fsy" + : 'opName)); +# 14436 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4095 "..\pars.fsy" + reportParseErrorAt (lhs parseState) (FSComp.SR.parsErrorParsingAsOperatorName()); ident(CompileOpName "****",rhs parseState 2) + ) +# 4095 "..\pars.fsy" + : 'opName)); +# 14447 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4097 "..\pars.fsy" + ident(CompileOpName "*",rhs parseState 1) + ) +# 4097 "..\pars.fsy" + : 'opName)); +# 14457 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'barNames)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4101 "..\pars.fsy" + let text = ("|"^String.concat "|" (List.rev _2) ^ "|") + ident(text,rhs2 parseState 2 3) + ) +# 4101 "..\pars.fsy" + : 'opName)); +# 14470 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'barNames)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4105 "..\pars.fsy" + let text = ("|"^String.concat "|" (List.rev _2) ^ "|_|" ) + ident(text,rhs2 parseState 2 5) + ) +# 4105 "..\pars.fsy" + : 'opName)); +# 14483 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4110 "..\pars.fsy" + if not (IsValidPrefixOperatorDefinitionName _1) then + reportParseErrorAt (lhs parseState) (FSComp.SR.parsInvalidPrefixOperatorDefinition()); + _1 + ) +# 4110 "..\pars.fsy" + : 'operatorName)); +# 14496 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4113 "..\pars.fsy" + _1 + ) +# 4113 "..\pars.fsy" + : 'operatorName)); +# 14507 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4114 "..\pars.fsy" + _1 + ) +# 4114 "..\pars.fsy" + : 'operatorName)); +# 14518 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4115 "..\pars.fsy" + _1 + ) +# 4115 "..\pars.fsy" + : 'operatorName)); +# 14529 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4116 "..\pars.fsy" + _1 + ) +# 4116 "..\pars.fsy" + : 'operatorName)); +# 14540 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4117 "..\pars.fsy" + _1 + ) +# 4117 "..\pars.fsy" + : 'operatorName)); +# 14551 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4118 "..\pars.fsy" + _1 + ) +# 4118 "..\pars.fsy" + : 'operatorName)); +# 14562 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4119 "..\pars.fsy" + _1 + ) +# 4119 "..\pars.fsy" + : 'operatorName)); +# 14573 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4120 "..\pars.fsy" + "$" + ) +# 4120 "..\pars.fsy" + : 'operatorName)); +# 14583 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4121 "..\pars.fsy" + _1 + ) +# 4121 "..\pars.fsy" + : 'operatorName)); +# 14594 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4122 "..\pars.fsy" + "-" + ) +# 4122 "..\pars.fsy" + : 'operatorName)); +# 14604 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4123 "..\pars.fsy" + "*" + ) +# 4123 "..\pars.fsy" + : 'operatorName)); +# 14614 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4124 "..\pars.fsy" + "=" + ) +# 4124 "..\pars.fsy" + : 'operatorName)); +# 14624 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4125 "..\pars.fsy" + "or" + ) +# 4125 "..\pars.fsy" + : 'operatorName)); +# 14634 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4126 "..\pars.fsy" + "<" + ) +# 4126 "..\pars.fsy" + : 'operatorName)); +# 14645 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4127 "..\pars.fsy" + ">" + ) +# 4127 "..\pars.fsy" + : 'operatorName)); +# 14656 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4128 "..\pars.fsy" + "?" + ) +# 4128 "..\pars.fsy" + : 'operatorName)); +# 14666 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4129 "..\pars.fsy" + "&" + ) +# 4129 "..\pars.fsy" + : 'operatorName)); +# 14676 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4130 "..\pars.fsy" + "&&" + ) +# 4130 "..\pars.fsy" + : 'operatorName)); +# 14686 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4131 "..\pars.fsy" + "||" + ) +# 4131 "..\pars.fsy" + : 'operatorName)); +# 14696 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4132 "..\pars.fsy" + ":=" + ) +# 4132 "..\pars.fsy" + : 'operatorName)); +# 14706 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4134 "..\pars.fsy" + if _1 <> ".[]" && _1 <> ".()" && _1 <> ".()<-" then + deprecatedOperator (lhs parseState); + _1 + ) +# 4134 "..\pars.fsy" + : 'operatorName)); +# 14719 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4137 "..\pars.fsy" + _1 + ) +# 4137 "..\pars.fsy" + : 'operatorName)); +# 14730 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4138 "..\pars.fsy" + ".." + ) +# 4138 "..\pars.fsy" + : 'operatorName)); +# 14740 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4139 "..\pars.fsy" + ".. .." + ) +# 4139 "..\pars.fsy" + : 'operatorName)); +# 14750 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string * bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4141 "..\pars.fsy" + if _1 <> _2 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsMismatchedQuotationName(fst _1)); + fst _1 + ) +# 4141 "..\pars.fsy" + : 'operatorName)); +# 14763 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4146 "..\pars.fsy" + if not (String.isUpper _1) then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsActivePatternCaseMustBeginWithUpperCase()); + _1 + ) +# 4146 "..\pars.fsy" + : 'barName)); +# 14775 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'barName)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4151 "..\pars.fsy" + [_2] + ) +# 4151 "..\pars.fsy" + : 'barNames)); +# 14786 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'barNames)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'barName)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4153 "..\pars.fsy" + _3 :: _1 + ) +# 4153 "..\pars.fsy" + : 'barNames)); +# 14798 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4157 "..\pars.fsy" + _1 + ) +# 4157 "..\pars.fsy" + : 'identOrOp)); +# 14809 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opName)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4159 "..\pars.fsy" + _1 + ) +# 4159 "..\pars.fsy" + : 'identOrOp)); +# 14820 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4165 "..\pars.fsy" + LongIdentWithDots([_1],[]) + ) +# 4165 "..\pars.fsy" + : Ast.LongIdentWithDots)); +# 14831 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opName)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4167 "..\pars.fsy" + LongIdentWithDots([_1],[]) + ) +# 4167 "..\pars.fsy" + : Ast.LongIdentWithDots)); +# 14842 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4169 "..\pars.fsy" + let (LongIdentWithDots(lid,dotms)) = _3 in LongIdentWithDots(_1 :: lid, rhs parseState 2 :: dotms) + ) +# 4169 "..\pars.fsy" + : Ast.LongIdentWithDots)); +# 14854 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4171 "..\pars.fsy" + (* silent recovery *) LongIdentWithDots([_1],[rhs parseState 2]) + ) +# 4171 "..\pars.fsy" + : Ast.LongIdentWithDots)); +# 14865 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'identOrOp)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4176 "..\pars.fsy" + _1 + ) +# 4176 "..\pars.fsy" + : 'nameop)); +# 14876 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4179 "..\pars.fsy" + + ) +# 4179 "..\pars.fsy" + : 'topSeparator)); +# 14886 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4180 "..\pars.fsy" + + ) +# 4180 "..\pars.fsy" + : 'topSeparator)); +# 14896 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4181 "..\pars.fsy" + + ) +# 4181 "..\pars.fsy" + : 'topSeparator)); +# 14906 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topSeparator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4184 "..\pars.fsy" + + ) +# 4184 "..\pars.fsy" + : 'topSeparators)); +# 14917 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topSeparator)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'topSeparators)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4185 "..\pars.fsy" + + ) +# 4185 "..\pars.fsy" + : 'topSeparators)); +# 14929 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4188 "..\pars.fsy" + + ) +# 4188 "..\pars.fsy" + : 'interactiveSeparator)); +# 14939 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4189 "..\pars.fsy" + + ) +# 4189 "..\pars.fsy" + : 'interactiveSeparator)); +# 14949 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveSeparator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4192 "..\pars.fsy" + + ) +# 4192 "..\pars.fsy" + : 'interactiveSeparators)); +# 14960 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveSeparator)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveSeparators)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4193 "..\pars.fsy" + + ) +# 4193 "..\pars.fsy" + : 'interactiveSeparators)); +# 14972 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveSeparator)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_interactiveSeparators)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4196 "..\pars.fsy" + + ) +# 4196 "..\pars.fsy" + : 'opt_interactiveSeparators)); +# 14984 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4197 "..\pars.fsy" + + ) +# 4197 "..\pars.fsy" + : 'opt_interactiveSeparators)); +# 14994 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topSeparator)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_topSeparators)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4200 "..\pars.fsy" + + ) +# 4200 "..\pars.fsy" + : 'opt_topSeparators)); +# 15006 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4201 "..\pars.fsy" + + ) +# 4201 "..\pars.fsy" + : 'opt_topSeparators)); +# 15016 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4204 "..\pars.fsy" + + ) +# 4204 "..\pars.fsy" + : 'seps)); +# 15026 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4205 "..\pars.fsy" + + ) +# 4205 "..\pars.fsy" + : 'seps)); +# 15036 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4206 "..\pars.fsy" + + ) +# 4206 "..\pars.fsy" + : 'seps)); +# 15046 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4207 "..\pars.fsy" + + ) +# 4207 "..\pars.fsy" + : 'seps)); +# 15056 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4212 "..\pars.fsy" + + ) +# 4212 "..\pars.fsy" + : 'declEnd)); +# 15066 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4214 "..\pars.fsy" + + ) +# 4214 "..\pars.fsy" + : 'declEnd)); +# 15076 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4216 "..\pars.fsy" + + ) +# 4216 "..\pars.fsy" + : 'declEnd)); +# 15086 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4221 "..\pars.fsy" + + ) +# 4221 "..\pars.fsy" + : 'opt_declEnd)); +# 15096 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4223 "..\pars.fsy" + + ) +# 4223 "..\pars.fsy" + : 'opt_declEnd)); +# 15106 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4225 "..\pars.fsy" + + ) +# 4225 "..\pars.fsy" + : 'opt_declEnd)); +# 15116 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4227 "..\pars.fsy" + + ) +# 4227 "..\pars.fsy" + : 'opt_declEnd)); +# 15126 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4230 "..\pars.fsy" + + ) +# 4230 "..\pars.fsy" + : 'opt_ODECLEND)); +# 15136 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4231 "..\pars.fsy" + + ) +# 4231 "..\pars.fsy" + : 'opt_ODECLEND)); +# 15146 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4234 "..\pars.fsy" + deprecatedWithError (FSComp.SR.parsNoEqualShouldFollowNamespace()) (lhs parseState); () + ) +# 4234 "..\pars.fsy" + : 'deprecated_opt_equals)); +# 15156 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4235 "..\pars.fsy" + + ) +# 4235 "..\pars.fsy" + : 'deprecated_opt_equals)); +# 15166 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4238 "..\pars.fsy" + + ) +# 4238 "..\pars.fsy" + : 'opt_OBLOCKSEP)); +# 15176 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4239 "..\pars.fsy" + + ) +# 4239 "..\pars.fsy" + : 'opt_OBLOCKSEP)); +# 15186 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'seps)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4242 "..\pars.fsy" + + ) +# 4242 "..\pars.fsy" + : 'opt_seps)); +# 15197 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4243 "..\pars.fsy" + + ) +# 4243 "..\pars.fsy" + : 'opt_seps)); +# 15207 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4246 "..\pars.fsy" + true + ) +# 4246 "..\pars.fsy" + : 'opt_rec)); +# 15217 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4247 "..\pars.fsy" + false + ) +# 4247 "..\pars.fsy" + : 'opt_rec)); +# 15227 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4250 "..\pars.fsy" + + ) +# 4250 "..\pars.fsy" + : 'opt_bar)); +# 15237 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4251 "..\pars.fsy" + + ) +# 4251 "..\pars.fsy" + : 'opt_bar)); +# 15247 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4254 "..\pars.fsy" + true + ) +# 4254 "..\pars.fsy" + : 'opt_inline)); +# 15257 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4255 "..\pars.fsy" + false + ) +# 4255 "..\pars.fsy" + : 'opt_inline)); +# 15267 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4258 "..\pars.fsy" + true + ) +# 4258 "..\pars.fsy" + : 'opt_mutable)); +# 15277 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4259 "..\pars.fsy" + false + ) +# 4259 "..\pars.fsy" + : 'opt_mutable)); +# 15287 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4262 "..\pars.fsy" + + ) +# 4262 "..\pars.fsy" + : 'doToken)); +# 15297 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4263 "..\pars.fsy" + + ) +# 4263 "..\pars.fsy" + : 'doToken)); +# 15307 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4266 "..\pars.fsy" + + ) +# 4266 "..\pars.fsy" + : 'doneDeclEnd)); +# 15317 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4267 "..\pars.fsy" + + ) +# 4267 "..\pars.fsy" + : 'doneDeclEnd)); +# 15327 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4270 "..\pars.fsy" + mlCompatWarning (FSComp.SR.parsSyntaxModuleStructEndDeprecated()) (lhs parseState); + ) +# 4270 "..\pars.fsy" + : 'structOrBegin)); +# 15337 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4271 "..\pars.fsy" + + ) +# 4271 "..\pars.fsy" + : 'structOrBegin)); +# 15347 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4274 "..\pars.fsy" + mlCompatWarning (FSComp.SR.parsSyntaxModuleSigEndDeprecated()) (lhs parseState); + ) +# 4274 "..\pars.fsy" + : 'sigOrBegin)); +# 15357 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4275 "..\pars.fsy" + + ) +# 4275 "..\pars.fsy" + : 'sigOrBegin)); +# 15367 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4278 "..\pars.fsy" + mlCompatWarning (FSComp.SR.parsSyntaxModuleSigEndDeprecated()) (lhs parseState); + ) +# 4278 "..\pars.fsy" + : 'colonOrEquals)); +# 15377 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4279 "..\pars.fsy" + + ) +# 4279 "..\pars.fsy" + : 'colonOrEquals)); +# 15387 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4282 "..\pars.fsy" + + ) +# 4282 "..\pars.fsy" + : 'opt_HASH)); +# 15397 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4285 "..\pars.fsy" + + ) +# 4285 "..\pars.fsy" + : 'opt_HIGH_PRECEDENCE_APP)); +# 15407 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4286 "..\pars.fsy" + + ) +# 4286 "..\pars.fsy" + : 'opt_HIGH_PRECEDENCE_APP)); +# 15417 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4287 "..\pars.fsy" + + ) +# 4287 "..\pars.fsy" + : 'opt_HIGH_PRECEDENCE_APP)); +# 15427 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4290 "..\pars.fsy" + + ) +# 4290 "..\pars.fsy" + : 'opt_HIGH_PRECEDENCE_TYAPP)); +# 15437 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4291 "..\pars.fsy" + + ) +# 4291 "..\pars.fsy" + : 'opt_HIGH_PRECEDENCE_TYAPP)); +# 15447 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'type_keyword)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4294 "..\pars.fsy" + + ) +# 4294 "..\pars.fsy" + : 'type_keyword)); +# 15458 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4295 "..\pars.fsy" + + ) +# 4295 "..\pars.fsy" + : 'type_keyword)); +# 15468 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4296 "..\pars.fsy" + + ) +# 4296 "..\pars.fsy" + : 'type_keyword)); +# 15478 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'module_keyword)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4299 "..\pars.fsy" + + ) +# 4299 "..\pars.fsy" + : 'module_keyword)); +# 15489 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4300 "..\pars.fsy" + + ) +# 4300 "..\pars.fsy" + : 'module_keyword)); +# 15499 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4301 "..\pars.fsy" + + ) +# 4301 "..\pars.fsy" + : 'module_keyword)); +# 15509 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'rbrace)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4304 "..\pars.fsy" + + ) +# 4304 "..\pars.fsy" + : 'rbrace)); +# 15520 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4305 "..\pars.fsy" + + ) +# 4305 "..\pars.fsy" + : 'rbrace)); +# 15530 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4306 "..\pars.fsy" + + ) +# 4306 "..\pars.fsy" + : 'rbrace)); +# 15540 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4309 "..\pars.fsy" + + ) +# 4309 "..\pars.fsy" + : 'rparen)); +# 15551 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4310 "..\pars.fsy" + + ) +# 4310 "..\pars.fsy" + : 'rparen)); +# 15561 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4311 "..\pars.fsy" + + ) +# 4311 "..\pars.fsy" + : 'rparen)); +# 15571 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4314 "..\pars.fsy" + + ) +# 4314 "..\pars.fsy" + : 'oblockend)); +# 15582 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4315 "..\pars.fsy" + + ) +# 4315 "..\pars.fsy" + : 'oblockend)); +# 15592 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4316 "..\pars.fsy" + + ) +# 4316 "..\pars.fsy" + : 'oblockend)); +# 15602 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4319 "..\pars.fsy" + false + ) +# 4319 "..\pars.fsy" + : 'ends_other_than_rparen_coming_soon_or_recover)); +# 15612 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4320 "..\pars.fsy" + false + ) +# 4320 "..\pars.fsy" + : 'ends_other_than_rparen_coming_soon_or_recover)); +# 15622 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4321 "..\pars.fsy" + false + ) +# 4321 "..\pars.fsy" + : 'ends_other_than_rparen_coming_soon_or_recover)); +# 15632 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4322 "..\pars.fsy" + false + ) +# 4322 "..\pars.fsy" + : 'ends_other_than_rparen_coming_soon_or_recover)); +# 15642 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4323 "..\pars.fsy" + _1 + ) +# 4323 "..\pars.fsy" + : 'ends_other_than_rparen_coming_soon_or_recover)); +# 15653 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4326 "..\pars.fsy" + false + ) +# 4326 "..\pars.fsy" + : 'ends_coming_soon_or_recover)); +# 15663 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4327 "..\pars.fsy" + false + ) +# 4327 "..\pars.fsy" + : 'ends_coming_soon_or_recover)); +# 15673 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4328 "..\pars.fsy" + false + ) +# 4328 "..\pars.fsy" + : 'ends_coming_soon_or_recover)); +# 15683 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4329 "..\pars.fsy" + false + ) +# 4329 "..\pars.fsy" + : 'ends_coming_soon_or_recover)); +# 15693 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4330 "..\pars.fsy" + false + ) +# 4330 "..\pars.fsy" + : 'ends_coming_soon_or_recover)); +# 15703 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4331 "..\pars.fsy" + _1 + ) +# 4331 "..\pars.fsy" + : 'ends_coming_soon_or_recover)); +|] +# 15715 "pars.fs" +let tables () : Internal.Utilities.Text.Parsing.Tables<_> = + { reductions= _fsyacc_reductions (); + endOfInputTag = _fsyacc_endOfInputTag; + tagOfToken = tagOfToken; + dataOfToken = _fsyacc_dataOfToken; + actionTableElements = _fsyacc_actionTableElements; + actionTableRowOffsets = _fsyacc_actionTableRowOffsets; + stateToProdIdxsTableElements = _fsyacc_stateToProdIdxsTableElements; + stateToProdIdxsTableRowOffsets = _fsyacc_stateToProdIdxsTableRowOffsets; + reductionSymbolCounts = _fsyacc_reductionSymbolCounts; + immediateActions = _fsyacc_immediateActions; + gotos = _fsyacc_gotos; + sparseGotoTableRowOffsets = _fsyacc_sparseGotoTableRowOffsets; + tagOfErrorTerminal = _fsyacc_tagOfErrorTerminal; + parseError = (fun (ctxt:Internal.Utilities.Text.Parsing.ParseErrorContext<_>) -> + match parse_error_rich with + | Some f -> f ctxt + | None -> parse_error ctxt.Message); + numTerminals = 195; + productionToNonTerminalTable = _fsyacc_productionToNonTerminalTable } +let engine lexer lexbuf startState = (tables ()).Interpret(lexer, lexbuf, startState) +let signatureFile lexer lexbuf : Ast.ParsedSigFile = + Microsoft.FSharp.Core.Operators.unbox ((tables ()).Interpret(lexer, lexbuf, 0)) +let implementationFile lexer lexbuf : Ast.ParsedImplFile = + Microsoft.FSharp.Core.Operators.unbox ((tables ()).Interpret(lexer, lexbuf, 2)) +let interaction lexer lexbuf : Ast.ParsedFsiInteraction = + Microsoft.FSharp.Core.Operators.unbox ((tables ()).Interpret(lexer, lexbuf, 4)) diff --git a/src/fsharp/FSharp.AbsIL/pars.fsi b/src/fsharp/FSharp.AbsIL/pars.fsi new file mode 100644 index 0000000..f3884b6 --- /dev/null +++ b/src/fsharp/FSharp.AbsIL/pars.fsi @@ -0,0 +1,718 @@ +// Signature file for parser generated by fsyacc +module internal Microsoft.FSharp.Compiler.Parser +open Microsoft.FSharp.Compiler +type token = + | HASH_IF of (range * string * Ast.LexerWhitespaceContinuation) + | HASH_ELSE of (range * string * Ast.LexerWhitespaceContinuation) + | HASH_ENDIF of (range * string * Ast.LexerWhitespaceContinuation) + | COMMENT of (Ast.LexerWhitespaceContinuation) + | WHITESPACE of (Ast.LexerWhitespaceContinuation) + | HASH_LINE of (Ast.LexerWhitespaceContinuation) + | HASH_LIGHT of (Ast.LexerWhitespaceContinuation) + | INACTIVECODE of (Ast.LexerWhitespaceContinuation) + | LINE_COMMENT of (Ast.LexerWhitespaceContinuation) + | STRING_TEXT of (Ast.LexerWhitespaceContinuation) + | EOF of (Ast.LexerWhitespaceContinuation) + | LEX_FAILURE of (string) + | ODUMMY of (token) + | OINTERFACE_MEMBER + | OBLOCKEND + | OBLOCKEND_COMING_SOON + | OBLOCKEND_IS_HERE + | ORIGHT_BLOCK_END + | ODECLEND + | OEND + | OBLOCKSEP + | OBLOCKBEGIN + | ORESET + | OFUN + | OFUNCTION + | OWITH + | OELSE + | OTHEN + | ODO_BANG + | ODO + | OBINDER of (string) + | OLET of (bool) + | HIGH_PRECEDENCE_TYAPP + | HIGH_PRECEDENCE_PAREN_APP + | HIGH_PRECEDENCE_BRACK_APP + | TYPE_COMING_SOON + | TYPE_IS_HERE + | MODULE_COMING_SOON + | MODULE_IS_HERE + | EXTERN + | VOID + | PUBLIC + | PRIVATE + | INTERNAL + | GLOBAL + | STATIC + | MEMBER + | CLASS + | ABSTRACT + | OVERRIDE + | DEFAULT + | CONSTRUCTOR + | INHERIT + | GREATER_RBRACK + | STRUCT + | SIG + | BAR + | RBRACK + | RBRACE + | RBRACE_COMING_SOON + | RBRACE_IS_HERE + | MINUS + | DOLLAR + | LBRACE_LESS + | BAR_RBRACK + | GREATER_RBRACE + | UNDERSCORE + | SEMICOLON_SEMICOLON + | LARROW + | EQUALS + | LBRACK + | LBRACK_BAR + | LBRACK_LESS + | LBRACE + | QMARK + | QMARK_QMARK + | DOT + | COLON + | COLON_COLON + | COLON_GREATER + | COLON_QMARK_GREATER + | COLON_QMARK + | COLON_EQUALS + | SEMICOLON + | WHEN + | WHILE + | WITH + | HASH + | AMP + | AMP_AMP + | QUOTE + | LPAREN + | RPAREN + | RPAREN_COMING_SOON + | RPAREN_IS_HERE + | STAR + | COMMA + | RARROW + | GREATER_BAR_RBRACK + | LPAREN_STAR_RPAREN + | OPEN + | OR + | REC + | THEN + | TO + | TRUE + | TRY + | TYPE + | VAL + | INLINE + | INTERFACE + | INSTANCE + | CONST + | LAZY + | OLAZY + | MATCH + | MUTABLE + | NEW + | OF + | EXCEPTION + | FALSE + | FOR + | FUN + | FUNCTION + | IF + | IN + | JOIN_IN + | FINALLY + | DO_BANG + | AND + | AS + | ASSERT + | OASSERT + | ASR + | BEGIN + | DO + | DONE + | DOWNTO + | ELSE + | ELIF + | END + | DOT_DOT + | BAR_BAR + | UPCAST + | DOWNCAST + | NULL + | RESERVED + | MODULE + | NAMESPACE + | DELEGATE + | CONSTRAINT + | BASE + | LQUOTE of (string * bool) + | RQUOTE of (string * bool) + | RQUOTE_DOT of (string * bool) + | PERCENT_OP of (string) + | BINDER of (string) + | LESS of (bool) + | GREATER of (bool) + | LET of (bool) + | YIELD of (bool) + | YIELD_BANG of (bool) + | BIGNUM of ((string * string)) + | DECIMAL of (System.Decimal) + | CHAR of (char) + | IEEE64 of (double) + | IEEE32 of (single) + | NATIVEINT of (int64) + | UNATIVEINT of (uint64) + | UINT64 of (uint64) + | UINT32 of (uint32) + | UINT16 of (uint16) + | UINT8 of (byte) + | INT64 of (int64 * bool) + | INT32 of (int32 * bool) + | INT32_DOT_DOT of (int32 * bool) + | INT16 of (int16 * bool) + | INT8 of (sbyte * bool) + | FUNKY_OPERATOR_NAME of (string) + | ADJACENT_PREFIX_OP of (string) + | PLUS_MINUS_OP of (string) + | INFIX_AMP_OP of (string) + | INFIX_STAR_DIV_MOD_OP of (string) + | PREFIX_OP of (string) + | INFIX_BAR_OP of (string) + | INFIX_AT_HAT_OP of (string) + | INFIX_COMPARE_OP of (string) + | INFIX_STAR_STAR_OP of (string) + | IDENT of (string) + | KEYWORD_STRING of (string) + | STRING of (string) + | BYTEARRAY of (byte[]) +type tokenId = + | TOKEN_HASH_IF + | TOKEN_HASH_ELSE + | TOKEN_HASH_ENDIF + | TOKEN_COMMENT + | TOKEN_WHITESPACE + | TOKEN_HASH_LINE + | TOKEN_HASH_LIGHT + | TOKEN_INACTIVECODE + | TOKEN_LINE_COMMENT + | TOKEN_STRING_TEXT + | TOKEN_EOF + | TOKEN_LEX_FAILURE + | TOKEN_ODUMMY + | TOKEN_OINTERFACE_MEMBER + | TOKEN_OBLOCKEND + | TOKEN_OBLOCKEND_COMING_SOON + | TOKEN_OBLOCKEND_IS_HERE + | TOKEN_ORIGHT_BLOCK_END + | TOKEN_ODECLEND + | TOKEN_OEND + | TOKEN_OBLOCKSEP + | TOKEN_OBLOCKBEGIN + | TOKEN_ORESET + | TOKEN_OFUN + | TOKEN_OFUNCTION + | TOKEN_OWITH + | TOKEN_OELSE + | TOKEN_OTHEN + | TOKEN_ODO_BANG + | TOKEN_ODO + | TOKEN_OBINDER + | TOKEN_OLET + | TOKEN_HIGH_PRECEDENCE_TYAPP + | TOKEN_HIGH_PRECEDENCE_PAREN_APP + | TOKEN_HIGH_PRECEDENCE_BRACK_APP + | TOKEN_TYPE_COMING_SOON + | TOKEN_TYPE_IS_HERE + | TOKEN_MODULE_COMING_SOON + | TOKEN_MODULE_IS_HERE + | TOKEN_EXTERN + | TOKEN_VOID + | TOKEN_PUBLIC + | TOKEN_PRIVATE + | TOKEN_INTERNAL + | TOKEN_GLOBAL + | TOKEN_STATIC + | TOKEN_MEMBER + | TOKEN_CLASS + | TOKEN_ABSTRACT + | TOKEN_OVERRIDE + | TOKEN_DEFAULT + | TOKEN_CONSTRUCTOR + | TOKEN_INHERIT + | TOKEN_GREATER_RBRACK + | TOKEN_STRUCT + | TOKEN_SIG + | TOKEN_BAR + | TOKEN_RBRACK + | TOKEN_RBRACE + | TOKEN_RBRACE_COMING_SOON + | TOKEN_RBRACE_IS_HERE + | TOKEN_MINUS + | TOKEN_DOLLAR + | TOKEN_LBRACE_LESS + | TOKEN_BAR_RBRACK + | TOKEN_GREATER_RBRACE + | TOKEN_UNDERSCORE + | TOKEN_SEMICOLON_SEMICOLON + | TOKEN_LARROW + | TOKEN_EQUALS + | TOKEN_LBRACK + | TOKEN_LBRACK_BAR + | TOKEN_LBRACK_LESS + | TOKEN_LBRACE + | TOKEN_QMARK + | TOKEN_QMARK_QMARK + | TOKEN_DOT + | TOKEN_COLON + | TOKEN_COLON_COLON + | TOKEN_COLON_GREATER + | TOKEN_COLON_QMARK_GREATER + | TOKEN_COLON_QMARK + | TOKEN_COLON_EQUALS + | TOKEN_SEMICOLON + | TOKEN_WHEN + | TOKEN_WHILE + | TOKEN_WITH + | TOKEN_HASH + | TOKEN_AMP + | TOKEN_AMP_AMP + | TOKEN_QUOTE + | TOKEN_LPAREN + | TOKEN_RPAREN + | TOKEN_RPAREN_COMING_SOON + | TOKEN_RPAREN_IS_HERE + | TOKEN_STAR + | TOKEN_COMMA + | TOKEN_RARROW + | TOKEN_GREATER_BAR_RBRACK + | TOKEN_LPAREN_STAR_RPAREN + | TOKEN_OPEN + | TOKEN_OR + | TOKEN_REC + | TOKEN_THEN + | TOKEN_TO + | TOKEN_TRUE + | TOKEN_TRY + | TOKEN_TYPE + | TOKEN_VAL + | TOKEN_INLINE + | TOKEN_INTERFACE + | TOKEN_INSTANCE + | TOKEN_CONST + | TOKEN_LAZY + | TOKEN_OLAZY + | TOKEN_MATCH + | TOKEN_MUTABLE + | TOKEN_NEW + | TOKEN_OF + | TOKEN_EXCEPTION + | TOKEN_FALSE + | TOKEN_FOR + | TOKEN_FUN + | TOKEN_FUNCTION + | TOKEN_IF + | TOKEN_IN + | TOKEN_JOIN_IN + | TOKEN_FINALLY + | TOKEN_DO_BANG + | TOKEN_AND + | TOKEN_AS + | TOKEN_ASSERT + | TOKEN_OASSERT + | TOKEN_ASR + | TOKEN_BEGIN + | TOKEN_DO + | TOKEN_DONE + | TOKEN_DOWNTO + | TOKEN_ELSE + | TOKEN_ELIF + | TOKEN_END + | TOKEN_DOT_DOT + | TOKEN_BAR_BAR + | TOKEN_UPCAST + | TOKEN_DOWNCAST + | TOKEN_NULL + | TOKEN_RESERVED + | TOKEN_MODULE + | TOKEN_NAMESPACE + | TOKEN_DELEGATE + | TOKEN_CONSTRAINT + | TOKEN_BASE + | TOKEN_LQUOTE + | TOKEN_RQUOTE + | TOKEN_RQUOTE_DOT + | TOKEN_PERCENT_OP + | TOKEN_BINDER + | TOKEN_LESS + | TOKEN_GREATER + | TOKEN_LET + | TOKEN_YIELD + | TOKEN_YIELD_BANG + | TOKEN_BIGNUM + | TOKEN_DECIMAL + | TOKEN_CHAR + | TOKEN_IEEE64 + | TOKEN_IEEE32 + | TOKEN_NATIVEINT + | TOKEN_UNATIVEINT + | TOKEN_UINT64 + | TOKEN_UINT32 + | TOKEN_UINT16 + | TOKEN_UINT8 + | TOKEN_INT64 + | TOKEN_INT32 + | TOKEN_INT32_DOT_DOT + | TOKEN_INT16 + | TOKEN_INT8 + | TOKEN_FUNKY_OPERATOR_NAME + | TOKEN_ADJACENT_PREFIX_OP + | TOKEN_PLUS_MINUS_OP + | TOKEN_INFIX_AMP_OP + | TOKEN_INFIX_STAR_DIV_MOD_OP + | TOKEN_PREFIX_OP + | TOKEN_INFIX_BAR_OP + | TOKEN_INFIX_AT_HAT_OP + | TOKEN_INFIX_COMPARE_OP + | TOKEN_INFIX_STAR_STAR_OP + | TOKEN_IDENT + | TOKEN_KEYWORD_STRING + | TOKEN_STRING + | TOKEN_BYTEARRAY + | TOKEN_end_of_input + | TOKEN_error +type nonTerminalId = + | NONTERM__startsignatureFile + | NONTERM__startimplementationFile + | NONTERM__startinteraction + | NONTERM_interaction + | NONTERM_hashDirective + | NONTERM_stringOrKeywordString + | NONTERM_hashDirectiveArg + | NONTERM_hashDirectiveArgs + | NONTERM_interactiveTerminator + | NONTERM_interactiveItemsTerminator + | NONTERM_interactiveModuleDefns + | NONTERM_interactiveExpr + | NONTERM_interactiveHash + | NONTERM_signatureFile + | NONTERM_implementationFile + | NONTERM_moduleIntro + | NONTERM_namespaceIntro + | NONTERM_fileNamespaceSpecs + | NONTERM_fileNamespaceSpecList + | NONTERM_fileNamespaceSpec + | NONTERM_fileNamespaceImpls + | NONTERM_fileNamespaceImplList + | NONTERM_fileNamespaceImpl + | NONTERM_fileModuleSpec + | NONTERM_fileModuleImpl + | NONTERM_moduleSpfnsPossiblyEmptyBlock + | NONTERM_moduleSpfnsPossiblyEmpty + | NONTERM_moduleSpfns + | NONTERM_moduleDefnsOrExprPossiblyEmptyOrBlock + | NONTERM_moduleDefnsOrExprPossiblyEmpty + | NONTERM_moduleDefnsOrExpr + | NONTERM_moduleDefns + | NONTERM_moduleDefnOrDirective + | NONTERM_moduleDefn + | NONTERM_namedModuleAbbrevBlock + | NONTERM_namedModuleDefnBlock + | NONTERM_wrappedNamedModuleDefn + | NONTERM_opt_signature + | NONTERM_tyconDefnAugmentation + | NONTERM_moduleSpfn + | NONTERM_valSpfn + | NONTERM_opt_literalValue + | NONTERM_moduleSpecBlock + | NONTERM_opt_attributes + | NONTERM_attributes + | NONTERM_attributeList + | NONTERM_attributeListElements + | NONTERM_attribute + | NONTERM_attributeTarget + | NONTERM_tyconSpfns + | NONTERM_tyconSpfnList + | NONTERM_tyconSpfn + | NONTERM_tyconSpfnRhsBlock + | NONTERM_tyconSpfnRhs + | NONTERM_tyconClassSpfn + | NONTERM_classSpfnBlockKindUnspecified + | NONTERM_classSpfnBlock + | NONTERM_classSpfnMembers + | NONTERM_classSpfnMembersAtLeastOne + | NONTERM_memberFlags + | NONTERM_memberSpecFlags + | NONTERM_classMemberSpfnGetSet + | NONTERM_classMemberSpfnGetSetElements + | NONTERM_classMemberSpfn + | NONTERM_typeNameInfo + | NONTERM_tyconDefnList + | NONTERM_tyconDefn + | NONTERM_tyconDefnRhsBlock + | NONTERM_tyconDefnRhs + | NONTERM_tyconClassDefn + | NONTERM_classDefnBlockKindUnspecified + | NONTERM_classDefnBlock + | NONTERM_classDefnMembers + | NONTERM_classDefnMembersAtLeastOne + | NONTERM_classDefnMemberGetSet + | NONTERM_classDefnMemberGetSetElements + | NONTERM_classDefnMemberGetSetElement + | NONTERM_memberCore + | NONTERM_abstractMemberFlags + | NONTERM_classDefnMember + | NONTERM_valDefnDecl + | NONTERM_autoPropsDefnDecl + | NONTERM_opt_typ + | NONTERM_atomicPatternLongIdent + | NONTERM_opt_access + | NONTERM_access + | NONTERM_opt_declVisibility + | NONTERM_opt_interfaceImplDefn + | NONTERM_opt_classDefn + | NONTERM_opt_classSpfn + | NONTERM_inheritsDefn + | NONTERM_optAsSpec + | NONTERM_asSpec + | NONTERM_optBaseSpec + | NONTERM_baseSpec + | NONTERM_objectImplementationBlock + | NONTERM_objectImplementationMembers + | NONTERM_objectImplementationMember + | NONTERM_memberOrOverride + | NONTERM_tyconDefnOrSpfnSimpleRepr + | NONTERM_braceFieldDeclList + | NONTERM_inlineAssemblyTyconRepr + | NONTERM_classOrInterfaceOrStruct + | NONTERM_interfaceMember + | NONTERM_tyconNameAndTyparDecls + | NONTERM_prefixTyparDecls + | NONTERM_prefixTyparDeclList + | NONTERM_typarDecl + | NONTERM_postfixTyparDecls + | NONTERM_explicitValTyparDeclsCore + | NONTERM_explicitValTyparDecls + | NONTERM_opt_explicitValTyparDecls + | NONTERM_opt_explicitValTyparDecls2 + | NONTERM_opt_typeConstraints + | NONTERM_typeConstraints + | NONTERM_typeConstraint + | NONTERM_typarAlts + | NONTERM_unionRepr + | NONTERM_barAndgrabXmlDoc + | NONTERM_attrUnionCaseDecls + | NONTERM_attrUnionCaseDecl + | NONTERM_unionCaseName + | NONTERM_firstUnionCaseDeclOfMany + | NONTERM_firstUnionCaseDecl + | NONTERM_unionCaseRepr + | NONTERM_recdFieldDeclList + | NONTERM_recdFieldDecl + | NONTERM_fieldDecl + | NONTERM_exconDefn + | NONTERM_exconSpfn + | NONTERM_exceptionAndGrabDoc + | NONTERM_exconCore + | NONTERM_exconIntro + | NONTERM_exconRepr + | NONTERM_openDecl + | NONTERM_defnBindings + | NONTERM_doBinding + | NONTERM_hardwhiteLetBindings + | NONTERM_hardwhiteDoBinding + | NONTERM_classDefnBindings + | NONTERM_hardwhiteDefnBindingsTerminator + | NONTERM_cPrototype + | NONTERM_cArgs + | NONTERM_cMoreArgs + | NONTERM_cArg + | NONTERM_cType + | NONTERM_cRetType + | NONTERM_localBindings + | NONTERM_moreLocalBindings + | NONTERM_attr_localBinding + | NONTERM_localBinding + | NONTERM_typedExprWithStaticOptimizationsBlock + | NONTERM_typedExprWithStaticOptimizations + | NONTERM_opt_staticOptimizations + | NONTERM_staticOptimization + | NONTERM_staticOptimizationConditions + | NONTERM_staticOptimizationCondition + | NONTERM_rawConstant + | NONTERM_constant + | NONTERM_bindingPattern + | NONTERM_simplePattern + | NONTERM_simplePatternCommaList + | NONTERM_simplePatterns + | NONTERM_headBindingPattern + | NONTERM_tuplePatternElements + | NONTERM_conjPatternElements + | NONTERM_constrPattern + | NONTERM_atomicPatterns + | NONTERM_atomicPattern + | NONTERM_parenPatternBody + | NONTERM_parenPattern + | NONTERM_tupleParenPatternElements + | NONTERM_conjParenPatternElements + | NONTERM_recordPatternElements + | NONTERM_recordPatternElementsAux + | NONTERM_recordPatternElement + | NONTERM_listPatternElements + | NONTERM_typedSeqExprBlock + | NONTERM_declExprBlock + | NONTERM_typedSeqExprBlockR + | NONTERM_typedSeqExpr + | NONTERM_seqExpr + | NONTERM_recover + | NONTERM_declExpr + | NONTERM_dynamicArg + | NONTERM_withClauses + | NONTERM_withPatternClauses + | NONTERM_patternAndGuard + | NONTERM_patternClauses + | NONTERM_patternGuard + | NONTERM_patternResult + | NONTERM_ifExprCases + | NONTERM_ifExprThen + | NONTERM_ifExprElifs + | NONTERM_tupleExpr + | NONTERM_minusExpr + | NONTERM_appExpr + | NONTERM_argExpr + | NONTERM_atomicExpr + | NONTERM_atomicExprQualification + | NONTERM_optRange + | NONTERM_atomicExprAfterType + | NONTERM_beginEndExpr + | NONTERM_quoteExpr + | NONTERM_arrayExpr + | NONTERM_parenExpr + | NONTERM_parenExprBody + | NONTERM_staticallyKnownHeadTypars + | NONTERM_staticallyKnownHeadTyparAlts + | NONTERM_braceExpr + | NONTERM_braceExprBody + | NONTERM_listExprElements + | NONTERM_monadicExprInitial + | NONTERM_rangeSequenceExpr + | NONTERM_monadicSingleLineQualifiersThenArrowThenExprR + | NONTERM_forLoopBinder + | NONTERM_forLoopRange + | NONTERM_inlineAssemblyExpr + | NONTERM_opt_curriedArgExprs + | NONTERM_opt_atomicExprAfterType + | NONTERM_opt_inlineAssemblyTypeArg + | NONTERM_opt_inlineAssemblyReturnTypes + | NONTERM_recdExpr + | NONTERM_opt_seps_recd + | NONTERM_seps_recd + | NONTERM_pathOrUnderscore + | NONTERM_recdExprBindings + | NONTERM_recdBinding + | NONTERM_objExpr + | NONTERM_objExprBaseCall + | NONTERM_opt_objExprBindings + | NONTERM_objExprBindings + | NONTERM_objExprInterfaces + | NONTERM_opt_objExprInterfaces + | NONTERM_objExprInterface + | NONTERM_forLoopDirection + | NONTERM_anonLambdaExpr + | NONTERM_anonMatchingExpr + | NONTERM_typeWithTypeConstraints + | NONTERM_topTypeWithTypeConstraints + | NONTERM_opt_topReturnTypeWithTypeConstraints + | NONTERM_topType + | NONTERM_topTupleType + | NONTERM_topTupleTypeElements + | NONTERM_topAppType + | NONTERM_typ + | NONTERM_tupleType + | NONTERM_tupleOrQuotTypeElements + | NONTERM_tupleTypeElements + | NONTERM_appTypeCon + | NONTERM_appTypeConPower + | NONTERM_appType + | NONTERM_arrayTypeSuffix + | NONTERM_appTypePrefixArguments + | NONTERM_typeArgListElements + | NONTERM_powerType + | NONTERM_appTypeNonAtomicDeprecated + | NONTERM_powerTypeNonAtomicDeprecated + | NONTERM_atomType + | NONTERM_typeArgsNoHpaDeprecated + | NONTERM_typeArgsActual + | NONTERM_typeArgActual + | NONTERM_typeArgActualOrDummyIfEmpty + | NONTERM_dummyTypeArg + | NONTERM_measureTypeArg + | NONTERM_measureTypeAtom + | NONTERM_measureTypePower + | NONTERM_measureTypeSeq + | NONTERM_measureTypeExpr + | NONTERM_typar + | NONTERM_staticallyKnownHeadTypar + | NONTERM_ident + | NONTERM_path + | NONTERM_opName + | NONTERM_operatorName + | NONTERM_barName + | NONTERM_barNames + | NONTERM_identOrOp + | NONTERM_pathOp + | NONTERM_nameop + | NONTERM_topSeparator + | NONTERM_topSeparators + | NONTERM_interactiveSeparator + | NONTERM_interactiveSeparators + | NONTERM_opt_interactiveSeparators + | NONTERM_opt_topSeparators + | NONTERM_seps + | NONTERM_declEnd + | NONTERM_opt_declEnd + | NONTERM_opt_ODECLEND + | NONTERM_deprecated_opt_equals + | NONTERM_opt_OBLOCKSEP + | NONTERM_opt_seps + | NONTERM_opt_rec + | NONTERM_opt_bar + | NONTERM_opt_inline + | NONTERM_opt_mutable + | NONTERM_doToken + | NONTERM_doneDeclEnd + | NONTERM_structOrBegin + | NONTERM_sigOrBegin + | NONTERM_colonOrEquals + | NONTERM_opt_HASH + | NONTERM_opt_HIGH_PRECEDENCE_APP + | NONTERM_opt_HIGH_PRECEDENCE_TYAPP + | NONTERM_type_keyword + | NONTERM_module_keyword + | NONTERM_rbrace + | NONTERM_rparen + | NONTERM_oblockend + | NONTERM_ends_other_than_rparen_coming_soon_or_recover + | NONTERM_ends_coming_soon_or_recover +/// This function maps integers indexes to symbolic token ids +val tagOfToken: token -> int + +/// This function maps integers indexes to symbolic token ids +val tokenTagToTokenId: int -> tokenId + +/// This function maps production indexes returned in syntax errors to strings representing the non terminal that would be produced by that production +val prodIdxToNonTerminal: int -> nonTerminalId + +/// This function gets the name of a token as a string +val token_to_string: token -> string +val signatureFile : (Internal.Utilities.Text.Lexing.LexBuffer<'cty> -> token) -> Internal.Utilities.Text.Lexing.LexBuffer<'cty> -> (Ast.ParsedSigFile) +val implementationFile : (Internal.Utilities.Text.Lexing.LexBuffer<'cty> -> token) -> Internal.Utilities.Text.Lexing.LexBuffer<'cty> -> (Ast.ParsedImplFile) +val interaction : (Internal.Utilities.Text.Lexing.LexBuffer<'cty> -> token) -> Internal.Utilities.Text.Lexing.LexBuffer<'cty> -> (Ast.ParsedFsiInteraction) diff --git a/src/fsharp/FSharp.Build-proto/FSBuild.resx b/src/fsharp/FSharp.Build-proto/FSBuild.resx new file mode 100644 index 0000000..c1b967e --- /dev/null +++ b/src/fsharp/FSharp.Build-proto/FSBuild.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ToolPath is unknown; specify the path to fsc.exe as the ToolPath property. + + \ No newline at end of file diff --git a/src/fsharp/FSharp.Build-proto/FSharp.Build-proto.fsproj b/src/fsharp/FSharp.Build-proto/FSharp.Build-proto.fsproj new file mode 100644 index 0000000..860d623 --- /dev/null +++ b/src/fsharp/FSharp.Build-proto/FSharp.Build-proto.fsproj @@ -0,0 +1,66 @@ + + + + + $(MSBuildProjectDirectory)\..\.. + Proto + AnyCPU + + + + Library + FSharp.Build-proto + true + BUILDING_WITH_LKG;$(DefineConstants) + LKG + {D8BC791F-C1A9-49DC-9432-0F3090537555} + v4.0 + + + + + + + + + CompilerLocationUtils.fs + + + CreateFSharpManifestResourceName.fsi + + + CreateFSharpManifestResourceName.fs + + + + Fsc.fsi + + + Fsc.fs + + + PreserveNewest + + + + + + + + + + + + + + + diff --git a/src/fsharp/FSharp.Build-proto/Makefile.in b/src/fsharp/FSharp.Build-proto/Makefile.in new file mode 100644 index 0000000..60a0463 --- /dev/null +++ b/src/fsharp/FSharp.Build-proto/Makefile.in @@ -0,0 +1,40 @@ +NAME=FSharp.Build-proto +ASSEMBLY = $(NAME).dll + +srcdir := @abs_srcdir@/ + +include @abs_top_builddir@/config.make + +CONFIG=proto + +FSC=$(bootstrapdir)fsc.exe + +FLAGS += --target:library + +DEFINES += \ + --define:BUILDING_WITH_LKG + +REFERENCES += \ + -r:$(bootstrapdir)FSharp.Core.dll + +sources= \ + $(tmpdir)FSBuild.fs \ + ../../utils/CompilerLocationUtils.fs \ + ../FSharp.Build/CreateFSharpManifestResourceName.fsi \ + ../FSharp.Build/CreateFSharpManifestResourceName.fs \ + ../FSharp.Build/Fsc.fsi \ + ../FSharp.Build/Fsc.fs + +RESOURCES = \ + $(tmpdir)FSBuild.resources + +$(tmpdir)FSBuild.fs $(tmpdir)FSBuild.resources: ../FSharp.Build/FSBuild.txt + mono $(MONO_OPTIONS) $(FSSRGEN) $< $(tmpdir)FSBuild.fs $(tmpdir)FSBuild.resx + resgen $(tmpdir)FSBuild.resx $(tmpdir)FSBuild.resources + +do-proto: do-4-0 + +clean: clean-4-0 + +include $(topdir)/src/fsharp/targets.make + diff --git a/src/fsharp/FSharp.Build-proto/Microsoft.FSharp-proto.targets b/src/fsharp/FSharp.Build-proto/Microsoft.FSharp-proto.targets new file mode 100644 index 0000000..0c11dd3 --- /dev/null +++ b/src/fsharp/FSharp.Build-proto/Microsoft.FSharp-proto.targets @@ -0,0 +1,246 @@ + + + + + + + + + + true + true + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + .fs + F# + Managed + $(Optimize) + Software\Microsoft\Microsoft SDKs\$(TargetFrameworkIdentifier) + + RootNamespace + false + $(Prefer32Bit) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_Temporary Remove="@(_Temporary)" /> + + + + + + + + + + + + + + + + + + + + <_Temporary Remove="@(_Temporary)" /> + + + + + + + + + <_DebugSymbolsIntermediatePathTemporary Include="$(PdbFile)"/> + + <_DebugSymbolsIntermediatePath Include="@(_DebugSymbolsIntermediatePathTemporary->'%(RootDir)%(Directory)%(Filename).pdb')"/> + + + + + + + + + + + + + + + + + + + <_CoreCompileResourceInputs Remove="@(_CoreCompileResourceInputs)" /> + + + + + + + + + + diff --git a/src/fsharp/FSharp.Build/CreateFSharpManifestResourceName.fs b/src/fsharp/FSharp.Build/CreateFSharpManifestResourceName.fs new file mode 100644 index 0000000..442d8d1 --- /dev/null +++ b/src/fsharp/FSharp.Build/CreateFSharpManifestResourceName.fs @@ -0,0 +1,65 @@ +namespace Microsoft.FSharp.Build +open System +open System.IO +open System.Text +open Microsoft.Build.Tasks +open Microsoft.Build.Utilities + +type CreateFSharpManifestResourceName public () = + inherit CreateCSharpManifestResourceName() + + override this.CreateManifestName + ((fileName:string), + (linkFileName:string), + (rootNamespace:string), (* may be null *) + (dependentUponFileName:string), (* may be null *) + (binaryStream:System.IO.Stream) (* may be null *)) : string = + + // The Visual CSharp and XBuild CSharp toolchains transform resource names like this: + // SubDir\abc.resx --> SubDir.abc.resources + // SubDir\abc.txt --> SubDir.abc.txt + // + // For resx resources, both the Visual FSharp and XBuild FSHarp toolchains do the right thing, i.e. + // SubDir\abc.resx --> SubDir.abc.resources + // + // However for non-resx resources, for some reason Visual FSharp does _not_ add the directory name to the resource name. + // It is very unclear where the directory name gets dropped in the Visual FSharp implementation + // - is it in Microsoft.Common.targets, Microfost.FSharp.targets or how the base type CreateCSharpManifestResourceName + // is created and used - who knows, the code is not easy to understand despite it doing something very simple. That's + // the nature of MSBuild/XBuild.... + // + // Anyway, dropping the directory name seems like a mistake. But we attempt to replicate the behaviour here + // for consistency with Visual FSharp. This may not be the right place to do this and this many not be consistent + // when cultures are used - that case has not been tested. + + let fileName = if fileName.EndsWith(".resources", StringComparison.OrdinalIgnoreCase) then fileName else Path.GetFileName(fileName) + let linkFileName = if linkFileName.EndsWith(".resources", StringComparison.OrdinalIgnoreCase) then linkFileName else Path.GetFileName(linkFileName) + + let embeddedFileName = + match linkFileName with + | null -> fileName + | _ -> linkFileName + + // since we do not support resources dependent on a form, we always pass null for a binary stream + // rootNamespace is always empty - we do not support it + let cSharpResult = base.CreateManifestName(fileName, linkFileName, "", dependentUponFileName, null) + //printfn "(fileName,linkFileName,embeddedFileName,rootNamespace) = '%A'" (fileName, linkFileName, embeddedFileName, rootNamespace) + //printfn "cSharpResult = '%s'" cSharpResult + // Workaround that makes us keep .resources extension on both 3.5 and 3.5SP1 + // 3.5 stripped ".resources", 3.5 SP1 does not. We should do 3.5SP1 thing + let extensionToWorkaround = ".resources" + let fSharpResult = + if embeddedFileName.EndsWith(extensionToWorkaround, StringComparison.OrdinalIgnoreCase) + && not (cSharpResult.EndsWith(extensionToWorkaround, StringComparison.OrdinalIgnoreCase)) then + cSharpResult + extensionToWorkaround + else + cSharpResult + + //printfn "fSharpResult = '%s'" fSharpResult + fSharpResult + + + override this.IsSourceFile (filename:string) = + let extension = Path.GetExtension(filename) + (String.Equals(extension, ".fs", StringComparison.OrdinalIgnoreCase) || + String.Equals(extension, ".ml", StringComparison.OrdinalIgnoreCase)) \ No newline at end of file diff --git a/src/fsharp/FSharp.Build/CreateFSharpManifestResourceName.fsi b/src/fsharp/FSharp.Build/CreateFSharpManifestResourceName.fsi new file mode 100644 index 0000000..af07a1c --- /dev/null +++ b/src/fsharp/FSharp.Build/CreateFSharpManifestResourceName.fsi @@ -0,0 +1,7 @@ + +namespace Microsoft.FSharp.Build + +[] +type CreateFSharpManifestResourceName = + inherit Microsoft.Build.Tasks.CreateCSharpManifestResourceName + public new : unit -> CreateFSharpManifestResourceName diff --git a/src/fsharp/FSharp.Build/FSBuild.resx b/src/fsharp/FSharp.Build/FSBuild.resx new file mode 100644 index 0000000..c1b967e --- /dev/null +++ b/src/fsharp/FSharp.Build/FSBuild.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ToolPath is unknown; specify the path to fsc.exe as the ToolPath property. + + \ No newline at end of file diff --git a/src/fsharp/FSharp.Build/FSBuild.txt b/src/fsharp/FSharp.Build/FSBuild.txt new file mode 100644 index 0000000..89840c0 --- /dev/null +++ b/src/fsharp/FSharp.Build/FSBuild.txt @@ -0,0 +1,2 @@ +# FSharp.Build resource strings +toolpathUnknown,"ToolPath is unknown; specify the path to fsc.exe as the ToolPath property." \ No newline at end of file diff --git a/src/fsharp/FSharp.Build/FSharp.Build.fsproj b/src/fsharp/FSharp.Build/FSharp.Build.fsproj new file mode 100644 index 0000000..7fbe353 --- /dev/null +++ b/src/fsharp/FSharp.Build/FSharp.Build.fsproj @@ -0,0 +1,59 @@ + + + + + $(MSBuildProjectDirectory)\..\.. + 10.0.0 + 2.0 + False + + + + Debug + AnyCPU + Library + FSharp.Build + true + {702A7979-BCF9-4C41-853E-3ADFC9897890} + + + + + + + FSBuild.txt + + + assemblyinfo.FSharp.Build.dll.fs + + + CompilerLocationUtils.fs + + + + + + + PreserveNewest + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/fsharp/FSharp.Build/Fsc.fs b/src/fsharp/FSharp.Build/Fsc.fs new file mode 100644 index 0000000..a5d7044 --- /dev/null +++ b/src/fsharp/FSharp.Build/Fsc.fs @@ -0,0 +1,542 @@ + + +namespace Microsoft.FSharp.Build + +open System +open System.Text +open System.Diagnostics.CodeAnalysis +open System.Reflection +open Microsoft.Build.Framework +open Microsoft.Build.Utilities +open Internal.Utilities + +[] +[] + +[] +do() + + +type FscCommandLineBuilder() = + // In addition to generating a command-line that will be handed to cmd.exe, we also generate + // an array of individual arguments. The former needs to be quoted (and cmd.exe will strip the + // quotes while parsing), whereas the latter is not. See bug 4357 for background; this helper + // class gets us out of the business of unparsing-then-reparsing arguments. + + let builder = new CommandLineBuilder() + let mutable args = [] // in reverse order + let mutable srcs = [] // in reverse order + let mutable alreadyCalledWithFilenames = false + /// Return a list of the arguments (with no quoting for the cmd.exe shell) + member x.CapturedArguments() = + assert(not alreadyCalledWithFilenames) + List.rev args + /// Return a list of the sources (with no quoting for the cmd.exe shell) + member x.CapturedFilenames() = + assert(alreadyCalledWithFilenames) + List.rev srcs + /// Return a full command line (with quoting for the cmd.exe shell) + override x.ToString() = + builder.ToString() + + member x.AppendFileNamesIfNotNull(filenames:ITaskItem array, sep:string) = + builder.AppendFileNamesIfNotNull(filenames, sep) + // do not update "args", not used + for item in filenames do + let tmp = new CommandLineBuilder() + tmp.AppendSwitchUnquotedIfNotNull("", item.ItemSpec) // we don't want to quote the filename, this is a way to get that + let s = tmp.ToString() + if s <> String.Empty then + srcs <- tmp.ToString() :: srcs + alreadyCalledWithFilenames <- true + + member x.AppendSwitchIfNotNull(switch:string, values:string array, sep:string) = + builder.AppendSwitchIfNotNull(switch, values, sep) + let tmp = new CommandLineBuilder() + tmp.AppendSwitchUnquotedIfNotNull(switch, values, sep) + let s = tmp.ToString() + if s <> String.Empty then + args <- s :: args + + member x.AppendSwitchIfNotNull(switch:string, value:string) = + builder.AppendSwitchIfNotNull(switch, value) + let tmp = new CommandLineBuilder() + tmp.AppendSwitchUnquotedIfNotNull(switch, value) + let s = tmp.ToString() + if s <> String.Empty then + args <- s :: args + + member x.AppendSwitchUnquotedIfNotNull(switch:string, value:string) = + assert(switch = "") // we only call this method for "OtherFlags" + // Unfortunately we still need to mimic what cmd.exe does, but only for "OtherFlags". + let ParseCommandLineArgs(commandLine:string) = // returns list in reverse order + let mutable args = [] + let mutable i = 0 // index into commandLine + let len = commandLine.Length + while i < len do + // skip whitespace + while i < len && System.Char.IsWhiteSpace(commandLine, i) do + i <- i + 1 + if i < len then + // parse an argument + let sb = new StringBuilder() + let mutable finished = false + let mutable insideQuote = false + while i < len && not finished do + match commandLine.[i] with + | '"' -> insideQuote <- not insideQuote; i <- i + 1 + | c when not insideQuote && System.Char.IsWhiteSpace(c) -> finished <- true + | c -> sb.Append(c) |> ignore; i <- i + 1 + args <- sb.ToString() :: args + args + builder.AppendSwitchUnquotedIfNotNull(switch, value) + let tmp = new CommandLineBuilder() + tmp.AppendSwitchUnquotedIfNotNull(switch, value) + let s = tmp.ToString() + if s <> String.Empty then + args <- ParseCommandLineArgs(s) @ args + + member x.AppendSwitch(switch:string) = + builder.AppendSwitch(switch) + args <- switch :: args + +//There are a lot of flags on fsc.exe. +//For now, not all of them are represented in the "Fsc class" object model. +//The goal is to have the most common/important flags available via the Fsc class, and the +//rest can be "backdoored" through the .OtherFlags property. + +type [] Fsc() as this = + inherit ToolTask() + let mutable baseAddress : string = null + let mutable codePage : string = null + let mutable debugSymbols = false + let mutable debugType : string = null + let mutable defineConstants : ITaskItem[] = [||] + let mutable disabledWarnings : string = null + let mutable documentationFile : string = null + let mutable generateInterfaceFile : string = null + let mutable keyFile : string = null + let mutable noFramework = false + let mutable optimize : bool = true + let mutable tailcalls : bool = true + let mutable otherFlags : string = null + let mutable outputAssembly : string = null + let mutable pdbFile : string = null + let mutable platform : string = null + let mutable prefer32bit : bool = false + let mutable references : ITaskItem[] = [||] + let mutable referencePath : string = null + let mutable resources : ITaskItem[] = [||] + let mutable sources : ITaskItem[] = [||] + let mutable targetType : string = null +#if FX_ATLEAST_35 +#else + let mutable toolExe : string = "fsc.exe" +#endif + let mutable warningLevel : string = null + let mutable treatWarningsAsErrors : bool = false + let mutable warningsAsErrors : string = null + let mutable toolPath : string = + // We expect to find an fsc.exe next to FSharp.Build.dll. Note FSharp.Build.dll + // is not in the GAC, at least on Windows. + let locationOfThisDll = + try Some(System.IO.Path.GetDirectoryName(typeof.Assembly.Location)) + with _ -> None + match FSharpEnvironment.BinFolderOfDefaultFSharpCompiler(locationOfThisDll) with + | Some s -> s + | None -> "" + let mutable versionFile : string = null + let mutable win32res : string = null + let mutable win32manifest : string = null + let mutable vserrors : bool = false + let mutable validateTypeProviders : bool = false + let mutable vslcid : string = null + let mutable utf8output : bool = false + let mutable subsystemVersion : string = null + let mutable highEntropyVA : bool = false + + let mutable capturedArguments : string list = [] // list of individual args, to pass to HostObject Compile() + let mutable capturedFilenames : string list = [] // list of individual source filenames, to pass to HostObject Compile() + + +#if CROSS_PLATFORM_COMPILER + // The properties TargetedRuntimeVersion and CopyLocalDependenciesWhenParentReferenceInGac + // are not available to the cross-platform compiler since they are Windows only (not defined in the Mono + // 4.0 XBuild support). So we only set them if available (to avoid a compile-time dependency). + let runningOnMono = try System.Type.GetType("Mono.Runtime") <> null with e-> false + do if not runningOnMono then + typeof.InvokeMember("YieldDuringToolExecution",(BindingFlags.Instance ||| BindingFlags.SetProperty ||| BindingFlags.Public),null,this,[| box true |]) |> ignore +#else + do + this.YieldDuringToolExecution <- true // See bug 6483; this makes parallel build faster, and is fine to set unconditionally +#endif + // --baseaddress + member fsc.BaseAddress + with get() = baseAddress + and set(s) = baseAddress <- s + // --codepage : Specify the codepage to use when opening source files + member fsc.CodePage + with get() = codePage + and set(s) = codePage <- s + // -g: Produce debug file. Disables optimizations if a -O flag is not given. + member fsc.DebugSymbols + with get() = debugSymbols + and set(b) = debugSymbols <- b + // --debug : Emit debugging information + member fsc.DebugType + with get() = debugType + and set(s) = debugType <- s + // --nowarn : Do not report the given specific warning. + member fsc.DisabledWarnings + with get() = disabledWarnings + and set(a) = disabledWarnings <- a + // --define : Define the given conditional compilation symbol. + member fsc.DefineConstants + with get() = defineConstants + and set(a) = defineConstants <- a + // --doc : Write the xmldoc of the assembly to the given file. + member fsc.DocumentationFile + with get() = documentationFile + and set(s) = documentationFile <- s + // --generate-interface-file : + // Print the inferred interface of the + // assembly to a file. + member fsc.GenerateInterfaceFile + with get() = generateInterfaceFile + and set(s) = generateInterfaceFile <- s + // --keyfile : + // Sign the assembly the given keypair file, as produced + // by the .NET Framework SDK 'sn.exe' tool. This produces + // an assembly with a strong name. This is only relevant if producing + // an assembly to be shared amongst programs from different + // directories, e.g. to be installed in the Global Assembly Cache. + member fsc.KeyFile + with get() = keyFile + and set(s) = keyFile <- s + // --noframework + member fsc.NoFramework + with get() = noFramework + and set(b) = noFramework <- b + // --optimize + member fsc.Optimize + with get() = optimize + and set(p) = optimize <- p + // --tailcalls + member fsc.Tailcalls + with get() = tailcalls + and set(p) = tailcalls <- p + // REVIEW: decide whether to keep this, for now is handy way to deal with as-yet-unimplemented features + member fsc.OtherFlags + with get() = otherFlags + and set(s) = otherFlags <- s + // -o : Name the output file. + member fsc.OutputAssembly + with get() = outputAssembly + and set(s) = outputAssembly <- s + // --pdb : + // Name the debug output file. + member fsc.PdbFile + with get() = pdbFile + and set(s) = pdbFile <- s + // --platform : Limit which platforms this code can run on: + // x86 + // x64 + // Itanium + // anycpu + // anycpu32bitpreferred + member fsc.Platform + with get() = platform + and set(s) = platform <- s + // indicator whether anycpu32bitpreferred is applicable or not + member fsc.Prefer32Bit + with get() = prefer32bit + and set(s) = prefer32bit <- s + // -r : Reference an F# or .NET assembly. + member fsc.References + with get() = references + and set(a) = references <- a + // --lib + member fsc.ReferencePath + with get() = referencePath + and set(s) = referencePath <- s + // --resource : Embed the specified managed resources (.resource). + // Produce .resource files from .resx files using resgen.exe or resxc.exe. + member fsc.Resources + with get() = resources + and set(a) = resources <- a + // source files + member fsc.Sources + with get() = sources + and set(a) = sources <- a + // --target exe: Produce an executable with a console + // --target winexe: Produce an executable which does not have a + // stdin/stdout/stderr + // --target library: Produce a DLL + // --target module: Produce a module that can be added to another assembly + member fsc.TargetType + with get() = targetType + and set(s) = targetType <- s + + // --version-file : + member fsc.VersionFile + with get() = versionFile + and set(s) = versionFile <- s + +#if FX_ATLEAST_35 +#else + // Allow overriding to the executable name "fsc.exe" + member fsc.ToolExe + with get() = toolExe + and set(s) = toolExe<- s +#endif + + // For targeting other folders for "fsc.exe" (or ToolExe if different) + member fsc.ToolPath + with get() = toolPath + and set(s) = toolPath <- s + + // For specifying a win32 native resource file (.res) + member fsc.Win32ResourceFile + with get() = win32res + and set(s) = win32res <- s + + // For specifying a win32 manifest file + member fsc.Win32ManifestFile + with get() = win32manifest + and set(m) = win32manifest <- m + + // For specifying the warning level (0-4) + member fsc.WarningLevel + with get() = warningLevel + and set(s) = warningLevel <- s + + member fsc.TreatWarningsAsErrors + with get() = treatWarningsAsErrors + and set(p) = treatWarningsAsErrors <- p + + member fsc.WarningsAsErrors + with get() = warningsAsErrors + and set(s) = warningsAsErrors <- s + + member fsc.VisualStudioStyleErrors + with get() = vserrors + and set(p) = vserrors <- p + + member fsc.ValidateTypeProviders + with get() = validateTypeProviders + and set(p) = validateTypeProviders <- p + + member fsc.LCID + with get() = vslcid + and set(p) = vslcid <- p + + member fsc.Utf8Output + with get() = utf8output + and set(p) = utf8output <- p + + member fsc.SubsystemVersion + with get() = subsystemVersion + and set(p) = subsystemVersion <- p + + member fsc.HighEntropyVA + with get() = highEntropyVA + and set(p) = highEntropyVA <- p + + // ToolTask methods + override fsc.ToolName = "fsc.exe" + override fsc.StandardErrorEncoding = if utf8output then System.Text.Encoding.UTF8 else base.StandardErrorEncoding + override fsc.StandardOutputEncoding = if utf8output then System.Text.Encoding.UTF8 else base.StandardOutputEncoding + override fsc.GenerateFullPathToTool() = + if toolPath = "" then + raise (new System.InvalidOperationException(FSBuild.SR.toolpathUnknown())) + System.IO.Path.Combine(toolPath, fsc.ToolExe) + member internal fsc.InternalGenerateFullPathToTool() = fsc.GenerateFullPathToTool() // expose for unit testing + member internal fsc.BaseExecuteTool(pathToTool, responseFileCommands, commandLineCommands) = // F# does not allow protected members to be captured by lambdas, this is the standard workaround + base.ExecuteTool(pathToTool, responseFileCommands, commandLineCommands) + /// Intercept the call to ExecuteTool to handle the host compile case. + override fsc.ExecuteTool(pathToTool, responseFileCommands, commandLineCommands) = + let ho = box fsc.HostObject + match ho with + | null -> + base.ExecuteTool(pathToTool, responseFileCommands, commandLineCommands) + | _ -> + let sources = sources|>Array.map(fun i->i.ItemSpec) + let baseCall = fun (dummy : int) -> fsc.BaseExecuteTool(pathToTool, responseFileCommands, commandLineCommands) + // We are using a Converter rather than a "unit->int" because it is too hard to + // figure out how to pass an F# function object via reflection. + let baseCallDelegate = new System.Converter(baseCall) + try + let ret = + (ho.GetType()).InvokeMember("Compile", BindingFlags.Public ||| BindingFlags.NonPublic ||| BindingFlags.InvokeMethod ||| BindingFlags.Instance, null, ho, + [| box baseCallDelegate; box (capturedArguments |> List.toArray); box (capturedFilenames |> List.toArray) |], + System.Globalization.CultureInfo.InvariantCulture) + unbox ret + with + +#if CROSS_PLATFORM_COMPILER + // The type "Microsoft.Build.Exceptions.BuildAbortedException is not available to + // the cross-platform compiler since it is Windows only (not defined in the Mono + // 4.0 XBuild support). So we test for the type using a string comparison. + | :? System.Reflection.TargetInvocationException as tie when (match tie.InnerException with | null -> false | x when x.GetType().Name = "Microsoft.Build.Exceptions.BuildAbortedException" -> true | _ -> false) -> +#else + | :? System.Reflection.TargetInvocationException as tie when (match tie.InnerException with | :? Microsoft.Build.Exceptions.BuildAbortedException -> true | _ -> false) -> +#endif + fsc.Log.LogError(tie.InnerException.Message, [| |]) + -1 // ok, this is what happens when VS IDE cancels the build, no need to assert, just log the build-canceled error and return -1 to denote task failed + | e -> + System.Diagnostics.Debug.Assert(false, "HostObject received by Fsc task did not have a Compile method or the compile method threw an exception. "+(e.ToString())) + reraise() + + override fsc.GenerateCommandLineCommands() = + let builder = new FscCommandLineBuilder() + + // OutputAssembly + builder.AppendSwitchIfNotNull("-o:", outputAssembly) + // CodePage + builder.AppendSwitchIfNotNull("--codepage:", codePage) + // Debug + if debugSymbols then + builder.AppendSwitch("-g") + // DebugType + builder.AppendSwitchIfNotNull("--debug:", + if debugType = null then null else + match debugType.ToUpperInvariant() with + | "NONE" -> null + | "PDBONLY" -> "pdbonly" + | "FULL" -> "full" + | _ -> null) + // NoFramework + if noFramework then + builder.AppendSwitch("--noframework") + // BaseAddress + builder.AppendSwitchIfNotNull("--baseaddress:", baseAddress) + // DefineConstants + if defineConstants <> null then + for item in defineConstants do + if item <> null && item.ItemSpec <> null then + builder.AppendSwitchIfNotNull("--define:", item.ItemSpec) + // DocumentationFile + builder.AppendSwitchIfNotNull("--doc:", documentationFile) + // GenerateInterfaceFile + builder.AppendSwitchIfNotNull("--sig:", generateInterfaceFile) + // KeyFile + builder.AppendSwitchIfNotNull("--keyfile:", keyFile) + // Optimize + if optimize then + builder.AppendSwitch("--optimize+") + else + builder.AppendSwitch("--optimize-") + if not tailcalls then + builder.AppendSwitch("--tailcalls-") + // PdbFile + builder.AppendSwitchIfNotNull("--pdb:", pdbFile) + // Platform + builder.AppendSwitchIfNotNull("--platform:", + let ToUpperInvariant (s:string) = if s = null then null else s.ToUpperInvariant() + match ToUpperInvariant(platform), prefer32bit, ToUpperInvariant(targetType) with + | "ANYCPU", true, "EXE" + | "ANYCPU", true, "WINEXE" -> "anycpu32bitpreferred" + | "ANYCPU", _, _ -> "anycpu" + | "X86" , _, _ -> "x86" + | "X64" , _, _ -> "x64" + | "ITANIUM", _, _ -> "Itanium" + | _ -> null) + // Resources + for item in resources do + builder.AppendSwitchIfNotNull("--resource:", item.ItemSpec) + // VersionFile + builder.AppendSwitchIfNotNull("--versionfile:", versionFile) + // References + for item in references do + builder.AppendSwitchIfNotNull("-r:", item.ItemSpec) + // ReferencePath + let referencePathArray = // create a array of strings + match referencePath with + | null -> null + | _ -> referencePath.Split([|';'; ','|], StringSplitOptions.RemoveEmptyEntries) + + builder.AppendSwitchIfNotNull("--lib:", referencePathArray, ",") + // TargetType + builder.AppendSwitchIfNotNull("--target:", + if targetType = null then null else + match targetType.ToUpperInvariant() with + | "LIBRARY" -> "library" + | "EXE" -> "exe" + | "WINEXE" -> "winexe" + | "MODULE" -> "module" + | _ -> null) + + // NoWarn + match disabledWarnings with + | null -> () + | _ -> builder.AppendSwitchIfNotNull("--nowarn:", disabledWarnings.Split([|' '; ';'; ','; '\r'; '\n'|], StringSplitOptions.RemoveEmptyEntries), ",") + + // WarningLevel + builder.AppendSwitchIfNotNull("--warn:", warningLevel) + + // TreatWarningsAsErrors + if treatWarningsAsErrors then + builder.AppendSwitch("--warnaserror") + + // WarningsAsErrors + // Change warning 76, HashReferenceNotAllowedInNonScript/HashDirectiveNotAllowedInNonScript/HashIncludeNotAllowedInNonScript, into an error + // REVIEW: why is this logic here? In any case these are errors already by default! + let warningsAsErrorsArray = + match warningsAsErrors with + | null -> [|"76"|] + | _ -> (warningsAsErrors + " 76 ").Split([|' '; ';'; ','|], StringSplitOptions.RemoveEmptyEntries) + + builder.AppendSwitchIfNotNull("--warnaserror:", warningsAsErrorsArray, ",") + + + // Win32ResourceFile + builder.AppendSwitchIfNotNull("--win32res:", win32res) + + // Win32ManifestFile + builder.AppendSwitchIfNotNull("--win32manifest:", win32manifest) + + // VisualStudioStyleErrors + if vserrors then + builder.AppendSwitch("--vserrors") + + // ValidateTypeProviders + if validateTypeProviders then + builder.AppendSwitch("--validate-type-providers") + + builder.AppendSwitchIfNotNull("--LCID:", vslcid) + + if utf8output then + builder.AppendSwitch("--utf8output") + + // When building using the fsc task, always emit the "fullpaths" flag to make the output easier + // for the user to parse + builder.AppendSwitch("--fullpaths") + + // When building using the fsc task, also emit "flaterrors" to ensure that multi-line error messages + // aren't trimmed + builder.AppendSwitch("--flaterrors") + + builder.AppendSwitchIfNotNull("--subsystemversion:", subsystemVersion) + if highEntropyVA then + builder.AppendSwitch("--highentropyva+") + else + builder.AppendSwitch("--highentropyva-") + + // OtherFlags - must be second-to-last + builder.AppendSwitchUnquotedIfNotNull("", otherFlags) + capturedArguments <- builder.CapturedArguments() + + // Sources - these have to go last + builder.AppendFileNamesIfNotNull(sources, " ") + capturedFilenames <- builder.CapturedFilenames() + let s = builder.ToString() + s + // expose this to internal components (for nunit testing) + member internal fsc.InternalGenerateCommandLineCommands() = + fsc.GenerateCommandLineCommands() + member internal fsc.InternalExecuteTool(pathToTool, responseFileCommands, commandLineCommands) = + fsc.ExecuteTool(pathToTool, responseFileCommands, commandLineCommands) + +module Attributes = + //[] + do() diff --git a/src/fsharp/FSharp.Build/Fsc.fsi b/src/fsharp/FSharp.Build/Fsc.fsi new file mode 100644 index 0000000..3794515 --- /dev/null +++ b/src/fsharp/FSharp.Build/Fsc.fsi @@ -0,0 +1,55 @@ + +/// This namespace contains FSharp.PowerPack extensions for FSharp.Build.dll. MSBuild tasks for the FsYacc and FsLex tools. +namespace Microsoft.FSharp.Build +type Fsc = class + inherit Microsoft.Build.Utilities.ToolTask + new : unit -> Fsc + override GenerateCommandLineCommands : unit -> System.String + override GenerateFullPathToTool : unit -> System.String + override ToolName : System.String + override StandardErrorEncoding : System.Text.Encoding + override StandardOutputEncoding : System.Text.Encoding + + member internal InternalGenerateFullPathToTool : unit -> System.String + member internal InternalGenerateCommandLineCommands : unit -> System.String + member internal InternalExecuteTool : string * string * string -> int + member BaseAddress : string with get,set + member CodePage : string with get,set + member DebugSymbols : bool with get,set + member DebugType : string with get,set + member DefineConstants : Microsoft.Build.Framework.ITaskItem [] with get,set + member DisabledWarnings : string with get,set + member DocumentationFile : string with get,set + member GenerateInterfaceFile : string with get,set + member KeyFile : string with get,set + member NoFramework : bool with get,set + member Optimize : bool with get,set + member Tailcalls : bool with get,set + member OtherFlags : string with get,set + member OutputAssembly : string with get,set + member PdbFile : string with get,set + member Platform : string with get,set + member Prefer32Bit : bool with get,set + member VersionFile : string with get,set + member References : Microsoft.Build.Framework.ITaskItem [] with get,set + member ReferencePath : string with get,set + member Resources : Microsoft.Build.Framework.ITaskItem [] with get,set + member Sources : Microsoft.Build.Framework.ITaskItem [] with get,set + member TargetType : string with get,set +#if FX_ATLEAST_35 +#else + member ToolExe : string with get,set +#endif + member ToolPath : string with get,set + member TreatWarningsAsErrors : bool with get,set + member Utf8Output : bool with get,set + member VisualStudioStyleErrors : bool with get,set + member ValidateTypeProviders : bool with get,set + member LCID : string with get,set + member WarningLevel : string with get,set + member WarningsAsErrors : string with get,set + member Win32ResourceFile : string with get,set + member Win32ManifestFile : string with get,set + member SubsystemVersion : string with get,set + member HighEntropyVA : bool with get,set + end diff --git a/src/fsharp/FSharp.Build/Makefile.in b/src/fsharp/FSharp.Build/Makefile.in new file mode 100644 index 0000000..8aea6db --- /dev/null +++ b/src/fsharp/FSharp.Build/Makefile.in @@ -0,0 +1,41 @@ +NAME=FSharp.Build +ASSEMBLY = $(NAME).dll +TOKEN=$(SIGN_TOKEN) + +srcdir := @abs_srcdir@/ + +include @abs_top_builddir@/config.make + +FSC=$(protodir)fsc-proto.exe + +FLAGS += \ + $(SIGN_FLAGS) \ + --target:library + +REFERENCES += \ + -r:$(outdir)FSharp.Core.dll + +sources= \ + $(tmpdir)FSBuild.fs \ + ../../assemblyinfo/assemblyinfo.FSharp.Build.dll.fs \ + ../../utils/CompilerLocationUtils.fs \ + Fsc.fsi \ + Fsc.fs \ + CreateFSharpManifestResourceName.fsi \ + CreateFSharpManifestResourceName.fs + +RESOURCES = \ + $(tmpdir)FSBuild.resources + +$(tmpdir)FSBuild.fs $(tmpdir)FSBuild.resources: FSBuild.txt + mono $(MONO_OPTIONS) $(FSSRGEN) $< $(tmpdir)FSBuild.fs $(tmpdir)FSBuild.resx + resgen $(tmpdir)FSBuild.resx $(tmpdir)FSBuild.resources + +include $(topdir)/src/fsharp/targets.make + +do-final: do-2-0 do-4-0 + +clean: clean-2-0 clean-4-0 + +install: install-lib-2 install-lib-4 install-lib-4-5 + diff --git a/src/fsharp/FSharp.Build/Microsoft.FSharp.Targets b/src/fsharp/FSharp.Build/Microsoft.FSharp.Targets new file mode 100644 index 0000000..88453cb --- /dev/null +++ b/src/fsharp/FSharp.Build/Microsoft.FSharp.Targets @@ -0,0 +1,262 @@ + + + + + + + + + + + + + + + + + true + true + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + .fs + F# + Managed + $(Optimize) + Software\Microsoft\Microsoft SDKs\$(TargetFrameworkIdentifier) + + RootNamespace + false + $(Prefer32Bit) + + + + + + + + + false + true + + + + + + <_Temporary Remove="@(_Temporary)" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_Temporary Remove="@(_Temporary)" /> + + + + + + + + + + <_DebugSymbolsIntermediatePathTemporary Include="$(PdbFile)"/> + + <_DebugSymbolsIntermediatePath Include="@(_DebugSymbolsIntermediatePathTemporary->'%(RootDir)%(Directory)%(Filename).pdb')"/> + + + + + + + + + + + + + + + + + + + <_CoreCompileResourceInputs Remove="@(_CoreCompileResourceInputs)" /> + + + + + + + + + + diff --git a/src/fsharp/FSharp.Compiler-proto/FSComp.resx b/src/fsharp/FSharp.Compiler-proto/FSComp.resx new file mode 100644 index 0000000..6c14d26 --- /dev/null +++ b/src/fsharp/FSharp.Compiler-proto/FSComp.resx @@ -0,0 +1,3819 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The namespace '{0}' is not defined + + + The namespace or module '{0}' is not defined + + + The field, constructor or member '{0}' is not defined + + + The value, constructor, namespace or type '{0}' is not defined + + + The value or constructor '{0}' is not defined + + + The value, namespace, type or module '{0}' is not defined + + + The constructor, module or namespace '{0}' is not defined + + + The type '{0}' is not defined + + + The record label or namespace '{0}' is not defined + + + The record label '{0}' is not defined + + + The type parameter '{0}' is not defined + + + The pattern discriminator '{0}' is not defined + + + The non-generic type '{0}' does not expect any type arguments, but here is given {1} type argument(s) + + + Invalid warning number '{0}' + + + Invalid version string '{0}' + + + Invalid version file '{0}' + + + F# Compiler for F# 3.0 {0} + + + Problem with filename '{0}': {1} + + + No inputs specified + + + The output name extension doesn't match the options used. If '-a' or '--target:library' is used the output file name must end with '.dll', if '--target:module' is used the output extension must be '.netmodule', otherwise '.exe'. + + + The '--pdb' option requires the '--debug' option to be used + + + The search directory '{0}' is invalid + + + The search directory '{0}' could not be found + + + '{0}' is not a valid filename + + + '{0}' is not a valid assembly name + + + Unrecognized privacy setting '{0}' for managed resource, valid options are 'public' and 'private' + + + Multiple references to '{0}.dll' are not permitted + + + The file '{0}' is a CLI 1.x version of mscorlib. F# requires CLI version 2.0 or greater. + + + Could not read version from mscorlib.dll + + + The referenced or default base CLI library 'mscorlib' is binary-incompatible with the referenced library '{0}'. Consider recompiling the library or making an explicit reference to a version of this library that matches the CLI version you are using. + + + Unable to read assembly '{0}' + + + The referenced or default base CLI library 'mscorlib' is binary-incompatible with the referenced F# core library '{0}'. Consider recompiling the library or making an explicit reference to a version of this library that matches the CLI version you are using. + + + Assembly resolution failure at or near this location + + + The declarations in this file will be placed in an implicit module '{0}' based on the file name '{1}'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file. + + + Files in libraries or multiple-file applications must begin with a namespace or module declaration, e.g. 'namespace SomeNamespace.SubNamespace' or 'module SomeNamespace.SomeModule' + + + This file contains multiple declarations of the form 'module SomeNamespace.SomeModule'. Only one declaration of this form is permitted in a file. Change your file to use an initial namespace declaration and/or use 'module ModuleName = ...' to define your modules. + + + ParseInput: unknown file suffix for '{0}' + + + Option requires parameter: {0} + + + Source file '{0}' could not be found + + + The file extension of '{0}' is not recognized. Source files must have extension .fs, .fsi, .fsx, .fsscript, .ml or .mli. + + + Could not resolve assembly '{0}' + + + Could not resolve assembly '{0}' required by '{1}' + + + Error opening binary file '{0}': {1} + + + The F#-compiled DLL '{0}' needs to be recompiled to be used with this version of F# + + + Invalid directive. Expected '#I \"<path>\"'. + + + Invalid directive. Expected '#r \"<file-or-assembly>\"'. + + + Invalid directive. Expected '#load \"<file>\" ... \"<file>\"'. + + + Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'. + + + Directives inside modules are ignored + + + A signature for the file or module '{0}' has already been specified + + + An implementation of file or module '{0}' has already been given. Compilation order is significant in F# because of type inference. You may need to adjust the order of your files to place the signature file before the implementation. In Visual Studio files are type-checked in the order they appear in the project file, which can be edited manually or adjusted using the solution explorer. + + + An implementation of the file or module '{0}' has already been given + + + The signature file '{0}' does not have a corresponding implementation file. If an implementation file exists then check the 'module' and 'namespace' declarations in the signature and implementation files match. + + + '{0}' is not a valid integer argument + + + '{0}' is not a valid floating point argument + + + Unrecognized option: '{0}' + + + Invalid module or namespace name + + + Error reading/writing metadata for the F# compiled DLL '{0}'. Was the DLL compiled with an earlier version of the F# compiler? (error: '{1}'). + + + The type/module '{0}' is not a concrete module or type + + + The type '{0}' has an inline assembly code representation + + + A namespace and a module named '{0}' both occur in two parts of this assembly + + + Two modules named '{0}' occur in two parts of this assembly + + + Two type definitions named '{0}' occur in namespace '{1}' in two parts of this assembly + + + A module and a type definition named '{0}' occur in namespace '{1}' in two parts of this assembly + + + Invalid member signature encountered because of an earlier error + + + This value does not have a valid property setter type + + + Invalid form for a property getter. At least one '()' argument is required when using the explicit syntax. + + + Invalid form for a property setter. At least one argument is required. + + + Unexpected use of a byref-typed variable + + + A value must be mutable in order to mutate the contents or take the address of a value type, e.g. 'let mutable x = ...' + + + Invalid mutation of a constant expression. Consider copying the expression to a mutable local, e.g. 'let mutable x = ...'. + + + The value has been copied to ensure the original is not mutated by this operation + + + Recursively defined values cannot appear directly as part of the construction of a tuple value within a recursive binding + + + Recursive values cannot appear directly as a construction of the type '{0}' within a recursive binding. This feature has been removed from the F# language. Consider using a record instead. + + + Recursive values cannot be directly assigned to the non-mutable field '{0}' of the type '{1}' within a recursive binding. Consider using a mutable field instead. + + + Unexpected decode of AutoOpenAttribute + + + Unexpected decode of InternalsVisibleToAttribute + + + Unexpected decode of InterfaceDataVersionAttribute + + + Active patterns cannot return more than 7 possibilities + + + This constant cannot be used as a custom attribute value + + + This is not a constant expression or valid custom attribute value + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe mutability attributes differ + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe names differ + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe compiled names differ + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe display names differ + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe accessibility specified in the signature is more than that specified in the implementation + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe inline flags differ + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe literal constant values and/or attributes differ + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is a type function and the other is not. The signature requires explicit type parameters if they are present in the implementation. + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe respective type parameter counts differ + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe types differ + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is an extension member and the other is not + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nAn arity was not inferred for this value + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe number of generic parameters in the signature and implementation differ (the signature declares {3} but the implementation declares {4} + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe generic parameters in the signature and implementation have different kinds. Perhaps there is a missing [<Measure>] attribute. + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe arities in the signature and implementation differ. The signature specifies that '{3}' is function definition or lambda expression accepting at least {4} argument(s), but the implementation is a computed function value. To declare that a computed function value is a permitted implementation simply parenthesize its type in the signature, e.g.\n\tval {5}: int -> (int -> int)\ninstead of\n\tval {6}: int -> int -> int. + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe CLI member names differ + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is static and the other isn't + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is virtual and the other isn't + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is abstract and the other isn't + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is final and the other isn't + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is marked as an override and the other isn't + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is a constructor/property and the other is not + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe compiled representation of this method is as a static member but the signature indicates its compiled representation is as an instance member + + + Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe compiled representation of this method is as an instance member, but the signature indicates its compiled representation is as a static member + + + The {0} definitions in the signature and implementation are not compatible because the names differ + + + The {0} definitions in the signature and implementation are not compatible because the respective type parameter counts differ + + + The {0} definitions in the signature and implementation are not compatible because the accessibility specified in the signature is more than that specified in the implementation + + + The {0} definitions in the signature and implementation are not compatible because the signature requires that the type supports the interface {1} but the interface has not been implemented + + + The {0} definitions in the signature and implementation are not compatible because the implementation says this type may use nulls as a representation but the signature does not + + + The {0} definitions in the signature and implementation are not compatible because the implementation says this type may use nulls as an extra value but the signature does not + + + The {0} definitions in the signature and implementation are not compatible because the signature says this type may use nulls as a representation but the implementation does not + + + The {0} definitions in the signature and implementation are not compatible because the signature says this type may use nulls as an extra value but the implementation does not + + + The {0} definitions in the signature and implementation are not compatible because the implementation type is sealed but the signature implies it is not. Consider adding the [<Sealed>] attribute to the signature. + + + The {0} definitions in the signature and implementation are not compatible because the implementation type is not sealed but signature implies it is. Consider adding the [<Sealed>] attribute to the implementation. + + + The {0} definitions in the signature and implementation are not compatible because the implementation is an abstract class but the signature is not. Consider adding the [<AbstractClass>] attribute to the signature. + + + The {0} definitions in the signature and implementation are not compatible because the signature is an abstract class but the implementation is not. Consider adding the [<AbstractClass>] attribute to the implementation. + + + The {0} definitions in the signature and implementation are not compatible because the types have different base types + + + The {0} definitions in the signature and implementation are not compatible because the number of {1}s differ + + + The {0} definitions in the signature and implementation are not compatible because the signature defines the {1} '{2}' but the implementation does not (or does, but not in the same order) + + + The {0} definitions in the signature and implementation are not compatible because the implementation defines the {1} '{2}' but the signature does not (or does, but not in the same order) + + + The {0} definitions in the signature and implementation are not compatible because the implementation defines a struct but the signature defines a type with a hidden representation + + + The {0} definitions in the signature and implementation are not compatible because a CLI type representation is being hidden by a signature + + + The {0} definitions in the signature and implementation are not compatible because a type representation is being hidden by a signature + + + The {0} definitions in the signature and implementation are not compatible because the types are of different kinds + + + The {0} definitions in the signature and implementation are not compatible because the IL representations differ + + + The {0} definitions in the signature and implementation are not compatible because the representations differ + + + The {0} definitions in the signature and implementation are not compatible because the field {1} was present in the implementation but not in the signature + + + The {0} definitions in the signature and implementation are not compatible because the order of the fields is different in the signature and implementation + + + The {0} definitions in the signature and implementation are not compatible because the field {1} was required by the signature but was not specified by the implementation + + + The {0} definitions in the signature and implementation are not compatible because the field '{1}' was present in the implementation but not in the signature. Struct types must now reveal their fields in the signature for the type, though the fields may still be labelled 'private' or 'internal'. + + + The {0} definitions in the signature and implementation are not compatible because the abstract member '{1}' was required by the signature but was not specified by the implementation + + + The {0} definitions in the signature and implementation are not compatible because the abstract member '{1}' was present in the implementation but not in the signature + + + The {0} definitions in the signature and implementation are not compatible because the signature declares a {1} while the implementation declares a {2} + + + The {0} definitions in the signature and implementation are not compatible because the abbreviations differ: {1} versus {2} + + + The {0} definitions in the signature and implementation are not compatible because an abbreviation is being hidden by a signature. The abbreviation must be visible to other CLI languages. Consider making the abbreviation visible in the signature. + + + The {0} definitions in the signature and implementation are not compatible because the signature has an abbreviation while the implementation does not + + + The module contains the constructor\n {0} \nbut its signature specifies\n {1} \nThe names differ + + + The module contains the constructor\n {0} \nbut its signature specifies\n {1} \nThe respective number of data fields differ + + + The module contains the constructor\n {0} \nbut its signature specifies\n {1} \nThe types of the fields differ + + + The module contains the constructor\n {0} \nbut its signature specifies\n {1} \nthe accessibility specified in the signature is more than that specified in the implementation + + + The module contains the field\n {0} \nbut its signature specifies\n {1} \nThe names differ + + + The module contains the field\n {0} \nbut its signature specifies\n {1} \nthe accessibility specified in the signature is more than that specified in the implementation + + + The module contains the field\n {0} \nbut its signature specifies\n {1} \nThe 'static' modifiers differ + + + The module contains the field\n {0} \nbut its signature specifies\n {1} \nThe 'mutable' modifiers differ + + + The module contains the field\n {0} \nbut its signature specifies\n {1} \nThe 'literal' modifiers differ + + + The module contains the field\n {0} \nbut its signature specifies\n {1} \nThe types differ + + + The implicit instantiation of a generic construct at or near this point could not be resolved because it could resolve to multiple unrelated types, e.g. '{0}' and '{1}'. Consider using type annotations to resolve the ambiguity + + + Could not resolve the ambiguity inherent in the use of the operator '{0}' at or near this program point. Consider using type annotations to resolve the ambiguity. + + + Could not resolve the ambiguity inherent in the use of a 'printf'-style format string + + + Could not resolve the ambiguity in the use of a generic construct with an 'enum' constraint at or near this position + + + Could not resolve the ambiguity in the use of a generic construct with a 'delegate' constraint at or near this position + + + Invalid value + + + The signature and implementation are not compatible because the respective type parameter counts differ + + + The signature and implementation are not compatible because the type parameter in the class/signature has a different compile-time requirement to the one in the member/implementation + + + The signature and implementation are not compatible because the declaration of the type parameter '{0}' requires a constraint of the form {1} + + + The signature and implementation are not compatible because the type parameter '{0}' has a constraint of the form {1} but the implementation does not. Either remove this constraint from the signature or add it to the implementation. + + + The type '{0}' implements 'System.IComparable'. Consider also adding an explicit override for 'Object.Equals' + + + The type '{0}' implements 'System.IComparable' explicitly but provides no corresponding override for 'Object.Equals'. An implementation of 'Object.Equals' has been automatically provided, implemented via 'System.IComparable'. Consider implementing the override 'Object.Equals' explicitly + + + The struct, record or union type '{0}' has an explicit implementation of 'Object.GetHashCode' or 'Object.Equals'. You must apply the 'CustomEquality' attribute to the type + + + The struct, record or union type '{0}' has an explicit implementation of 'Object.GetHashCode'. Consider implementing a matching override for 'Object.Equals(obj)' + + + The struct, record or union type '{0}' has an explicit implementation of 'Object.Equals'. Consider implementing a matching override for 'Object.GetHashCode()' + + + The exception definitions are not compatible because a CLI exception mapping is being hidden by a signature. The exception mapping must be visible to other modules. The module contains the exception definition\n {0} \nbut its signature specifies\n\t{1} + + + The exception definitions are not compatible because the CLI representations differ. The module contains the exception definition\n {0} \nbut its signature specifies\n\t{1} + + + The exception definitions are not compatible because the exception abbreviation is being hidden by the signature. The abbreviation must be visible to other CLI languages. Consider making the abbreviation visible in the signature. The module contains the exception definition\n {0} \nbut its signature specifies\n\t{1}. + + + The exception definitions are not compatible because the exception abbreviations in the signature and implementation differ. The module contains the exception definition\n {0} \nbut its signature specifies\n\t{1}. + + + The exception definitions are not compatible because the exception declarations differ. The module contains the exception definition\n {0} \nbut its signature specifies\n\t{1}. + + + The exception definitions are not compatible because the field '{0}' was required by the signature but was not specified by the implementation. The module contains the exception definition\n {1} \nbut its signature specifies\n\t{2}. + + + The exception definitions are not compatible because the field '{0}' was present in the implementation but not in the signature. The module contains the exception definition\n {1} \nbut its signature specifies\n\t{2}. + + + The exception definitions are not compatible because the order of the fields is different in the signature and implementation. The module contains the exception definition\n {0} \nbut its signature specifies\n\t{1}. + + + The namespace or module attributes differ between signature and implementation + + + This method is over-constrained in its type parameters + + + No implementations of '{0}' had the correct number of arguments and type parameters. The required signature is '{1}'. + + + The override for '{0}' was ambiguous + + + More than one override implements '{0}' + + + The method '{0}' is sealed and cannot be overridden + + + The override '{0}' implements more than one abstract slot, e.g. '{1}' and '{2}' + + + Duplicate or redundant interface + + + The interface '{0}' is included in multiple explicitly implemented interface types. Add an explicit implementation of this interface. + + + A named argument has been assigned more than one value + + + No implementation was given for '{0}' + + + No implementation was given for '{0}'. Note that all interface members must be implemented and listed under an appropriate 'interface' declaration, e.g. 'interface ... with member ...'. + + + The member '{0}' does not have the correct number of arguments. The required signature is '{1}'. + + + The member '{0}' does not have the correct number of method type parameters. The required signature is '{1}'. + + + The member '{0}' does not have the correct kinds of generic parameters. The required signature is '{1}'. + + + The member '{0}' cannot be used to implement '{1}'. The required signature is '{2}'. + + + Error while parsing embedded IL + + + Error while parsing embedded IL type + + + This indexer notation has been removed from the F# language + + + Invalid expression on left of assignment + + + The 'ReferenceEquality' attribute cannot be used on structs. Consider using the 'StructuralEquality' attribute instead, or implement an override for 'System.Object.Equals(obj)'. + + + This type uses an invalid mix of the attributes 'NoEquality', 'ReferenceEquality', 'StructuralEquality', 'NoComparison' and 'StructuralComparison' attributes + + + The 'NoEquality' attribute must be used in conjunction with the 'NoComparison' attribute + + + The 'StructuralComparison' attribute must be used in conjunction with the 'StructuralEquality' attribute + + + The 'StructuralEquality' attribute must be used in conjunction with the 'NoComparison' or 'StructuralComparison' attributes + + + A type cannot have both the 'ReferenceEquality' and 'StructuralEquality' or 'StructuralComparison' attributes + + + Only record, union, exception and struct types may be augmented with the 'ReferenceEquality', 'StructuralEquality' and 'StructuralComparison' attributes + + + A type with attribute 'ReferenceEquality' cannot have an explicit implementation of 'Object.Equals(obj)', 'System.IEquatable<_>' or 'System.Collections.IStructuralEquatable' + + + A type with attribute 'CustomEquality' must have an explicit implementation of at least one of 'Object.Equals(obj)', 'System.IEquatable<_>' or 'System.Collections.IStructuralEquatable' + + + A type with attribute 'CustomComparison' must have an explicit implementation of at least one of 'System.IComparable' or 'System.Collections.IStructuralComparable' + + + A type with attribute 'NoEquality' should not usually have an explicit implementation of 'Object.Equals(obj)'. Disable this warning if this is intentional for interoperability purposes + + + A type with attribute 'NoComparison' should not usually have an explicit implementation of 'System.IComparable', 'System.IComparable<_>' or 'System.Collections.IStructuralComparable'. Disable this warning if this is intentional for interoperability purposes + + + The 'CustomEquality' attribute must be used in conjunction with the 'NoComparison' or 'CustomComparison' attributes + + + Positional specifiers are not permitted in format strings + + + Missing format specifier + + + '{0}' flag set twice + + + Prefix flag (' ' or '+') set twice + + + The # formatting modifier is invalid in F# + + + Bad precision in format specifier + + + Bad width in format specifier + + + '{0}' format does not support '0' flag + + + Precision missing after the '.' + + + '{0}' format does not support precision + + + Bad format specifier (after l or L): Expected ld,li,lo,lu,lx or lX. In F# code you can use %d, %x, %o or %u instead, which are overloaded to work with all basic integer types. + + + The 'l' or 'L' in this format specifier is unnecessary. In F# code you can use %d, %x, %o or %u instead, which are overloaded to work with all basic integer types. + + + The 'h' or 'H' in this format specifier is unnecessary. You can use %d, %x, %o or %u instead, which are overloaded to work with all basic integer types.. + + + '{0}' does not support prefix '{1}' flag + + + Bad format specifier: '{0}' + + + System.Environment.Exit did not exit + + + The treatment of this operator is now handled directly by the F# compiler and its meaning cannot be redefined + + + A protected member is called or 'base' is being used. This is only allowed in the direct implementation of members since they could escape their object scope. + + + The byref-typed variable '{0}' is used in an invalid way. Byrefs cannot be captured by closures or passed to inner functions. + + + The mutable variable '{0}' is used in an invalid way. Mutable variables cannot be captured by closures. Consider eliminating this use of mutation or using a heap-allocated mutable reference cell via 'ref' and '!'. + + + The 'base' keyword is used in an invalid way. Base calls cannot be used in closures. Consider using a private member to make base calls. + + + The variable '{0}' is used in an invalid way + + + The type '{0}' is less accessible than the value, member or type '{1}' it is used in + + + 'System.Void' can only be used as 'typeof<System.Void>' in F# + + + A type instantiation involves a byref type. This is not permitted by the rules of Common IL. + + + Calls to 'reraise' may only occur directly in a handler of a try-with + + + Expression-splicing operators may only be used within quotations + + + First-class uses of the expression-splicing operator are not permitted + + + First-class uses of the address-of operators are not permitted + + + First-class uses of the 'reraise' function is not permitted + + + The byref typed value '{0}' cannot be used at this point + + + 'base' values may only be used to make direct calls to the base implementations of overridden members + + + Object constructors cannot directly use try/with and try/finally prior to the initialization of the object. This includes constructs such as 'for x in ...' that may elaborate to uses of these constructs. This is a limitation imposed by Common IL. + + + The address of the variable '{0}' cannot be used at this point + + + The address of the static field '{0}' cannot be used at this point + + + The address of the field '{0}' cannot be used at this point + + + The address of an array element cannot be used at this point + + + The type of a first-class function cannot contain byrefs + + + A method return type would contain byrefs which is not permitted + + + Invalid custom attribute value (not a constant or literal) + + + The attribute type '{0}' has 'AllowMultiple=false'. Multiple instances of this attribute cannot be attached to a single language element. + + + The member '{0}' is used in an invalid way. A use of '{1}' has been inferred prior to its definition at or near '{2}'. This is an invalid forward reference. + + + A byref typed value would be stored here. Top-level let-bound byref values are not permitted. + + + [<ReflectedDefinition>] terms cannot contain uses of the prefix splice operator '%' + + + A function labeled with the 'EntryPointAttribute' attribute must be the last declaration in the last file in the compilation sequence, and can only be used when compiling to a .exe + + + compiled form of the union case + + + default augmentation of the union case + + + Name clash. The property '{0}' has the same name as a method in this type. + + + The property '{0}' has a getter and a setter that do not match. If one is abstract then the other must be as well. + + + The property '{0}' has the same name as another property in this type, but one takes indexer arguments and the other does not. You may be missing an indexer argument to one of your properties. + + + A type would store a byref typed value. This is not permitted by Common IL. + + + Duplicate method. The method '{0}' has the same name and signature as another method in this type. + + + Duplicate method. The method '{0}' has the same name and signature as another method in this type once tuples, functions, units of measure and/or provided types are erased. + + + The method '{0}' has curried arguments but has the same name as another method in this type. Methods with curried arguments cannot be overloaded. Consider using a method taking tupled arguments. + + + Methods with curried arguments cannot declare 'out', 'ParamArray', 'optional' or 'byref' arguments + + + Duplicate property. The property '{0}' has the same name and signature as another property in this type. + + + Duplicate property. The property '{0}' has the same name and signature as another property in this type once tuples, functions, units of measure and/or provided types are erased. + + + Duplicate method. The abstract method '{0}' has the same name and signature as an abstract method in an inherited type. + + + Duplicate method. The abstract method '{0}' has the same name and signature as an abstract method in an inherited type once tuples, functions, units of measure and/or provided types are erased. + + + This type implements or inherits the same interface at different generic instantiations '{0}' and '{1}'. This is not permitted in this version of F#. + + + The type of a field using the 'DefaultValue' attribute must admit default initialization, i.e. have 'null' as a proper value or be a struct type whose fields all admit default initialization. You can use 'DefaultValue(false)' to disable this check + + + The type abbreviation contains byrefs. This is not permitted by F#. + + + The variable '{0}' is bound in a quotation but is used as part of a spliced expression. This is not permitted since it may escape its scope. + + + Quotations cannot contain uses of generic expressions + + + Quotations cannot contain function definitions that are inferred or declared to be generic. Consider adding some type constraints to make this a valid quoted expression. + + + Quotations cannot contain object expressions + + + Quotations cannot contain expressions that take the address of a field + + + Quotations cannot contain expressions that fetch static fields + + + Quotations cannot contain inline assembly code or pattern matching on arrays + + + Quotations cannot contain descending for loops + + + Quotations cannot contain expressions that fetch union case indexes + + + Quotations cannot contain expressions that set union case fields + + + Quotations cannot contain expressions that set fields in exception values + + + Quotations cannot contain expressions that require byref pointers + + + Quotations cannot contain expressions that make member constraint calls, or uses of operators that implicitly resolve to a member constraint call + + + Quotations cannot contain this kind of constant + + + Quotations cannot contain this kind of pattern match + + + Quotations cannot contain array pattern matching + + + Quotations cannot contain this kind of type + + + The declared type parameter '{0}' cannot be used here since the type parameter cannot be resolved at compile time + + + This code is less generic than indicated by its annotations. A unit-of-measure specified using '_' has been determined to be '1', i.e. dimensionless. Consider making the code generic, or removing the use of '_'. + + + Type inference problem too complicated (maximum iteration depth reached). Consider adding further type annotations. + + + Expected arguments to an instance member + + + This indexer expects {0} arguments but is here given {1} + + + Expecting a type supporting the operator '{0}' but given a function type. You may be missing an argument to a function. + + + Expecting a type supporting the operator '{0}' but given a tuple type + + + None of the types '{0}' support the operator '{1}' + + + The type '{0}' does not support the operator '{1}' + + + None of the types '{0}' support the operator '{1}'. Consider opening the module 'Microsoft.FSharp.Linq.NullableOperators'. + + + The type '{0}' does not support the operator '{1}'. Consider opening the module 'Microsoft.FSharp.Linq.NullableOperators'. + + + The type '{0}' does not support a conversion to the type '{1}' + + + The type '{0}' has a method '{1}' (full name '{2}'), but the method is static + + + The type '{0}' has a method '{1}' (full name '{2}'), but the method is not static + + + The constraints 'struct' and 'not struct' are inconsistent + + + The type '{0}' does not have 'null' as a proper value + + + The type '{0}' does not have 'null' as a proper value. To create a null value for a Nullable type use 'System.Nullable()'. + + + The type '{0}' does not support the 'comparison' constraint because it has the 'NoComparison' attribute + + + The type '{0}' does not support the 'comparison' constraint. For example, it does not support the 'System.IComparable' interface + + + The type '{0}' does not support the 'comparison' constraint because it is a record, union or struct with one or more structural element types which do not support the 'comparison' constraint. Either avoid the use of comparison with this type, or add the 'StructuralComparison' attribute to the type to determine which field type does not support comparison + + + The type '{0}' does not support the 'equality' constraint because it has the 'NoEquality' attribute + + + The type '{0}' does not support the 'equality' constraint because it is a function type + + + The type '{0}' does not support the 'equality' constraint because it is a record, union or struct with one or more structural element types which do not support the 'equality' constraint. Either avoid the use of equality with this type, or add the 'StructuralEquality' attribute to the type to determine which field type does not support equality + + + The type '{0}' is not a CLI enum type + + + The type '{0}' has a non-standard delegate type + + + The type '{0}' is not a CLI delegate type + + + This type parameter cannot be instantiated to 'Nullable'. This is a restriction imposed in order to ensure the meaning of 'null' in some CLI languages is not confusing when used in conjunction with 'Nullable' values. + + + A generic construct requires that the type '{0}' is a CLI or F# struct type + + + A generic construct requires that the type '{0}' is an unmanaged type + + + The type '{0}' is not compatible with any of the types {1}, arising from the use of a printf-style format string + + + A generic construct requires that the type '{0}' have reference semantics, but it does not, i.e. it is a struct + + + A generic construct requires that the type '{0}' be non-abstract + + + A generic construct requires that the type '{0}' have a public default constructor + + + Type instantiation length mismatch + + + Optional arguments not permitted here + + + {0} is not a static member + + + {0} is not an instance member + + + Argument length mismatch + + + The argument types don't match + + + This method expects a CLI 'params' parameter in this position. 'params' is a way of passing a variable number of arguments to a method in languages such as C#. Consider passing an array for this argument + + + The member or object constructor '{0}' is not {1} + + + The member or object constructor '{0}' is not {1}. Private members may only be accessed from within the declaring type. Protected members may only be accessed from an extending type and cannot be accessed from inner lambda expressions. + + + {0} is not a static method + + + {0} is not an instance method + + + The member or object constructor '{0}' has no argument or settable return property '{1}'. {2}. + + + The required signature is {0} + + + The member or object constructor '{0}' requires {1} argument(s). The required signature is '{2}'. + + + The member or object constructor '{0}' requires {1} additional argument(s). The required signature is '{2}'. + + + The member or object constructor '{0}' requires {1} argument(s). The required signature is '{2}'. Some names for missing arguments are {3}. + + + The member or object constructor '{0}' requires {1} additional argument(s). The required signature is '{2}'. Some names for missing arguments are {3}. + + + The member or object constructor '{0}' requires {1} argument(s) but is here given {2} unnamed and {3} named argument(s). The required signature is '{4}'. + + + The member or object constructor '{0}' takes {1} argument(s) but is here given {2}. The required signature is '{3}'. + + + The member or object constructor '{0}' takes {1} type argument(s) but is here given {2}. The required signature is '{3}'. + + + The member or object constructor '{0}' taking {1} arguments are not accessible from this code location. All accessible versions of method '{2}' take {3} arguments. + + + Incorrect generic instantiation. No {0} member named '{1}' takes {2} generic arguments. + + + The member or object constructor '{0}' does not take {1} argument(s). An overload was found taking {2} arguments. + + + No {0} member or object constructor named '{1}' takes {2} arguments + + + No {0} member or object constructor named '{1}' takes {2} arguments. Note the call to this member also provides {3} named arguments. + + + No {0} member or object constructor named '{1}' takes {2} arguments. The named argument '{3}' doesn't correspond to any argument or settable return property for any overload. + + + Method or object constructor '{0}' not found + + + No overloads match for method '{0}'. + + + A unique overload for method '{0}' could not be determined based on type information prior to this program point. A type annotation may be needed. + + + Candidates: {0} + + + The available overloads are shown below (or in the Error List window). + + + Accessibility modifiers are not permitted on 'do' bindings + + + End of file in #if section begun at or after here + + + End of file in string begun at or before here + + + End of file in verbatim string begun at or before here + + + End of file in comment begun at or before here + + + End of file in string embedded in comment begun at or before here + + + End of file in verbatim string embedded in comment begun at or before here + + + End of file in IF-OCAML section begun at or before here + + + End of file in directive begun at or before here + + + No #endif found for #if or #else + + + Attributes have been ignored in this construct + + + 'use' bindings are not permitted in primary constructors + + + 'use' bindings are not permitted in modules and are treated as 'let' bindings + + + An integer for loop must use a simple identifier + + + At most one 'with' augmentation is permitted + + + A semicolon is not expected at this point + + + Unexpected end of input + + + Accessibility modifiers are not permitted here + + + Only '#' compiler directives may occur prior to the first 'namespace' declaration + + + Accessibility modifiers should come immediately prior to the identifier naming a construct + + + Files should begin with either a namespace or module declaration, e.g. 'namespace SomeNamespace.SubNamespace' or 'module SomeNamespace.SomeModule', but not both. To define a module within a namespace use 'module SomeModule = ...' + + + A module abbreviation must be a simple name, not a path + + + Ignoring attributes on module abbreviation + + + Ignoring accessibility attribute on module abbreviation. Module abbreviations are always private. + + + Ignoring visibility attribute on module abbreviation. Module abbreviations are always private. + + + Unclosed block + + + Unmatched 'begin' or 'struct' + + + A module name must be a simple name, not a path + + + Unexpected empty type moduleDefn list + + + Attributes should be placed before 'val' + + + Attributes are not permitted on interface implementations + + + Syntax error + + + Augmentations are not permitted on delegate type moduleDefns + + + Unmatched 'class', 'interface' or 'struct' + + + A type definition requires one or more members or other declarations. If you intend to define an empty class, struct or interface, then use 'type ... = class end', 'interface end' or 'struct end'. + + + Unmatched 'with' or badly formatted 'with' block + + + 'get', 'set' or 'get,set' required + + + Only class types may take value arguments + + + Unmatched 'begin' + + + Invalid declaration syntax + + + 'get' and/or 'set' required + + + Type annotations on property getters and setters must be given after the 'get()' or 'set(v)', e.g. 'with get() : string = ...' + + + A getter property is expected to be a function, e.g. 'get() = ...' or 'get(index) = ...' + + + Multiple accessibilities given for property getter or setter + + + Property setters must be defined using 'set value = ', 'set idx value = ' or 'set (idx1,...,idxN) value = ... ' + + + Interfaces always have the same visibility as the enclosing type + + + Accessibility modifiers are not allowed on this member. Abstract slots always have the same visibility as the enclosing type. + + + Attributes are not permitted on 'inherit' declarations + + + Accessibility modifiers are not permitted on an 'inherits' declaration + + + 'inherit' declarations cannot have 'as' bindings. To access members of the base class when overriding a method, the syntax 'base.SomeMember' may be used; 'base' is a keyword. Remove this 'as' binding. + + + Attributes are not allowed here + + + Accessibility modifiers are not permitted in this position for type abbreviations + + + Accessibility modifiers are not permitted in this position for enum types + + + All enum fields must be given values + + + Accessibility modifiers are not permitted on inline assembly code types + + + Unexpected identifier: '{0}' + + + Accessibility modifiers are not permitted on union cases. Use 'type U = internal ...' or 'type U = private ...' to give an accessibility to the whole representation. + + + Accessibility modifiers are not permitted on enumeration fields + + + Consider using a separate record type instead + + + Accessibility modifiers are not permitted on record fields. Use 'type R = internal ...' or 'type R = private ...' to give an accessibility to the whole representation. + + + The declaration form 'let ... and ...' for non-recursive bindings is not used in F# code. Consider using a sequence of 'let' bindings + + + Unmatched '(' + + + Successive patterns should be separated by spaces or tupled + + + No matching 'in' found for this 'let' + + + Error in the return expression for this 'let'. Possible incorrect indentation. + + + Block following this '{0}' is unfinished. Expect an expression. + + + Incomplete conditional. Expected 'if <expr> then <expr>' or 'if <expr> then <expr> else <expr>'. + + + 'assert' may not be used as a first class value. Use 'assert <expr>' instead. + + + Identifier expected + + + 'in' or '=' expected + + + The use of '->' in sequence and computation expressions is limited to the form 'for pat in expr -> expr'. Use the syntax 'for ... in ... do ... yield...' to generate elements in more complex sequence expressions. + + + Successive arguments should be separated by spaces or tupled, and arguments involving function or method applications should be parenthesized + + + Unmatched '[' + + + Missing qualification after '.' + + + In F# code you may use 'expr.[expr]'. A type annotation may be required to indicate the first expression is an array + + + Mismatched quotation, beginning with '{0}' + + + Unmatched '{0}' + + + Unmatched '[|' + + + Unmatched '{{' + + + Field bindings must have the form 'id = expr;' + + + This member is not permitted in an object implementation + + + Missing function body + + + Syntax error in labelled type argument + + + Unexpected infix operator in type expression + + + The syntax '(typ,...,typ) ident' is not used in F# code. Consider using 'ident<typ,...,typ>' instead + + + Invalid literal in type + + + Unexpected infix operator in unit-of-measure expression. Legal operators are '*', '/' and '^'. + + + Unexpected integer literal in unit-of-measure expression + + + Syntax error: unexpected type parameter specification + + + Mismatched quotation operator name, beginning with '{0}' + + + Active pattern case identifiers must begin with an uppercase letter + + + No '=' symbol should follow a 'namespace' declaration + + + The syntax 'module ... = struct .. end' is not used in F# code. Consider using 'module ... = begin .. end' + + + The syntax 'module ... : sig .. end' is not used in F# code. Consider using 'module ... = begin .. end' + + + A static field was used where an instance field is expected + + + Method '{0}' is not accessible from this code location + + + Implicit product of measures following / + + + Unexpected SynMeasure.Anon + + + Non-zero constants cannot have generic units. For generic zero, write 0.0<_>. + + + In sequence expressions, results are generated using 'yield' + + + Unexpected big rational constant + + + Units-of-measure supported only on float, float32, decimal and signed integer types + + + Unexpected Const_uint16array + + + Unexpected Const_bytearray + + + A parameter with attributes must also be given a name, e.g. '[<Attribute>] Name : Type' + + + Return values cannot have names + + + MemberKind.PropertyGetSet only expected in parse trees + + + Namespaces cannot contain values. Consider using a module to hold your value declarations. + + + Namespaces cannot contain extension members except in the same file and namespace where the type is defined. Consider using a module to hold declarations of extension members. + + + Multiple visibility attributes have been specified for this identifier + + + Multiple visibility attributes have been specified for this identifier. 'let' bindings in classes are always private, as are any 'let' bindings inside expressions. + + + Unrecognized accessibility specification + + + The name '({0})' should not be used as a member name. To define comparison semantics for a type, implement the 'System.IComparable' interface. If defining a static member for use from other CLI languages then use the name '{1}' instead. + + + The name '({0})' should not be used as a member name. To define equality semantics for a type, override the 'Object.Equals' member. If defining a static member for use from other CLI languages then use the name '{1}' instead. + + + The name '({0})' should not be used as a member name. If defining a static member for use from other CLI languages then use the name '{1}' instead. + + + The name '({0})' should not be used as a member name because it is given a standard definition in the F# library over fixed types + + + The '{0}' operator should not normally be redefined. To define overloaded comparison semantics for a particular type, implement the 'System.IComparable' interface in the definition of that type. + + + The '{0}' operator should not normally be redefined. To define equality semantics for a type, override the 'Object.Equals' member in the definition of that type. + + + The '{0}' operator should not normally be redefined. Consider using a different operator name + + + The '{0}' operator cannot be redefined. Consider using a different operator name + + + Expected module or namespace parent {0} + + + The struct, record or union type '{0}' implements the interface 'System.IComparable' explicitly. You must apply the 'CustomComparison' attribute to the type. + + + The struct, record or union type '{0}' implements the interface 'System.IComparable<_>' explicitly. You must apply the 'CustomComparison' attribute to the type, and should also provide a consistent implementation of the non-generic interface System.IComparable. + + + The struct, record or union type '{0}' implements the interface 'System.IStructuralComparable' explicitly. Apply the 'CustomComparison' attribute to the type. + + + This record contains fields from inconsistent types + + + DLLImport stubs cannot be inlined + + + Structs may only bind a 'this' parameter at member declarations + + + Unexpected expression at recursive inference point + + + This code is less generic than required by its annotations because the explicit type variable '{0}' could not be generalized. It was constrained to be '{1}'. + + + One or more of the explicit class or function type variables for this binding could not be generalized, because they were constrained to other types + + + A generic type parameter has been used in a way that constrains it to always be '{0}' + + + This type parameter has been used in a way that constrains it to always be '{0}' + + + The type parameters inferred for this value are not stable under the erasure of type abbreviations. This is due to the use of type abbreviations which drop or reorder type parameters, e.g. \n\ttype taggedInt<'a> = int or\n\ttype swap<'a,'b> = 'b * 'a.\nConsider declaring the type parameters for this value explicitly, e.g.\n\tlet f<'a,'b> ((x,y) : swap<'b,'a>) : swap<'a,'b> = (y,x). + + + Explicit type parameters may only be used on module or member bindings + + + You must explicitly declare either all or no type parameters when overriding a generic abstract method + + + The field labels and expected type of this record expression or pattern do not uniquely determine a corresponding record type + + + The field '{0}' appears twice in this record expression or pattern + + + Unknown union case + + + This code is not sufficiently generic. The type variable {0} could not be generalized because it would escape its scope. + + + A property cannot have explicit type parameters. Consider using a method instead. + + + A constructor cannot have explicit type parameters. Consider using a static construction method instead. + + + This instance member needs a parameter to represent the object being invoked. Make the member static or use the notation 'member x.Member(args) = ...'. + + + Unexpected source-level property specification in syntax tree + + + A static initializer requires an argument + + + An object constructor requires an argument + + + This static member should not have a 'this' parameter. Consider using the notation 'member Member(args) = ...'. + + + An explicit static initializer should use the syntax 'static new(args) = expr' + + + An explicit object constructor should use the syntax 'new(args) = expr' + + + Unexpected source-level property specification + + + This form of object expression is not used in F#. Use 'member this.MemberName ... = ...' to define member implementations in object expressions. + + + Invalid declaration + + + Attributes are not allowed within patterns + + + The generic function '{0}' must be given explicit type argument(s) + + + The method or function '{0}' should not be given explicit type argument(s) because it does not declare its type parameters explicitly + + + This value, type or method expects {0} type parameter(s) but was given {1} + + + The default, zero-initializing constructor of a struct type may only be used if all the fields of the struct type admit default initialization + + + Couldn't find Dispose on IDisposable, or it was overloaded + + + This value is not a literal and cannot be used in a pattern + + + This field is readonly + + + Named arguments must appear after all other arguments + + + This function value is being used to construct a delegate type whose signature includes a byref argument. You must use an explicit lambda expression taking {0} arguments. + + + The type '{0}' is not a type whose values can be enumerated with this syntax, i.e. is not compatible with either seq<_>, IEnumerable<_> or IEnumerable and does not have a GetEnumerator method + + + This expression has a method called GetEnumerator, but its return type is a value type. Methods returning struct enumerators cannot be used in this expression form. + + + This recursive binding uses an invalid mixture of recursive forms + + + This is not a valid object construction expression. Explicit object constructors must either call an alternate constructor or initialize all fields of the object and specify a call to a super class constructor. + + + Invalid constraint + + + Invalid constraint: the type used for the constraint is sealed, which means the constraint could only be satisfied by at most one solution + + + An 'enum' constraint must be of the form 'enum<type>' + + + 'new' constraints must take one argument of type 'unit' and return the constructed type + + + This property has an invalid type. Properties taking multiple indexer arguments should have types of the form 'ty1 * ty2 -> ty3'. Properties returning functions should have types of the form '(ty1 -> ty2)'. + + + Expected unit-of-measure parameter, not type parameter. Explicit unit-of-measure parameters must be marked with the [<Measure>] attribute. + + + Expected type parameter, not unit-of-measure parameter + + + Expected type, not unit-of-measure + + + Expected unit-of-measure, not type + + + Units-of-measure cannot be used as prefix arguments to a type. Rewrite as postfix arguments in angle brackets. + + + Unit-of-measure cannot be used in type constructor application + + + This control construct may only be used if the computation expression builder defines a '{0}' method + + + This type has no nested types + + + Unexpected {0} in type expression + + + Type parameter cannot be used as type constructor + + + Illegal syntax in type expression + + + Anonymous unit-of-measure cannot be nested inside another unit-of-measure expression + + + Anonymous type variables are not permitted in this declaration + + + Unexpected / in type + + + Unexpected type arguments + + + Optional arguments are only permitted on type members + + + Name '{0}' not bound in pattern context + + + Non-primitive numeric literal constants cannot be used in pattern matches because they can be mapped to multiple different types through the use of a NumericLiteral module. Consider using replacing with a variable, and use 'when <variable> = <constant>' at the end of the match clause. + + + Type arguments cannot be specified here + + + Only active patterns returning exactly one result may accept arguments + + + Invalid argument to parameterized pattern label + + + Internal error. Invalid index into active pattern array + + + This union case does not take arguments + + + This union case takes one argument + + + This union case expects {0} arguments in tupled form + + + Field '{0}' is not static + + + This field is not a literal and cannot be used in a pattern + + + This is not a variable, constant, active recognizer or literal + + + This is not a valid pattern + + + Character range matches have been removed in F#. Consider using a 'when' pattern guard instead. + + + Illegal pattern + + + Syntax error - unexpected '?' symbol + + + Expected {0} expressions, got {1} + + + TcExprUndelayed: delayed + + + This expression form may only be used in sequence and computation expressions + + + Invalid object expression. Objects without overrides or interfaces should use the expression form 'new Type(args)' without braces. + + + Invalid object, sequence or record expression + + + Invalid record, sequence or computation expression. Sequence expressions should be of the form 'seq {{ ... }}' + + + This list or array expression includes an element of the form 'if ... then ... else'. Parenthesize this expression to indicate it is an individual element of the list or array, to disambiguate this from a list generated using a sequence expression + + + Unable to parse format string '{0}' + + + This list expression exceeds the maximum size for list literals. Use an array for larger literals and call Array.ToList. + + + The expression form 'expr then expr' may only be used as part of an explicit object constructor + + + Named arguments cannot be given to member trait calls + + + This is not a valid name for an enumeration case + + + This field is not mutable + + + This construct may only be used within list, array and sequence expressions, e.g. expressions of the form 'seq {{ ... }}', '[ ... ]' or '[| ... |]'. These use the syntax 'for ... in ... do ... yield...' to generate elements + + + This construct may only be used within computation expressions. To return a value from an ordinary function simply write the expression without 'return'. + + + This construct may only be used within sequence or computation expressions + + + This construct may only be used within computation expressions + + + Invalid indexer expression + + + The operator 'expr.[idx]' has been used on an object of indeterminate type based on information prior to this program point. Consider adding further type constraints + + + Cannot inherit from a variable type + + + Calls to object constructors on type parameters cannot be given arguments + + + The 'CompiledName' attribute cannot be used with this language element + + + '{0}' may only be used with named types + + + 'inherit' cannot be used on interface types. Consider implementing the interface by using 'interface ... with ... end' instead. + + + 'new' cannot be used on interface types. Consider using an object expression '{{ new ... with ... }}' instead. + + + Instances of this type cannot be created since it has been marked abstract or not all methods have been given implementations. Consider using an object expression '{{ new ... with ... }}' instead. + + + It is recommended that objects that support the IDisposable interface are created using 'new Type(args)' rather than 'Type(args)' to indicate that resources may be owned by the generated value + + + '{0}' may only be used to construct object types + + + Constructors for the type '{0}' must directly or indirectly call its implicit object constructor. Use a call to the implicit object constructor instead of a record expression. + + + The field '{0}' has been given a value, but is not present in the type '{1}' + + + No assignment given for field '{0}' of type '{1}' + + + Extraneous fields have been given values + + + Only overrides of abstract and virtual members may be specified in object expressions + + + The member '{0}' does not correspond to any abstract or virtual method available to override or implement + + + The member '{0}' does not accept the correct number of arguments, {1} arguments are expected + + + The member '{0}' does not accept the correct number of arguments. One overload accepts {1} arguments. + + + A simple method name is required here + + + The types System.ValueType, System.Enum, System.Delegate, System.MulticastDelegate and System.Array cannot be used as super types in an object expression or class + + + 'new' must be used with a named type + + + Cannot create an extension of a sealed type + + + No arguments may be given when constructing a record value + + + Interface implementations cannot be given on construction expressions + + + Object construction expressions may only be used to implement constructors in class types + + + Only simple bindings of the form 'id = expr' can be used in construction expressions + + + Objects must be initialized by an object construction expression that calls an inherited object constructor and assigns a value to each field + + + Expected an interface type + + + Constructor expressions for interfaces do not take arguments + + + This object constructor requires arguments + + + 'new' may only be used with object constructors + + + At least one override did not correctly implement its corresponding abstract member + + + This numeric literal requires that a module '{0}' defining functions FromZero, FromOne, FromInt32, FromInt64 and FromString be in scope + + + Invalid record construction + + + The expression form {{ expr with ... }} may only be used with record types. To build object types use {{ new Type(...) with ... }} + + + The inherited type is not an object model type + + + Object construction expressions (i.e. record expressions with inheritance specifications) may only be used to implement constructors in object model types. Use 'new ObjectType(args)' to construct instances of object model types outside of constructors + + + '{{ }}' is not a valid expression. Records must include at least one field. Empty sequences are specified by using Seq.empty or an empty list '[]'. + + + This type is not a record type. Values of class and struct types must be created using calls to object constructors. + + + This type is not a record type + + + This construct is ambiguous as part of a computation expression. Nested expressions may be written using 'let _ = (...)' and nested computations using 'let! res = builder {{ ... }}'. + + + This construct is ambiguous as part of a sequence expression. Nested expressions may be written using 'let _ = (...)' and nested sequences using 'yield! seq {{... }}'. + + + 'do!' cannot be used within sequence expressions + + + The use of 'let! x = coll' in sequence expressions is not permitted. Use 'for x in coll' instead. + + + 'try'/'with' cannot be used within sequence expressions + + + In sequence expressions, multiple results are generated using 'yield!' + + + Invalid assignment + + + Invalid use of a type name + + + This type has no accessible object constructors + + + Invalid use of a type name and/or object constructor. If necessary use 'new' and apply the constructor to its arguments, e.g. 'new Type(args)'. + + + Invalid use of a type name and/or object constructor. If necessary use 'new' and apply the constructor to its arguments, e.g. 'new Type(args)'. The required signature is:\n\t{0}. + + + Invalid use of an interface type + + + Invalid use of a delegate constructor. Use the syntax 'new Type(args)' or just 'Type(args)'. + + + Property '{0}' is not static + + + Property '{0}' is not readable + + + This lookup cannot be used here + + + Property '{0}' is static + + + Property '{0}' cannot be set + + + Constructors must be applied to arguments and cannot be used as first-class values. If necessary use an anonymous function '(fun arg1 ... argN -> new Type(arg1,...,argN))'. + + + The syntax 'expr.id' may only be used with record labels, properties and fields + + + Event '{0}' is static + + + Event '{0}' is not static + + + The named argument '{0}' did not match any argument or mutable property + + + One or more of the overloads of this method has curried arguments. Consider redesigning these members to take arguments in tupled form. + + + The unnamed arguments do not form a prefix of the arguments of the method called + + + Static optimization conditionals are only for use within the F# library + + + The corresponding formal argument is not optional + + + Invalid optional assignment to a property or field + + + A delegate constructor must be passed a single function value + + + A binding cannot be marked both 'use' and 'rec' + + + The 'VolatileField' attribute may only be used on 'let' bindings in classes + + + Attributes are not permitted on 'let' bindings in expressions + + + The 'DefaultValue' attribute may only be used on 'val' declarations + + + The 'ConditionalAttribute' attribute may only be used on members + + + This is not a valid name for an active pattern + + + The 'EntryPointAttribute' attribute may only be used on function definitions in modules + + + Mutable values cannot be marked 'inline' + + + Mutable values cannot have generic parameters + + + Mutable function values should be written 'let mutable f = (fun args -> ...)' + + + Only functions may be marked 'inline' + + + A literal value cannot be given the [<ThreadStatic>] or [<ContextStatic>] attributes + + + A literal value cannot be marked 'mutable' + + + A literal value cannot be marked 'inline' + + + Literal values cannot have generic parameters + + + This is not a valid constant expression + + + This type is not accessible from this code location + + + Unexpected condition in imported assembly: failed to decode AttributeUsage attribute + + + Unrecognized attribute target. Valid attribute targets are 'assembly', 'module', 'type', 'method', 'property', 'return', 'param', 'field', 'event', 'constructor'. + + + This attribute is not valid for use on this language element. Assembly attributes should be attached to a 'do ()' declaration, if necessary within an F# module. + + + This attribute is not valid for use on this language element + + + Optional arguments cannot be used in custom attributes + + + This property cannot be set + + + This property or field was not found on this custom attribute type + + + A custom attribute must be a reference type + + + The number of args for a custom attribute does not match the expected number of args for the attribute constructor + + + A custom attribute must invoke an object constructor + + + Attribute expressions must be calls to object constructors + + + This attribute cannot be used in this version of F# + + + Invalid inline specification + + + 'use' bindings must be of the form 'use <var> = <expr>' + + + Abstract members are not permitted in an augmentation - they must be defined as part of the type itself + + + Method overrides and interface implementations are not permitted here + + + No abstract or interface member was found that corresponds to this override + + + This override takes a different number of arguments to the corresponding abstract member + + + This method already has a default implementation + + + The method implemented by this default is ambiguous + + + No abstract property was found that corresponds to this override + + + This property overrides or implements an abstract property but the abstract property doesn't have a corresponding {0} + + + Invalid signature for set member + + + This property already has a default implementation + + + The property implemented by this default is ambiguous + + + This new member hides the abstract member '{0}'. Rename the member or use 'override' instead. + + + This new member hides the abstract member '{0}' once tuples, functions, units of measure and/or provided types are erased. Rename the member or use 'override' instead. + + + Interfaces cannot contain definitions of static initializers + + + Interfaces cannot contain definitions of object constructors + + + Interfaces cannot contain definitions of member overrides + + + Interfaces cannot contain definitions of concrete members. You may need to define a constructor on your type to indicate that the type is a class. + + + Constructors cannot be specified in exception augmentations + + + Structs cannot have an object constructor with no arguments. This is a restriction imposed on all CLI languages as structs automatically support a default constructor. + + + Constructors cannot be defined for this type + + + Recursive bindings that include member specifications can only occur as a direct augmentation of a type + + + Only simple variable patterns can be bound in 'let rec' constructs + + + Only record fields and simple 'let' bindings may be marked mutable + + + This member is not sufficiently generic + + + A declaration may only be the [<Literal>] attribute if a constant value is also given, e.g. 'val x : int = 1' + + + A declaration may only be given a value in a signature if the declaration has the [<Literal>] attribute + + + Thread-static and context-static variables must be static and given the [<DefaultValue>] attribute to indicate that the value is initialized to the default value on each new thread + + + Volatile fields must be marked 'mutable' and cannot be thread-static + + + Uninitialized 'val' fields must be mutable and marked with the '[<DefaultValue>]' attribute. Consider using a 'let' binding instead of a 'val' field. + + + Static 'val' fields in types must be mutable, private and marked with the '[<DefaultValue>]' attribute. They are initialized to the 'null' or 'zero' value for their type. Consider also using a 'static let mutable' binding in a class type. + + + This field requires a name + + + Invalid namespace, module, type or union case name + + + Explicit type declarations for constructors must be of the form 'ty1 * ... * tyN -> resTy'. Parentheses may be required around 'resTy' + + + Return types of union cases must be identical to the type being defined, up to abbreviations + + + This is not a valid value for an enumeration literal + + + The type '{0}' is not an interface type + + + Duplicate specification of an interface + + + A field/val declaration is not permitted here + + + A inheritance declaration is not permitted here + + + This declaration opens the module '{0}', which is marked as 'RequireQualifiedAccess'. Adjust your code to use qualified references to the elements of the module instead, e.g. 'List.map' instead of 'map'. This change will ensure that your code is robust as new constructs are added to libraries. + + + This declaration opens the namespace or module '{0}' through a partially qualified path. Adjust this code to use the full path of the namespace. This change will make your code more robust as new constructs are added to the F# and CLI libraries. + + + Local class bindings cannot be marked inline. Consider lifting the definition out of the class or else do not mark it as inline. + + + Type abbreviations cannot have members + + + Enumerations cannot have members + + + Measure declarations may have only static members + + + Structs cannot contain 'do' bindings because the default constructor for structs would not execute these bindings + + + Structs cannot contain value definitions because the default constructor for structs will not execute these bindings. Consider adding additional arguments to the primary constructor for the type. + + + Static value definitions may only be used in types with a primary constructor. Consider adding arguments to the type definition, e.g. 'type X(args) = ...'. + + + Measure declarations may have only static members: constructors are not available + + + A member and a local class binding both have the name '{0}' + + + Type abbreviations cannot have interface declarations + + + Enumerations cannot have interface declarations + + + This type is not an interface type + + + All implemented interfaces should be declared on the initial declaration of the type + + + A default implementation of this interface has already been added because the explicit implementation of the interface was not specified at the definition of the type + + + This member is not permitted in an interface implementation + + + This declaration element is not permitted in an augmentation + + + Types cannot contain nested type definitions + + + type, exception or module + + + type or module + + + The struct, record or union type '{0}' implements the interface 'System.IStructuralEquatable' explicitly. Apply the 'CustomEquality' attribute to the type. + + + The struct, record or union type '{0}' implements the interface 'System.IEquatable<_>' explicitly. Apply the 'CustomEquality' attribute to the type and provide a consistent implementation of the non-generic override 'System.Object.Equals(obj)'. + + + Explicit type specifications cannot be used for exception constructors + + + Exception abbreviations should not have argument lists + + + Abbreviations for Common IL exceptions cannot take arguments + + + Exception abbreviations must refer to existing exceptions or F# types deriving from System.Exception + + + Abbreviations for Common IL exception types must have a matching object constructor + + + Not an exception + + + Invalid module name + + + Invalid type extension + + + The attributes of this type specify multiple kinds for the type + + + The kind of the type specified by its attributes does not match the kind implied by its definition + + + Measure definitions cannot have type parameters + + + This type requires a definition + + + This type abbreviation has one or more declared type parameters that do not appear in the type being abbreviated. Type abbreviations must use all declared type parameters in the type being abbreviated. Consider removing one or more type parameters, or use a concrete type definition that wraps an underlying type, such as 'type C<'a> = C of ...'. + + + Structs, interfaces, enums and delegates cannot inherit from other types + + + Types cannot inherit from multiple concrete types + + + Records, union, abbreviations and struct types cannot have the 'AllowNullLiteral' attribute + + + Types with the 'AllowNullLiteral' attribute may only inherit from or implement types which also allow the use of the null literal + + + Generic types cannot be given the 'StructLayout' attribute + + + Only structs and classes without primary constructors may be given the 'StructLayout' attribute + + + The representation of this type is hidden by the signature. It must be given an attribute such as [<Sealed>], [<Class>] or [<Interface>] to indicate the characteristics of the type. + + + Only classes may be given the 'AbstractClass' attribute + + + Only types representing units-of-measure may be given the 'Measure' attribute + + + Accessibility modifiers are not permitted on overrides or interface implementations + + + Discriminated union types are always sealed + + + Record types are always sealed + + + Assembly code types are always sealed + + + Struct types are always sealed + + + Delegate types are always sealed + + + Enum types are always sealed + + + Interface types and delegate types cannot contain fields + + + Abbreviated types cannot be given the 'Sealed' attribute + + + Cannot inherit a sealed type + + + Cannot inherit from interface type. Use interface ... with instead. + + + Struct types cannot contain abstract members + + + Interface types cannot be sealed + + + Delegate specifications must be of the form 'typ -> typ' + + + Delegate specifications must not be curried types. Use 'typ * ... * typ -> typ' for multi-argument delegates, and 'typ -> (typ -> typ)' for delegates returning function values. + + + Literal enumerations must have type int, uint, int16, uint16, int64, uint64, byte, sbyte or char + + + This type definition involves an immediate cyclic reference through an abbreviation + + + This type definition involves an immediate cyclic reference through a struct field or inheritance relation + + + The syntax 'type X with ...' is reserved for augmentations. Types whose representations are hidden but which have members are now declared in signatures using 'type X = ...'. You may also need to add the '[<Sealed>] attribute to the type definition in the signature + + + Members that extend interface, delegate or enum types must be placed in a module separate to the definition of the type. This module must either have the AutoOpen attribute or be opened explicitly by client code to bring the extension members into scope. + + + The declared type parameters for this type extension do not match the declared type parameters on the original type '{0}' + + + Type definitions may only have one 'inherit' specification and it must be the first declaration + + + 'let' and 'do' bindings must come before member and interface definitions in type definitions + + + This 'inherit' declaration specifies the inherited type but no arguments. Consider supplying arguments, e.g. 'inherit BaseType(args)'. + + + This 'inherit' declaration has arguments, but is not in a type with a primary constructor. Consider adding arguments to your type definition, e.g. 'type X(args) = ...'. + + + This definition may only be used in a type with a primary constructor. Consider adding arguments to your type definition, e.g. 'type X(args) = ...'. + + + Type abbreviations cannot have augmentations + + + The path '{0}' is a namespace. A module abbreviation may not abbreviate a namespace. + + + The type '{0}' is used in an invalid way. A value prior to '{1}' has an inferred type involving '{2}', which is an invalid forward reference. + + + The member '{0}' is used in an invalid way. A use of '{1}' has been inferred prior to the definition of '{2}', which is an invalid forward reference. + + + The attribute 'AutoOpen(\"{0}\")' in the assembly '{1}' did not refer to a valid module or namespace in that assembly and has been ignored + + + Undefined value '{0}' + + + Label {0} not found + + + Incorrect number of type arguments to local call + + + Dynamic invocation of {0} is not supported + + + Taking the address of a literal field is invalid + + + This operation involves taking the address of a value '{0}' represented using a local variable or other special representation. This is invalid. + + + Values marked with 'LiteralAttribute' cannot be mutable + + + Values marked with 'LiteralAttribute' must currently be simple integer, character, Boolean, string or floating point constants + + + Custom marshallers cannot be specified in F# code. Consider using a C# helper function. + + + The MarshalAs attribute could not be decoded + + + The signature for this external function contains type parameters. Constrain the argument and return types to indicate the types of the corresponding C function. + + + The DllImport attribute could not be decoded + + + Literal fields cannot be set + + + GenSetStorage: {0} was represented as a static method but was not an appropriate lambda expression + + + Mutable variables cannot escape their method + + + Compiler error: unexpected unrealized value + + + Main module of program is empty: nothing will happen when it is run + + + This type cannot be used for a literal field + + + Unexpected GetSet annotation on a property + + + The FieldOffset attribute could not be decoded + + + The StructLayout attribute could not be decoded + + + The DefaultAugmentation attribute could not be decoded + + + Reflected definitions cannot contain uses of the prefix splice operator '%' + + + Problem with codepage '{0}': {1} + + + Freely distributed under the Apache 2.0 Open Source License + + + Name of the output file (Short form: -o) + + + Build a console executable + + + Build a Windows executable + + + Build a library (Short form: -a) + + + Build a module that can be added to another assembly + + + Delay-sign the assembly using only the public portion of the strong name key + + + Write the xmldoc of the assembly to the given file + + + Specify a strong name key file + + + Specify a strong name key container + + + Limit which platforms this code can run on: x86, Itanium, x64, anycpu32bitpreferred, or anycpu. The default is anycpu. + + + Only include optimization information essential for implementing inlined constructs. Inhibits cross-module inlining but improves binary compatibility. + + + Don't add a resource to the generated assembly containing F#-specific metadata + + + Print the inferred interface of the assembly to a file + + + Reference an assembly (Short form: -r) + + + Specify a Win32 resource file (.res) + + + Specify a Win32 manifest file + + + Do not include the default Win32 manifest + + + Embed the specified managed resource + + + Link the specified resource to this assembly where the resinfo format is <file>[,<string name>[,public|private]] + + + Emit debug information (Short form: -g) + + + Specify debugging type: full, pdbonly. ('full' is the default and enables attaching a debugger to a running program). + + + Enable optimizations (Short form: -O) + + + Enable or disable tailcalls + + + Enable or disable cross-module optimizations + + + Report all warnings as errors + + + Report specific warnings as errors + + + Set a warning level (0-5) + + + Disable specific warning messages + + + Enable specific warnings that may be off by default + + + Generate overflow checks + + + Define conditional compilation symbols (Short form: -d) + + + Ignore ML compatibility warnings + + + Suppress compiler copyright message + + + Display this usage message (Short form: -?) + + + Specify the codepage used to read source files + + + Output messages in UTF-8 encoding + + + Output messages with fully qualified paths + + + Specify a directory for the include path which is used to resolve source files and assemblies (Short form: -I) + + + Base address for the library to be built + + + Do not reference the default CLI assemblies by default + + + Statically link the F# library and all referenced DLLs that depend on it into the assembly being generated + + + Statically link the given assembly and all referenced DLLs that depend on this assembly. Use an assembly name e.g. mylib, not a DLL name. + + + Use a resident background compilation service to improve compiler startup times. + + + Name the output debug file + + + Resolve assembly references using directory-based rules rather than MSBuild resolution + + + Unrecognized target '{0}', expected 'exe', 'winexe', 'library' or 'module' + + + Unrecognized debug type '{0}', expected 'pdbonly' or 'full' + + + Invalid warning level '{0}' + + + Short form of '{0}' + + + The command-line option '--cliroot' has been deprecated. Use an explicit reference to a specific copy of mscorlib.dll instead. + + + Use to override where the compiler looks for mscorlib.dll and framework components + + + - OUTPUT FILES - + + + - INPUT FILES - + + + - RESOURCES - + + + - CODE GENERATION - + + + - ADVANCED - + + + - MISCELLANEOUS - + + + - LANGUAGE - + + + - ERRORS AND WARNINGS - + + + Unknown --test argument: '{0}' + + + Unrecognized platform '{0}', valid values are 'x86', 'x64', 'Itanium', 'anycpu32bitpreferred', and 'anycpu' + + + The command-line option '{0}' is for internal use only + + + The command-line option '{0}' has been deprecated + + + The command-line option '{0}' has been deprecated. Use '{1}' instead. + + + The command-line option '{0}' has been deprecated. HTML document generation is now part of the F# Power Pack, via the tool FsHtmlDoc.exe. + + + Output warning and error messages in color + + + Enable high-entropy ASLR + + + Specify subsystem version of this assembly + + + Invalid version '{0}' for '--subsystemversion'. The version must be 4.00 or greater. + + + Full name + + + type + + + inherits + + + implements + + + and {0} other overloads + + + union case + + + active pattern result + + + active recognizer + + + field + + + event + + + property + + + custom operation + + + argument + + + patvar + + + namespace + + + module + + + namespace/module + + + from {0} + + + also from {0} + + + generated property + + + generated type + + + Found by AssemblyFolders registry key + + + Found by AssemblyFoldersEx registry key + + + .NET Framework + + + Global Assembly Cache + + + Recursive class hierarchy in type '{0}' + + + Invalid recursive reference to an abstract slot + + + The event '{0}' has a non-standard type. If this event is declared in another CLI language, you may need to access this event using the explicit {1} and {2} methods for the event. If this event is declared in F#, make the type of the event an instantiation of either 'IDelegateEvent<_>' or 'IEvent<_,_>'. + + + The type '{0}' is not accessible from this code location + + + The union cases or fields of the type '{0}' are not accessible from this code location + + + The value '{0}' is not accessible from this code location + + + The union case '{0}' is not accessible from this code location + + + The record, struct or class field '{0}' is not accessible from this code location + + + The struct or class field '{0}' is not accessible from this code location + + + This construct is experimental + + + No Invoke methods found for delegate type + + + More than one Invoke method found for delegate type + + + Delegates are not allowed to have curried signatures + + + Unexpected Expr.TyChoose + + + Note: Lambda-lifting optimizations have not been applied because of the use of this local constrained generic function as a first class value. Adding type constraints may resolve this condition. + + + Identifiers containing '@' are reserved for use in F# code generation + + + The identifier '{0}' is reserved for future use by F# + + + Missing variable '{0}' + + + Partial active patterns may only generate one result + + + The type '{0}' is required here and is unavailable. You must add a reference to assembly '{1}'. + + + A reference to the type '{0}' in assembly '{1}' was found, but the type could not be found in that assembly + + + Internal error or badly formed metadata: not enough type parameters were in scope while importing + + + A reference to the DLL {0} is required by assembly {1}. The imported type {2} is located in the first assembly and could not be resolved. + + + An imported assembly uses the type '{0}' but that type is not public + + + The value '{0}' was marked inline but its implementation makes use of an internal or private function which is not sufficiently accessible + + + The value '{0}' was marked inline but was not bound in the optimization environment + + + Local value {0} not found during optimization + + + A value marked as 'inline' has an unexpected value + + + A value marked as 'inline' could not be inlined + + + Failed to inline the value '{0}' marked 'inline', perhaps because a recursive value was marked 'inline' + + + Recursive ValValue {0} + + + The indentation of this 'in' token is incorrect with respect to the corresponding 'let' + + + Possible incorrect indentation: this token is offside of context started at position {0}. Try indenting this token further or using standard formatting conventions. + + + The '|' tokens separating rules of this pattern match are misaligned by one column. Consider realigning your code or using further indentation. + + + Invalid module/expression/type + + + Multiple types exist called '{0}', taking different numbers of generic parameters. Provide a type instantiation to disambiguate the type resolution, e.g. '{1}'. + + + The instantiation of the generic type '{0}' is missing and can't be inferred from the arguments or return type of this member. Consider providing a type instantiation when accessing this type, e.g. '{1}'. + + + 'global' may only be used as the first name in a qualified path + + + This is not a constructor or literal, or a constructor is being used incorrectly + + + Unexpected empty long identifier + + + The type '{0}' does not contain a field '{1}' + + + Invalid field label + + + Invalid expression '{0}' + + + No constructors are available for the type '{0}' + + + Unexpected error creating debug information file '{0}' + + + This number is outside the allowable range for this integer type + + + '{0}' is not permitted as a character in operator names and is reserved for future use + + + Unexpected character '{0}' + + + This byte array literal contains characters that do not encode as a single byte + + + Identifiers followed by '{0}' are reserved for future use + + + This number is outside the allowable range for 8-bit signed integers + + + This number is outside the allowable range for hexadecimal 8-bit signed integers + + + This number is outside the allowable range for 8-bit unsigned integers + + + This number is outside the allowable range for 16-bit signed integers + + + This number is outside the allowable range for 16-bit unsigned integers + + + This number is outside the allowable range for 32-bit signed integers + + + This number is outside the allowable range for 32-bit unsigned integers + + + This number is outside the allowable range for 64-bit signed integers + + + This number is outside the allowable range for 64-bit unsigned integers + + + This number is outside the allowable range for signed native integers + + + This number is outside the allowable range for unsigned native integers + + + Invalid floating point number + + + This number is outside the allowable range for decimal literals + + + This number is outside the allowable range for 32-bit floats + + + This is not a valid numeric literal. Sample formats include 4, 0x4, 0b0100, 4L, 4UL, 4u, 4s, 4us, 4y, 4uy, 4.0, 4.0f, 4I. + + + This is not a valid byte literal + + + This is not a valid character literal + + + This Unicode encoding is only valid in string literals + + + This token is reserved for future use + + + TABs are not allowed in F# code unless the #indent \"off\" option is used + + + Invalid line number: '{0}' + + + #if directive must appear as the first non-whitespace character on a line + + + #else has no matching #if + + + #endif required for #else + + + #else directive must appear as the first non-whitespace character on a line + + + #endif has no matching #if + + + #endif directive must appear as the first non-whitespace character on a line + + + #if directive should be immediately followed by an identifier + + + Syntax error. Wrong nested #endif, unexpected tokens before it. + + + Expected single line comment or end of line + + + Infix operator member '{0}' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ... + + + Infix operator member '{0}' has {1} initial argument(s). Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ... + + + Infix operator member '{0}' has extra curried arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ... + + + All record, union and struct types in FSharp.Core.dll must be explicitly labelled with 'StructuralComparison' or 'NoComparison' + + + The struct, record or union type '{0}' has the 'StructuralComparison' attribute but the type parameter '{1}' does not satisfy the 'comparison' constraint. Consider adding the 'comparison' constraint to the type parameter + + + The struct, record or union type '{0}' has the 'StructuralComparison' attribute but the component type '{1}' does not satisfy the 'comparison' constraint + + + The struct, record or union type '{0}' is not structurally comparable because the type parameter {1} does not satisfy the 'comparison' constraint. Consider adding the 'NoComparison' attribute to the type '{2}' to clarify that the type is not comparable + + + The struct, record or union type '{0}' is not structurally comparable because the type '{1}' does not satisfy the 'comparison' constraint. Consider adding the 'NoComparison' attribute to the type '{2}' to clarify that the type is not comparable + + + The struct, record or union type '{0}' does not support structural equality because the type parameter {1} does not satisfy the 'equality' constraint. Consider adding the 'NoEquality' attribute to the type '{2}' to clarify that the type does not support structural equality + + + The struct, record or union type '{0}' does not support structural equality because the type '{1}' does not satisfy the 'equality' constraint. Consider adding the 'NoEquality' attribute to the type '{2}' to clarify that the type does not support structural equality + + + The struct, record or union type '{0}' has the 'StructuralEquality' attribute but the type parameter '{1}' does not satisfy the 'equality' constraint. Consider adding the 'equality' constraint to the type parameter + + + The struct, record or union type '{0}' has the 'StructuralEquality' attribute but the component type '{1}' does not satisfy the 'equality' constraint + + + Each argument of the primary constructor for a struct must be given a type, for example 'type S(x1:int, x2: int) = ...'. These arguments determine the fields of the struct. + + + The value '{0}' is unused + + + The recursive object reference '{0}' is unused. The presence of a recursive object reference adds runtime initialization checks to members in this and derived types. Consider removing this recursive object reference. + + + A getter property may have at most one argument group + + + A setter property may have at most two argument groups + + + Invalid property getter or setter + + + An indexer property must be given at least one argument + + + This operation accesses a mutable top-level value defined in another assembly in an unsupported way. The value cannot be accessed through its address. Consider copying the expression to a mutable local, e.g. 'let mutable x = ...', and if necessary assigning the value back after the completion of the operation + + + Type parameters must be placed directly adjacent to the type name, e.g. \"type C<'T>\", not type \"C <'T>\" + + + Type arguments must be placed directly adjacent to the type name, e.g. \"C<'T>\", not \"C <'T>\" + + + The use of the type syntax 'int C' and 'C <int>' is not permitted here. Consider adjusting this type to be written in the form 'C<int>' + + + The type {0} did not contain the field '{1}' + + + The type {0} did not contain the union case '{1}' + + + The module/namespace '{0}' from compilation unit '{1}' did not contain the module/namespace '{2}' + + + The module/namespace '{0}' from compilation unit '{1}' did not contain the val '{2}' + + + The module/namespace '{0}' from compilation unit '{1}' did not contain the namespace, module or type '{2}' + + + The 'UseNullAsTrueValue' attribute flag may only be used with union types that have one nullary case and at least one non-nullary case + + + The parameter '{0}' was inferred to have byref type. Parameters of byref type must be given an explicit type annotation, e.g. 'x1: byref<int>'. When used, a byref parameter is implicitly dereferenced. + + + The generic member '{0}' has been used at a non-uniform instantiation prior to this program point. Consider reordering the members so this member occurs first. Alternatively, specify the full type of the member explicitly, including argument types, return type and any additional generic parameters and constraints. + + + The use of named arguments in union case expressions is reserved for future use. Arguments of the form 'a=b' should be parenthesized. + + + The attribute '{0}' appears in both the implementation and the signature, but the attribute arguments differ. Only the attribute from the signature will be included in the compiled code. + + + Cannot call an abstract base member: '{0}' + + + Could not resolve the ambiguity in the use of a generic construct with an 'unmanaged' constraint at or near this position + + + This construct is for ML compatibility. {0}. You can disable this warning by using '--mlcompatibility' or '--nowarn:62'. + + + The type '{0}' has been marked as having an Explicit layout, but the field '{1}' has not been marked with the 'FieldOffset' attribute + + + Interfaces inherited by other interfaces should be declared using 'inherit ...' instead of 'interface ...' + + + Invalid prefix operator + + + Invalid operator definition. Prefix operator definitions must use a valid prefix operator name. + + + The file extensions '.ml' and '.mli' are for ML compatibility + + + Consider using a file with extension '.ml' or '.mli' instead + + + Active pattern '{0}' is not a function + + + Active pattern '{0}' has a result type containing type variables that are not determined by the input. The common cause is a when a result case is not mentioned, e.g. 'let (|A|B|) (x:int) = A x'. This can be fixed with a type constraint, e.g. 'let (|A|B|) (x:int) : Choice<int,unit> = A x' + + + The FieldOffset attribute can only be placed on members of types marked with the StructLayout(LayoutKind.Explicit) + + + Optional arguments must come at the end of the argument list, after any non-optional arguments + + + Attribute 'System.Diagnostics.ConditionalAttribute' is only valid on methods or attribute classes + + + Extension members cannot provide operator overloads. Consider defining the operator as part of the type definition instead. + + + The name of the MDB file must be <assembly-file-name>.mdb. The --pdb option will be ignored. + + + MDB generation failed. Could not find compatible member {0} + + + Cannot generate MDB debug information. Failed to load the 'MonoSymbolWriter' type from the 'Mono.CompilerServices.SymbolWriter.dll' assembly. + + + The union case named '{0}' conflicts with the generated type '{1}' + + + ReflectedDefinitionAttribute may not be applied to an instance member on a struct type, because the instance member takes an implicit 'this' byref parameter + + + DLLImport bindings must be static members in a class or function definitions in a module + + + When mscorlib.dll or FSharp.Core.dll is explicitly referenced the {0} option must also be passed + + + FSharp.Core.sigdata not found alongside FSharp.Core + + + Did not expect to find optdata resource in FSharp.Core.dll + + + File '{0}' not found alongside FSharp.Core + + + Did not expect to find sigdata resource in FSharp.Core.dll + + + Filename '{0}' contains invalid character '{1}' + + + 'use!' bindings must be of the form 'use! <var> = <expr>' + + + Inner generic functions are not permitted in quoted expressions. Consider adding some type constraints until this function is no longer generic. + + + The type '{0}' is not a valid enumerator type , i.e. does not have a 'MoveNext()' method returning a bool, and a 'Current' property + + + End of file in triple-quote string begun at or before here + + + End of file in triple-quote string embedded in comment begun at or before here + + + This type test or downcast will ignore the unit-of-measure '{0}' + + + Expected type argument or static argument + + + Unmatched '<'. Expected closing '>' + + + Unexpected quotation operator '<@' in type definition. If you intend to pass a verbatim string as a static argument to a type provider, put a space between the '<' and '@' characters. + + + Attempted to parse this as an operator name, but failed + + + Exiting - too many errors + + + The documentation file has no .xml suffix + + + No implementation files specified + + + An AssemblyVersionAttribute specified version '{0}', but this value is invalid and has been ignored + + + Conflicting options specified: 'win32manifest' and 'win32res'. Only one of these can be used. + + + The code in assembly '{0}' makes uses of quotation literals. Static linking may not include components that make use of quotation literals. + + + Code in this assembly makes uses of quotation literals. Static linking may not include components that make use of quotation literals. + + + Static linking may not include a .EXE + + + Static linking may not include a mixed managed/unmanaged DLL + + + Ignoring mixed managed/unmanaged assembly '{0}' during static linking + + + Assembly '{0}' was referenced transitively and the assembly could not be resolved automatically. Static linking will assume this DLL has no dependencies on the F# library or other statically linked DLLs. Consider adding an explicit reference to this DLL. + + + Assembly '{0}' not found in dependency set of target binary. Statically linked roots should be specified using an assembly name, without a DLL or EXE extension. If this assembly was referenced explicitly then it is possible the assembly was not actually required by the generated binary, in which case it should not be statically linked. + + + The key file '{0}' could not be opened + + + A problem occurred writing the binary '{0}': {1} + + + The 'AssemblyVersionAttribute' has been ignored because a version was given using a command line option + + + Error emitting 'System.Reflection.AssemblyCultureAttribute' attribute -- 'Executables cannot be satellite assemblies, Culture should always be empty' + + + Option '--delaysign' overrides attribute 'System.Reflection.AssemblyDelaySignAttribute' given in a source file or added module + + + Option '--keyfile' overrides attribute 'System.Reflection.AssemblyKeyFileAttribute' given in a source file or added module + + + Option '--keycontainer' overrides attribute 'System.Reflection.AssemblyNameAttribute' given in a source file or added module + + + The assembly '{0}' is listed on the command line. Assemblies should be referenced using a command line flag such as '-r'. + + + The resident compilation service was not used because a problem occured in communicating with the server. + + + Problem with filename '{0}': Illegal characters in path. + + + Passing a .resx file ({0}) as a source file to the compiler is deprecated. Use resgen.exe to transform the .resx file into a .resources file to pass as a --resource option. If you are using MSBuild, this can be done via an <EmbeddedResource> item in the .fsproj project file. + + + Character '{0}' is not allowed in provided namespace name '{1}' + + + The provided type '{0}' returned a member with a null or empty member name + + + The provided type '{0}' returned a null member + + + The provided type '{0}' member info '{1}' has null declaring type + + + The provided type '{0}' has member '{1}' which has declaring type '{2}'. Expected declaring type to be the same as provided type. + + + Referenced assembly '{0}' has assembly level attribute '{1}' but no public type provider classes were found + + + Type '{0}' from type provider '{1}' has an empty namespace. Use 'null' for the global namespace. + + + Empty namespace found from the type provider '{0}'. Use 'null' for the global namespace. + + + Provided type '{0}' has 'IsGenericType' as true, but generic types are not supported. + + + Provided type '{0}' has 'IsArray' as true, but array types are not supported. + + + Invalid member '{0}' on provided type '{1}'. Provided type members must be public, and not be generic, virtual, or abstract. + + + Invalid member '{0}' on provided type '{1}'. Only properties, methods and constructors are allowed + + + Property '{0}' on provided type '{1}' has CanRead=true but there was no value from GetGetMethod() + + + Property '{0}' on provided type '{1}' has CanRead=false but GetGetMethod() returned a method + + + Property '{0}' on provided type '{1}' has CanWrite=true but there was no value from GetSetMethod() + + + Property '{0}' on provided type '{1}' has CanWrite=false but GetSetMethod() returned a method + + + One or more errors seen during provided type setup + + + Unexpected exception from provided type '{0}' member '{1}': {2} + + + Unsupported constant type '{0}' + + + Unsupported expression '{0}' from type provider. If you are the author of this type provider, consider adjusting it to provide a different provided expression. + + + Expected provided type named '{0}' but provided type has 'Name' with value '{1}' + + + Event '{0}' on provided type '{1}' has no value from GetAddMethod() + + + Event '{0}' on provided type '{1}' has no value from GetRemoveMethod() + + + Assembly attribute '{0}' refers to a designer assembly '{1}' which cannot be loaded or doesn't exist. {2} + + + The type provider does not have a valid constructor. A constructor taking either no arguments or one argument of type 'TypeProviderConfig' was expected. + + + The type provider '{0}' reported an error: {1} + + + The type provider '{0}' used an invalid parameter in the ParameterExpression: {1} + + + The type provider '{0}' provided a method with a name '{1}' and metadata token '{2}', which is not reported among its methods of its declaring type '{3}' + + + The type provider '{0}' provided a constructor which is not reported among the constructors of its declaring type '{1}' + + + A direct reference to the generated type '{0}' is not permitted. Instead, use a type definition, e.g. 'type TypeAlias = <path>'. This indicates that a type provider adds generated types to your assembly. + + + Expected provided type with path '{0}' but provided type has path '{1}' + + + Unexpected 'null' return value from provided type '{0}' member '{1}' + + + Unexpected exception from member '{0}' of provided type '{1}' member '{2}': {3} + + + Nested provided types do not take static arguments or generic parameters + + + Invalid static argument to provided type. Expected an argument of kind '{0}'. + + + An error occured applying the static arguments to a provided type + + + Unknown static argument kind '{0}' when resolving a reference to a provided type '{1}' + + + invalid namespace for provided type + + + invalid full name for provided type + + + The type provider returned 'null', which is not a valid return value from '{0}' + + + The type provider constructor has thrown an exception: {0} + + + Type provider '{0}' returned null from GetInvokerExpression. + + + The type provider '{0}' returned an invalid type from 'ApplyStaticArguments'. A type with name '{1}' was expected, but a type with name '{2}' was returned. + + + This type test or downcast will erase the provided type '{0}' to the type '{1}' + + + This downcast will erase the provided type '{0}' to the type '{1}'. + + + This type test with a provided type '{0}' is not allowed because this provided type will be erased to '{1}' at runtime. + + + Cannot inherit from erased provided type + + + Assembly '{0}' hase TypeProviderAssembly attribute with invalid value '{1}'. The value should be a valid assembly name + + + Invalid member name. Members may not have name '.ctor' or '.cctor' + + + The function or member '{0}' is used in a way that requires further type annotations at its definition to ensure consistency of inferred types. The inferred signature is '{1}'. + + + The number of type arguments did not match: '{0}' given, '{1}' expected. This may be related to a previously reported error. + + + Cannot override inherited member '{0}' because it is sealed + + + The type provider '{0}' reported an error in the context of provided type '{1}', member '{2}'. The error: {3} + + + An exception occurred when accessing the '{0}' of a provided type: {1} + + + The '{0}' of a provided type was null or empty. + + + Character '{0}' is not allowed in provided type name '{1}' + + + In queries, '{0}' must use a simple pattern + + + A custom query operation for '{0}' is required but not specified + + + Named static arguments must come after all unnamed static arguments + + + The static parameter '{0}' of the provided type '{1}' requires a value. Static parameters to type providers may be optionally specified using named arguments, e.g. '{2}<{3}=...>'. + + + No static parameter exists with name '{0}' + + + The static parameter '{0}' has already been given a value + + + Multiple static parameters exist with name '{0}' + + + A custom operation may not be used in conjunction with a non-value or recursive 'let' binding in another part of this computation expression + + + A custom operation may not be used in conjunction with 'use', 'try/with', 'try/finally', 'if/then/else' or 'match' operators within this computation expression + + + The custom operation '{0}' refers to a method which is overloaded. The implementations of custom operations may not be overloaded. + + + A try/finally expression may not be used within a computation expression with uses of custom operators. Consider using a sequence expression instead. + + + A try/with expression may not be used within a within a computation expression with uses of custom operators. Consider using a sequence expression instead. + + + An if/then/else expression may not be used within a computation expression with uses of custom operators. Consider using either an if/then expression, or use a sequence expression instead. + + + Invalid argument to 'methodhandleof' during codegen + + + A reference to a provided type was missing a value for the static parameter '{0}'. You may need to recompile one or more referenced assemblies. + + + A reference to a provided type had an invalid value '{0}' for a static parameter. You may need to recompile one or more referenced assemblies. + + + '{0}' is not used correctly. This is a custom operation in this query or computation expression. + + + '{0}' is not used correctly. Usage: {1}. This is a custom operation in this query or computation expression. + + + {0} var in collection {1} (outerKey = innerKey). Note that parentheses are required after '{2}' + + + {0} var in collection {1} (outerKey = innerKey) into group. Note that parentheses are required after '{2}' + + + {0} collection into var + + + '{0}' must be followed by a variable name. Usage: {1}. + + + Incorrect syntax for '{0}'. Usage: {1}. + + + '{0}' must come after a 'for' selection clause and be followed by the rest of the query. Syntax: ... {1} ... + + + '{0}' is used with an incorrect number of arguments. This is a custom operation in this query or computation expression. Expected {1} argument(s), but given {2}. + + + Expected an expression after this point + + + Expected a type after this point + + + Unmatched '[<'. Expected closing '>]' + + + Unexpected end of input in 'match' expression. Expected 'match <expr> with | <pat> -> <expr> | <pat> -> <expr> ...'. + + + Unexpected end of input in 'try' expression. Expected 'try <expr> with <rules>' or 'try <expr> finally <expr>'. + + + Unexpected end of input in 'while' expression. Expected 'while <expr> do <expr>'. + + + Unexpected end of input in 'for' expression. Expected 'for <pat> in <expr> do <expr>'. + + + Unexpected end of input in 'match' or 'try' expression + + + Unexpected end of input in 'then' branch of conditional expression. Expected 'if <expr> then <expr>' or 'if <expr> then <expr> else <expr>'. + + + Unexpected end of input in 'else' branch of conditional expression. Expected 'if <expr> then <expr>' or 'if <expr> then <expr> else <expr>'. + + + Unexpected end of input in body of lambda expression. Expected 'fun <pat> ... <pat> -> <expr>'. + + + Unexpected end of input in type arguments + + + Unexpected end of input in type signature + + + Unexpected end of input in type definition + + + Unexpected end of input in object members + + + Unexpected end of input in value, function or member definition + + + Unexpected end of input in expression + + + Unexpected end of type. Expected a name after this point. + + + Incomplete value or function definition. If this is in an expression, the body of the expression must be indented to the same column as the 'let' keyword. + + + Incomplete value definition. If this is in an expression, the body of the expression must be indented to the same column as the 'let!' keyword. + + + Incomplete value definition. If this is in an expression, the body of the expression must be indented to the same column as the 'use!' keyword. + + + Incomplete value definition. If this is in an expression, the body of the expression must be indented to the same column as the 'use' keyword. + + + Missing 'do' in 'while' expression. Expected 'while <expr> do <expr>'. + + + Missing 'do' in 'for' expression. Expected 'for <pat> in <expr> do <expr>'. + + + Invalid join relation in '{0}'. Expected 'expr <op> expr', where <op> is =, =?, ?= or ?=?. + + + Calls + + + Invalid number of generic arguments to type '{0}' in provided type. Expected '{1}' arguments, given '{2}'. + + + Invalid value '{0}' for unit-of-measure parameter '{1}' + + + Invalid value unit-of-measure parameter '{0}' + + + Property '{0}' on provided type '{1}' is neither readable nor writable as it has CanRead=false and CanWrite=false + + + A use of 'into' must be followed by the remainder of the computation + + + The operator '{0}' does not accept the use of 'into' + + + The definition of the custom operator '{0}' does not use a valid combination of attribute flags + + + This type definition may not have the 'CLIMutable' attribute. Only record types may have this attribute. + + + 'member val' definitions are only permitted in types with a primary constructor. Consider adding arguments to your type definition, e.g. 'type X(args) = ...'. + + + Property definitions may not be declared mutable. To indicate that this property can be set, use 'member val PropertyName = expr with get,set'. + + + To indicate that this property can be set, use 'member val PropertyName = expr with get,set'. + + + Type '{0}' is illegal because in byref<T>, T cannot contain byref types. + + + Type provider assembly '{0}' is not trusted and will not be loaded for security reasons. This may cause subsequent build errors. See the 'F# Tools' section of Visual Studio options for more information. + + + F# supports a maximum array rank of 4 + + + In queries, use the form 'for x in n .. m do ...' for ranging over integers + + + 'while' expressions may not be used in queries + + + 'try/finally' expressions may not be used in queries + + + 'use' expressions may not be used in queries + + + 'let!', 'use!' and 'do!' expressions may not be used in queries + + + 'return' and 'return!' may not be used in queries + + + This is not a known query operator. Query operators are identifiers such as 'select', 'where', 'sortBy', 'thenBy', 'groupBy', 'groupValBy', 'join', 'groupJoin', 'sumBy' and 'averageBy', defined using corresponding methods on the 'QueryBuilder' type. + + + 'try/with' expressions may not be used in queries + + + This 'let' definition may not be used in a query. Only simple value definitions may be used in queries. + + + Too many static parameters. Expected at most {0} parameters, but got {1} unnamed and {2} named parameters. + + + Invalid provided literal value '{0}' + + + The 'anycpu32bitpreferred' platform can only be used with EXE targets. You must use 'anycpu' instead. + + + This member, function or value declaration may not be declared 'inline' + + + The provider '{0}' returned a non-generated type '{1}' in the context of a set of generated types. Consider adjusting the type provider to only return generated types. + + + Arguments to query operators may require parentheses, e.g. 'where (x > y)' or 'groupBy (x.Length / 10)' + + + The 'anycpu32bitpreferred' platform flag may only be used with .NET Framework versions 4.5 and greater. + + + A quotation may not involve an assignment to or taking the address of a captured local variable + + + + 1 overload + + + + {0} overloads + + + Erased to + + + Unexpected token '{0}' or incomplete expression + + + Quotations cannot contain byref types + + + Cannot find code target for this attribute, possibly because the code after the attribute is incomplete. + + + Type name cannot be empty. + + + Problem reading assembly '{0}': {1} + + + Invalid provided field. Provided fields of erased provided types must be literals. + + + (loading description...) + + + (description unavailable...) + + + A type variable has been constrained by multiple different class types. A type variable may only have one class constraint. + + + 'match' expressions may not be used in queries + + + Infix operator member '{0}' has {1} initial argument(s). Expected a tuple of 3 arguments + + + The operator '{0}' cannot be resolved. Consider opening the module 'Microsoft.FSharp.Linq.NullableOperators'. + + + '{0}' must be followed by 'in'. Usage: {1}. + + + Neither 'member val' nor 'override val' definitions are permitted in object expressions. + + + Copy-and-update record expressions must include at least one field. + + + '_' cannot be used as field name + + + The provided types generated by this use of a type provider may not be used from other F# assemblies and should be marked internal or private. Consider using 'type internal TypeName = ...' or 'type private TypeName = ...'. + + + A property's getter and setter must have the same type. Property '{0}' has getter of type '{1}' but setter of type '{2}'. + + + Array method '{0}' is supplied by the runtime and cannot be directly used in code. For operations with array elements consider using family of GetArray/SetArray functions from LanguagePrimitives.IntrinsicFunctions module. + + \ No newline at end of file diff --git a/src/fsharp/FSharp.Compiler-proto/FSharp.Compiler-proto.fsproj b/src/fsharp/FSharp.Compiler-proto/FSharp.Compiler-proto.fsproj new file mode 100644 index 0000000..9fe60a4 --- /dev/null +++ b/src/fsharp/FSharp.Compiler-proto/FSharp.Compiler-proto.fsproj @@ -0,0 +1,443 @@ + + + + + $(MSBuildProjectDirectory)\..\.. + Proto + 10.0.0 + 2.0 + False + + + + AnyCPU + {33E0FB8C-93DC-4AD7-9DCD-9FBDA6C2F061} + Library + FSharp.Compiler-proto + BUILDING_PROTO;BUILDING_WITH_LKG;COMPILER;INCLUDE_METADATA_READER;INCLUDE_METADATA_WRITER;$(DefineConstants) + $(NoWarn);35;44;62;9;60;86;47;1203 + LKG + true + $(OtherFlags) --warnon:1182 + v4.0 + + + + + + + FSComp.txt + + + + --lexlib Internal.Utilities.Text.Lexing + lex.fsl + + + --lexlib Internal.Utilities.Text.Lexing + illex.fsl + + + Microsoft.FSharp.Compiler.Parser + Microsoft.FSharp.Compiler + --internal --lexlib Internal.Utilities.Text.Lexing --parslib Internal.Utilities.Text.Parsing + pars.fsy + + + Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiParser + Microsoft.FSharp.Compiler.AbstractIL + --internal --lexlib Internal.Utilities.Text.Lexing --parslib Internal.Utilities.Text.Parsing + ilpars.fsy + + + assemblyinfo.FSharp.Compiler.dll.fs + + + sformat.fsi + + + sformat.fs + + + sr.fsi + + + sr.fs + + + prim-lexing.fsi + + + prim-lexing.fs + + + prim-parsing.fsi + + + prim-parsing.fs + + + resizearray.fsi + + + resizearray.fs + + + HashMultiMap.fsi + + + HashMultiMap.fs + + + TaggedCollections.fsi + + + TaggedCollections.fs + + + FlatList.fs + + + illib.fs + + + filename.fsi + + + filename.fs + + + zmap.fsi + + + zmap.fs + + + zset.fsi + + + zset.fs + + + bytes.fsi + + + bytes.fs + + + ildiag.fsi + + + ildiag.fs + + + ReferenceResolution.fs + + + il.fsi + + + il.fs + + + ilx.fsi + + + ilx.fs + + + ilascii.fsi + + + ilascii.fs + + + ilprint.fsi + + + ilprint.fs + + + ilmorph.fsi + + + ilmorph.fs + + + ilsupp.fsi + + + ilsupp.fs + + + + + ilbinary.fsi + + + ilbinary.fs + + + lib.fs + + + range.fsi + + + range.fs + + + ErrorLogger.fs + + + InternalCollections.fsi + + + InternalCollections.fs + + + ilread.fsi + + + ilread.fs + + + ilwrite.fsi + + + ilwrite.fs + + + ilreflect.fs + + + CompilerLocationUtils.fs + + + PrettyNaming.fs + + + ilxsettings.fs + + + pubclo.fsi + + + pubclo.fs + + + cu_erase.fs + + + InternalFileSystemUtils.fsi + + + InternalFileSystemUtils.fs + + + unilex.fsi + + + unilex.fs + + + layout.fsi + + + layout.fs + + + ast.fs + + + + lexhelp.fsi + + + lexhelp.fs + + + + sreflect.fsi + + + sreflect.fs + + + QueueList.fs + + + tast.fs + + + env.fs + + + tastops.fsi + + + tastops.fs + + + pickle.fsi + + + pickle.fs + + + lexfilter.fs + + + import.fsi + + + import.fs + + + infos.fs + + + NicePrint.fs + + + augment.fsi + + + augment.fs + + + typrelns.fs + + + patcompile.fsi + + + patcompile.fs + + + outcome.fsi + + + outcome.fs + + + csolve.fsi + + + csolve.fs + + + formats.fsi + + + formats.fs + + + nameres.fsi + + + nameres.fs + + + unsolved.fs + + + creflect.fsi + + + creflect.fs + + + check.fsi + + + check.fs + + + tc.fsi + + + tc.fs + + + opt.fsi + + + opt.fs + + + detuple.fsi + + + detuple.fs + + + tlr.fsi + + + tlr.fs + + + lowertop.fs + + + ilxgen.fsi + + + ilxgen.fs + + + TraceCall.fsi + + + TraceCall.fs + + + build.fsi + + + build.fs + + + fscopts.fsi + + + fscopts.fs + + + IncrementalBuild.fsi + + + IncrementalBuild.fs + + + fsc.fs + + + + + + + + + + + + + + + + + + + + diff --git a/src/fsharp/FSharp.Compiler-proto/Makefile.in b/src/fsharp/FSharp.Compiler-proto/Makefile.in new file mode 100644 index 0000000..98eb27c --- /dev/null +++ b/src/fsharp/FSharp.Compiler-proto/Makefile.in @@ -0,0 +1,189 @@ +NAME=FSharp.Compiler-proto +ASSEMBLY = $(NAME).dll + +srcdir := @abs_srcdir@/ + +include @abs_top_builddir@/config.make + +CONFIG=proto + +FSC=$(bootstrapdir)fsc.exe + +FLAGS += --target:library + +DEFINES += \ + --define:BUILDING_WITH_LKG \ + --define:BUILDING_PROTO \ + --define:COMPILER \ + --define:NO_STRONG_NAMES \ + --define:INCLUDE_METADATA_READER \ + --define:INCLUDE_METADATA_WRITER + +REFERENCES += \ + -r:$(bootstrapdir)FSharp.Core.dll \ + -r:$(monolibdir)System.Windows.Forms.dll + + +sources = \ + $(tmpdir)FSComp.fs \ + ../../assemblyinfo/assemblyinfo.FSharp.Compiler.dll.fs \ + ../../utils/sformat.fsi \ + ../../utils/sformat.fs \ + ../sr.fsi \ + ../sr.fs \ + ../../utils/prim-lexing.fsi \ + ../../utils/prim-lexing.fs \ + ../../utils/prim-parsing.fsi \ + ../../utils/prim-parsing.fs \ + ../../utils/resizearray.fsi \ + ../../utils/resizearray.fs \ + ../../utils/HashMultiMap.fsi \ + ../../utils/HashMultiMap.fs \ + ../../utils/TaggedCollections.fsi \ + ../../utils/TaggedCollections.fs \ + ../FlatList.fs \ + ../../absil/illib.fs \ + ../../utils/filename.fsi \ + ../../utils/filename.fs \ + ../../absil/zmap.fsi \ + ../../absil/zmap.fs \ + ../../absil/zset.fsi \ + ../../absil/zset.fs \ + ../../absil/bytes.fsi \ + ../../absil/bytes.fs \ + ../../absil/ildiag.fsi \ + ../../absil/ildiag.fs \ + ../ReferenceResolution.fs \ + ../../absil/il.fsi \ + ../../absil/il.fs \ + ../../absil/ilx.fsi \ + ../../absil/ilx.fs \ + ../../absil/ilascii.fsi \ + ../../absil/ilascii.fs \ + ../../absil/ilprint.fsi \ + ../../absil/ilprint.fs \ + ../../absil/ilmorph.fsi \ + ../../absil/ilmorph.fs \ + ../../absil/ilsupp.fsi \ + ../../absil/ilsupp.fs \ + $(tmpdir)ilpars.fs \ + $(tmpdir)illex.fs \ + ../../absil/ilbinary.fsi \ + ../../absil/ilbinary.fs \ + ../lib.fs \ + ../range.fsi \ + ../range.fs \ + ../ErrorLogger.fs \ + ../InternalCollections.fsi \ + ../InternalCollections.fs \ + ../../absil/ilread.fsi \ + ../../absil/ilread.fs \ + ../../absil/ilwrite.fsi \ + ../../absil/ilwrite.fs \ + ../../absil/ilreflect.fs \ + ../../utils/CompilerLocationUtils.fs \ + ../PrettyNaming.fs \ + ../../ilx/ilxsettings.fs \ + ../../ilx/pubclo.fsi \ + ../../ilx/pubclo.fs \ + ../../ilx/cu_erase.fsi \ + ../../ilx/cu_erase.fs \ + ../InternalFileSystemUtils.fsi \ + ../InternalFileSystemUtils.fs \ + ../unilex.fsi \ + ../unilex.fs \ + ../layout.fsi \ + ../layout.fs \ + ../ast.fs \ + $(tmpdir)pars.fs \ + ../lexhelp.fsi \ + ../lexhelp.fs \ + $(tmpdir)lex.fs \ + ../sreflect.fsi \ + ../sreflect.fs \ + ../QueueList.fs \ + ../tast.fs \ + ../env.fs \ + ../tastops.fsi \ + ../tastops.fs \ + ../pickle.fsi \ + ../pickle.fs \ + ../lexfilter.fs \ + ../import.fsi \ + ../import.fs \ + ../infos.fs \ + ../NicePrint.fs \ + ../augment.fsi \ + ../augment.fs \ + ../typrelns.fs \ + ../patcompile.fsi \ + ../patcompile.fs \ + ../outcome.fsi \ + ../outcome.fs \ + ../csolve.fsi \ + ../csolve.fs \ + ../formats.fsi \ + ../formats.fs \ + ../nameres.fsi \ + ../nameres.fs \ + ../unsolved.fs \ + ../creflect.fsi \ + ../creflect.fs \ + ../check.fsi \ + ../check.fs \ + ../tc.fsi \ + ../tc.fs \ + ../opt.fsi \ + ../opt.fs \ + ../detuple.fsi \ + ../detuple.fs \ + ../tlr.fsi \ + ../tlr.fs \ + ../lowertop.fs \ + ../ilxgen.fsi \ + ../ilxgen.fs \ + ../TraceCall.fs \ + ../build.fsi \ + ../build.fs \ + ../fscopts.fsi \ + ../fscopts.fs \ + ../vs/IncrementalBuild.fsi \ + ../vs/IncrementalBuild.fs \ + ../fsc.fs + +RESOURCES= \ + $(tmpdir)FSStrings.resources \ + $(tmpdir)FSComp.resources + +$(tmpdir)FSComp.fs $(tmpdir)FSComp.resources: ../FSComp.txt + mono $(MONO_OPTIONS) $(FSSRGEN) $< $(tmpdir)FSComp.fs $(tmpdir)FSComp.resx + resgen $(tmpdir)FSComp.resx $(tmpdir)FSComp.resources + +$(tmpdir)FSStrings.resources: ../FSStrings.resx + resgen $< $@ + +$(tmpdir)lex.fs: ../lex.fsl + mono $(MONO_OPTIONS) $(FSLEX) $< -o $@ --lexlib Internal.Utilities.Text.Lexing --unicode + @-mkdir -p ../FSharp.Compiler/.libs/ + cp -p $(tmpdir)lex.fs* ../FSharp.Compiler/.libs/ + +$(tmpdir)illex.fs: ../../absil/illex.fsl + mono $(MONO_OPTIONS) $(FSLEX) $< -o $@ --lexlib Internal.Utilities.Text.Lexing --unicode + @-mkdir -p ../FSharp.Compiler/.libs/ + cp -p $(tmpdir)illex.fs* ../FSharp.Compiler/.libs/ + +$(tmpdir)pars.fs: ../pars.fsy + mono $(MONO_OPTIONS) $(FSYACC) $< -o $@ --internal --open Microsoft.FSharp.Compiler --module Microsoft.FSharp.Compiler.Parser --lexlib Internal.Utilities.Text.Lexing --parslib Internal.Utilities.Text.Parsing | tee $@.report | grep "time" + @-mkdir -p ../FSharp.Compiler/.libs/ + cp -p $(tmpdir)pars.fs* ../FSharp.Compiler/.libs/ + +$(tmpdir)ilpars.fs: ../../absil/ilpars.fsy + mono $(MONO_OPTIONS) $(FSYACC) $< -o $@ --internal --module Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiParser --lexlib Internal.Utilities.Text.Lexing --parslib Internal.Utilities.Text.Parsing | tee $@.report | grep "time" + @-mkdir -p ../FSharp.Compiler/.libs/ + cp -p $(tmpdir)ilpars.fs* ../FSharp.Compiler/.libs/ + +do-proto: do-4-0 + +clean: clean-4-0 + +include $(topdir)/src/fsharp/targets.make diff --git a/src/fsharp/FSharp.Compiler-proto/illex.fs b/src/fsharp/FSharp.Compiler-proto/illex.fs new file mode 100644 index 0000000..3322b0e --- /dev/null +++ b/src/fsharp/FSharp.Compiler-proto/illex.fs @@ -0,0 +1,544 @@ +# 2 "..\..\absil\illex.fsl" + +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +module internal Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiLexer + +open Internal.Utilities +open Internal.Utilities.Collections +open Internal.Utilities.Text +open Internal.Utilities.Text.Lexing +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library + +open Microsoft.FSharp.Compiler.AbstractIL.Diagnostics +open Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiParser +open Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiConstants + + +let lexeme (lexbuf : LexBuffer) = new System.String(lexbuf.Lexeme) + +let unexpectedChar lexbuf = + dprintf "Unexpected character '%s'" (lexeme lexbuf); + raise Parsing.RecoverableParseError ;; + +// -------------------------------------------------------------------- +// Keywords +// -------------------------------------------------------------------- + +let keywords = + lazy [ "void",VOID; + "bool",BOOL; + "bytearray",BYTEARRAY; + "char",CHAR; + "class",CLASS; + "default",DEFAULT; + "explicit",EXPLICIT; + "float32",FLOAT32; + "float64",FLOAT64; + "instance",INSTANCE; + "int",INT; + "int16",INT16; + "int32",INT32; + "int64",INT64; + "int8",INT8; + "method",METHOD; + "native",NATIVE; + "object", OBJECT; + "string",STRING; + "uint",UINT; + "uint16",UINT16; + "uint32",UINT32; + "uint64",UINT64; + "uint8",UINT8; + "unmanaged",UNMANAGED; + "unsigned",UNSIGNED; + "value",VALUE; + "valuetype",VALUETYPE; + "vararg",VARARG ] + +// -------------------------------------------------------------------- +// Instructions +// -------------------------------------------------------------------- + +let kwdInstrTable = + lazy + (let t = HashMultiMap(1000, HashIdentity.Structural) + List.iter t.Add (Lazy.force keywords); + let addTable f l = List.iter (fun (x,i) -> t.Add (String.concat "." x,f i)) (Lazy.force l) + addTable (fun i -> INSTR_NONE i) NoArgInstrs; + addTable (fun i -> INSTR_I i) Int32Instrs; + addTable (fun i -> INSTR_I32_I32 i) Int32Int32Instrs; + addTable (fun i -> INSTR_I8 i) Int64Instrs; + addTable (fun i -> INSTR_R i) DoubleInstrs; + addTable (fun i -> INSTR_METHOD i) MethodSpecInstrs; + addTable (fun i -> INSTR_TYPE i) TypeInstrs; + addTable (fun i -> INSTR_INT_TYPE i) IntTypeInstrs; + addTable (fun i -> INSTR_VALUETYPE i) ValueTypeInstrs; + addTable (fun i -> INSTR_STRING i) StringInstrs; + addTable (fun i -> INSTR_TOK i) TokenInstrs; + t) + +let kwdOrInstr s = (Lazy.force kwdInstrTable).[s] (* words *) + +let eval = function + | '0' -> 0 | '1' -> 1 | '2' -> 2 | '3' -> 3 | '4' -> 4 | '5' -> 5 + | '6' -> 6 | '7' -> 7 | '8' -> 8 | '9' -> 9 + | 'A' -> 10 | 'B' -> 11 | 'C' -> 12 | 'D' -> 13 | 'E' -> 14 | 'F' -> 15 + | 'a' -> 10 | 'b' -> 11 | 'c' -> 12 | 'd' -> 13 | 'e' -> 14 | 'f' -> 15 + | _ -> failwith "bad hexbyte" + +let kwdOrInstrOrId s = if (Lazy.force kwdInstrTable).ContainsKey s then kwdOrInstr s else VAL_ID s + + +# 105 "illex.fs" +let trans : uint16[] array = + [| + (* State 0 *) + [| 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 32us; 32us; 33us; 33us; 32us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 32us; 4us; 33us; 33us; 31us; 33us; 5us; 33us; 6us; 7us; 3us; 14us; 1us; 23us; 2us; 10us; 15us; 16us; 16us; 16us; 16us; 16us; 16us; 16us; 16us; 16us; 13us; 33us; 11us; 33us; 12us; 31us; 31us; 17us; 17us; 17us; 17us; 17us; 18us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 8us; 33us; 9us; 33us; 31us; 31us; 19us; 20us; 21us; 22us; 17us; 17us; 31us; 31us; 30us; 31us; 31us; 27us; 26us; 28us; 31us; 31us; 31us; 25us; 24us; 31us; 29us; 31us; 31us; 31us; 31us; 31us; 33us; 33us; 33us; 33us; 33us; 128us; 31us; 129us; 31us; 130us; 31us; 131us; 31us; 132us; 31us; 133us; 31us; 134us; 31us; 135us; 31us; 136us; 31us; 137us; 31us; 138us; 31us; 139us; 31us; 140us; 31us; 141us; 31us; 142us; 31us; 143us; 31us; 144us; 31us; 145us; 31us; 146us; 31us; 147us; 31us; 148us; 31us; 149us; 31us; 150us; 31us; 151us; 31us; 152us; 31us; 153us; 31us; 154us; 31us; 155us; 31us; 156us; 31us; 157us; 31us; 158us; 31us; 159us; 31us; 160us; 31us; 161us; 31us; 162us; 31us; 163us; 31us; 164us; 31us; 165us; 31us; 166us; 31us; 167us; 31us; 168us; 31us; 169us; 31us; 170us; 31us; 171us; 31us; 172us; 31us; 173us; 31us; 174us; 31us; 175us; 31us; 176us; 31us; 177us; 31us; 178us; 31us; 179us; 31us; 180us; 31us; 181us; 31us; 182us; 31us; 183us; 31us; 184us; 31us; 185us; 31us; 186us; 31us; 187us; 31us; 188us; 31us; 189us; 31us; 190us; 31us; 191us; 31us; 192us; 31us; 193us; 31us; 194us; 31us; 195us; 31us; 196us; 31us; 197us; 31us; 198us; 31us; 199us; 31us; 200us; 31us; 201us; 31us; 202us; 31us; 203us; 31us; 204us; 31us; 205us; 31us; 206us; 31us; 207us; 31us; 208us; 31us; 209us; 31us; 210us; 31us; 211us; 31us; 212us; 31us; 213us; 31us; 214us; 31us; 215us; 31us; 216us; 31us; 217us; 31us; 218us; 31us; 219us; 31us; 220us; 31us; 221us; 31us; 222us; 31us; 223us; 31us; 224us; 31us; 225us; 31us; 226us; 31us; 227us; 31us; 228us; 31us; 229us; 31us; 230us; 31us; 231us; 31us; 232us; 31us; 233us; 31us; 234us; 31us; 235us; 31us; 236us; 31us; 237us; 31us; 238us; 31us; 239us; 31us; 240us; 31us; 241us; 31us; 242us; 31us; 243us; 31us; 244us; 31us; 245us; 31us; 246us; 31us; 247us; 31us; 248us; 31us; 249us; 31us; 250us; 31us; 251us; 31us; 252us; 31us; 253us; 31us; 254us; 31us; 255us; 31us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 34us; |]; + (* State 1 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 2 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 135us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 3 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 4 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 5 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 6 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 7 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 8 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 9 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 10 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 11 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 12 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 13 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 134us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 14 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 132us; 132us; 132us; 132us; 132us; 132us; 132us; 132us; 132us; 132us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 15 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 122us; 65535us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 123us; 123us; 123us; 123us; 124us; 123us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 123us; 123us; 123us; 123us; 124us; 123us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 129us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 16 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 122us; 65535us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 123us; 123us; 123us; 123us; 124us; 123us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 123us; 123us; 123us; 123us; 124us; 123us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 17 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 102us; 102us; 102us; 102us; 102us; 102us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 102us; 102us; 102us; 102us; 102us; 102us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 18 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 102us; 102us; 102us; 102us; 102us; 114us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 102us; 102us; 102us; 102us; 102us; 102us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 19 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 102us; 102us; 102us; 102us; 102us; 102us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 102us; 102us; 102us; 113us; 102us; 102us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 20 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 102us; 102us; 102us; 102us; 102us; 102us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 102us; 102us; 102us; 102us; 110us; 102us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 111us; 112us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 21 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 102us; 102us; 102us; 102us; 102us; 102us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 102us; 102us; 102us; 102us; 104us; 102us; 106us; 35us; 35us; 35us; 35us; 107us; 35us; 108us; 105us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 22 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 102us; 102us; 102us; 102us; 102us; 102us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 102us; 102us; 102us; 102us; 102us; 102us; 35us; 35us; 103us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 23 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 94us; 94us; 94us; 94us; 94us; 94us; 94us; 94us; 94us; 94us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 24 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 85us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 86us; 84us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 25 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 83us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 26 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 82us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 27 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 68us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 28 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 64us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 29 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 61us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 30 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 45us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 31 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 35us; 129us; 35us; 130us; 35us; 131us; 35us; 132us; 35us; 133us; 35us; 134us; 35us; 135us; 35us; 136us; 35us; 137us; 35us; 138us; 35us; 139us; 35us; 140us; 35us; 141us; 35us; 142us; 35us; 143us; 35us; 144us; 35us; 145us; 35us; 146us; 35us; 147us; 35us; 148us; 35us; 149us; 35us; 150us; 35us; 151us; 35us; 152us; 35us; 153us; 35us; 154us; 35us; 155us; 35us; 156us; 35us; 157us; 35us; 158us; 35us; 159us; 35us; 160us; 35us; 161us; 35us; 162us; 35us; 163us; 35us; 164us; 35us; 165us; 35us; 166us; 35us; 167us; 35us; 168us; 35us; 169us; 35us; 170us; 35us; 171us; 35us; 172us; 35us; 173us; 35us; 174us; 35us; 175us; 35us; 176us; 35us; 177us; 35us; 178us; 35us; 179us; 35us; 180us; 35us; 181us; 35us; 182us; 35us; 183us; 35us; 184us; 35us; 185us; 35us; 186us; 35us; 187us; 35us; 188us; 35us; 189us; 35us; 190us; 35us; 191us; 35us; 192us; 35us; 193us; 35us; 194us; 35us; 195us; 35us; 196us; 35us; 197us; 35us; 198us; 35us; 199us; 35us; 200us; 35us; 201us; 35us; 202us; 35us; 203us; 35us; 204us; 35us; 205us; 35us; 206us; 35us; 207us; 35us; 208us; 35us; 209us; 35us; 210us; 35us; 211us; 35us; 212us; 35us; 213us; 35us; 214us; 35us; 215us; 35us; 216us; 35us; 217us; 35us; 218us; 35us; 219us; 35us; 220us; 35us; 221us; 35us; 222us; 35us; 223us; 35us; 224us; 35us; 225us; 35us; 226us; 35us; 227us; 35us; 228us; 35us; 229us; 35us; 230us; 35us; 231us; 35us; 232us; 35us; 233us; 35us; 234us; 35us; 235us; 35us; 236us; 35us; 237us; 35us; 238us; 35us; 239us; 35us; 240us; 35us; 241us; 35us; 242us; 35us; 243us; 35us; 244us; 35us; 245us; 35us; 246us; 35us; 247us; 35us; 248us; 35us; 249us; 35us; 250us; 35us; 251us; 35us; 252us; 35us; 253us; 35us; 254us; 35us; 255us; 35us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 32 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 33 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 34 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 35 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 36 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 37 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 38us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 65535us; 65535us; 65535us; 65535us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 38us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 38us; 129us; 38us; 130us; 38us; 131us; 38us; 132us; 38us; 133us; 38us; 134us; 38us; 135us; 38us; 136us; 38us; 137us; 38us; 138us; 38us; 139us; 38us; 140us; 38us; 141us; 38us; 142us; 38us; 143us; 38us; 144us; 38us; 145us; 38us; 146us; 38us; 147us; 38us; 148us; 38us; 149us; 38us; 150us; 38us; 151us; 38us; 152us; 38us; 153us; 38us; 154us; 38us; 155us; 38us; 156us; 38us; 157us; 38us; 158us; 38us; 159us; 38us; 160us; 38us; 161us; 38us; 162us; 38us; 163us; 38us; 164us; 38us; 165us; 38us; 166us; 38us; 167us; 38us; 168us; 38us; 169us; 38us; 170us; 38us; 171us; 38us; 172us; 38us; 173us; 38us; 174us; 38us; 175us; 38us; 176us; 38us; 177us; 38us; 178us; 38us; 179us; 38us; 180us; 38us; 181us; 38us; 182us; 38us; 183us; 38us; 184us; 38us; 185us; 38us; 186us; 38us; 187us; 38us; 188us; 38us; 189us; 38us; 190us; 38us; 191us; 38us; 192us; 38us; 193us; 38us; 194us; 38us; 195us; 38us; 196us; 38us; 197us; 38us; 198us; 38us; 199us; 38us; 200us; 38us; 201us; 38us; 202us; 38us; 203us; 38us; 204us; 38us; 205us; 38us; 206us; 38us; 207us; 38us; 208us; 38us; 209us; 38us; 210us; 38us; 211us; 38us; 212us; 38us; 213us; 38us; 214us; 38us; 215us; 38us; 216us; 38us; 217us; 38us; 218us; 38us; 219us; 38us; 220us; 38us; 221us; 38us; 222us; 38us; 223us; 38us; 224us; 38us; 225us; 38us; 226us; 38us; 227us; 38us; 228us; 38us; 229us; 38us; 230us; 38us; 231us; 38us; 232us; 38us; 233us; 38us; 234us; 38us; 235us; 38us; 236us; 38us; 237us; 38us; 238us; 38us; 239us; 38us; 240us; 38us; 241us; 38us; 242us; 38us; 243us; 38us; 244us; 38us; 245us; 38us; 246us; 38us; 247us; 38us; 248us; 38us; 249us; 38us; 250us; 38us; 251us; 38us; 252us; 38us; 253us; 38us; 254us; 38us; 255us; 38us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 38 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 39us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 39us; 65535us; 65535us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 65535us; 65535us; 65535us; 65535us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 39us; 129us; 39us; 130us; 39us; 131us; 39us; 132us; 39us; 133us; 39us; 134us; 39us; 135us; 39us; 136us; 39us; 137us; 39us; 138us; 39us; 139us; 39us; 140us; 39us; 141us; 39us; 142us; 39us; 143us; 39us; 144us; 39us; 145us; 39us; 146us; 39us; 147us; 39us; 148us; 39us; 149us; 39us; 150us; 39us; 151us; 39us; 152us; 39us; 153us; 39us; 154us; 39us; 155us; 39us; 156us; 39us; 157us; 39us; 158us; 39us; 159us; 39us; 160us; 39us; 161us; 39us; 162us; 39us; 163us; 39us; 164us; 39us; 165us; 39us; 166us; 39us; 167us; 39us; 168us; 39us; 169us; 39us; 170us; 39us; 171us; 39us; 172us; 39us; 173us; 39us; 174us; 39us; 175us; 39us; 176us; 39us; 177us; 39us; 178us; 39us; 179us; 39us; 180us; 39us; 181us; 39us; 182us; 39us; 183us; 39us; 184us; 39us; 185us; 39us; 186us; 39us; 187us; 39us; 188us; 39us; 189us; 39us; 190us; 39us; 191us; 39us; 192us; 39us; 193us; 39us; 194us; 39us; 195us; 39us; 196us; 39us; 197us; 39us; 198us; 39us; 199us; 39us; 200us; 39us; 201us; 39us; 202us; 39us; 203us; 39us; 204us; 39us; 205us; 39us; 206us; 39us; 207us; 39us; 208us; 39us; 209us; 39us; 210us; 39us; 211us; 39us; 212us; 39us; 213us; 39us; 214us; 39us; 215us; 39us; 216us; 39us; 217us; 39us; 218us; 39us; 219us; 39us; 220us; 39us; 221us; 39us; 222us; 39us; 223us; 39us; 224us; 39us; 225us; 39us; 226us; 39us; 227us; 39us; 228us; 39us; 229us; 39us; 230us; 39us; 231us; 39us; 232us; 39us; 233us; 39us; 234us; 39us; 235us; 39us; 236us; 39us; 237us; 39us; 238us; 39us; 239us; 39us; 240us; 39us; 241us; 39us; 242us; 39us; 243us; 39us; 244us; 39us; 245us; 39us; 246us; 39us; 247us; 39us; 248us; 39us; 249us; 39us; 250us; 39us; 251us; 39us; 252us; 39us; 253us; 39us; 254us; 39us; 255us; 39us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 39 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 40us; 65535us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 65535us; 65535us; 65535us; 65535us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 41us; 129us; 41us; 130us; 41us; 131us; 41us; 132us; 41us; 133us; 41us; 134us; 41us; 135us; 41us; 136us; 41us; 137us; 41us; 138us; 41us; 139us; 41us; 140us; 41us; 141us; 41us; 142us; 41us; 143us; 41us; 144us; 41us; 145us; 41us; 146us; 41us; 147us; 41us; 148us; 41us; 149us; 41us; 150us; 41us; 151us; 41us; 152us; 41us; 153us; 41us; 154us; 41us; 155us; 41us; 156us; 41us; 157us; 41us; 158us; 41us; 159us; 41us; 160us; 41us; 161us; 41us; 162us; 41us; 163us; 41us; 164us; 41us; 165us; 41us; 166us; 41us; 167us; 41us; 168us; 41us; 169us; 41us; 170us; 41us; 171us; 41us; 172us; 41us; 173us; 41us; 174us; 41us; 175us; 41us; 176us; 41us; 177us; 41us; 178us; 41us; 179us; 41us; 180us; 41us; 181us; 41us; 182us; 41us; 183us; 41us; 184us; 41us; 185us; 41us; 186us; 41us; 187us; 41us; 188us; 41us; 189us; 41us; 190us; 41us; 191us; 41us; 192us; 41us; 193us; 41us; 194us; 41us; 195us; 41us; 196us; 41us; 197us; 41us; 198us; 41us; 199us; 41us; 200us; 41us; 201us; 41us; 202us; 41us; 203us; 41us; 204us; 41us; 205us; 41us; 206us; 41us; 207us; 41us; 208us; 41us; 209us; 41us; 210us; 41us; 211us; 41us; 212us; 41us; 213us; 41us; 214us; 41us; 215us; 41us; 216us; 41us; 217us; 41us; 218us; 41us; 219us; 41us; 220us; 41us; 221us; 41us; 222us; 41us; 223us; 41us; 224us; 41us; 225us; 41us; 226us; 41us; 227us; 41us; 228us; 41us; 229us; 41us; 230us; 41us; 231us; 41us; 232us; 41us; 233us; 41us; 234us; 41us; 235us; 41us; 236us; 41us; 237us; 41us; 238us; 41us; 239us; 41us; 240us; 41us; 241us; 41us; 242us; 41us; 243us; 41us; 244us; 41us; 245us; 41us; 246us; 41us; 247us; 41us; 248us; 41us; 249us; 41us; 250us; 41us; 251us; 41us; 252us; 41us; 253us; 41us; 254us; 41us; 255us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 40 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 42us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 65535us; 65535us; 65535us; 65535us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 42us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 42us; 129us; 42us; 130us; 42us; 131us; 42us; 132us; 42us; 133us; 42us; 134us; 42us; 135us; 42us; 136us; 42us; 137us; 42us; 138us; 42us; 139us; 42us; 140us; 42us; 141us; 42us; 142us; 42us; 143us; 42us; 144us; 42us; 145us; 42us; 146us; 42us; 147us; 42us; 148us; 42us; 149us; 42us; 150us; 42us; 151us; 42us; 152us; 42us; 153us; 42us; 154us; 42us; 155us; 42us; 156us; 42us; 157us; 42us; 158us; 42us; 159us; 42us; 160us; 42us; 161us; 42us; 162us; 42us; 163us; 42us; 164us; 42us; 165us; 42us; 166us; 42us; 167us; 42us; 168us; 42us; 169us; 42us; 170us; 42us; 171us; 42us; 172us; 42us; 173us; 42us; 174us; 42us; 175us; 42us; 176us; 42us; 177us; 42us; 178us; 42us; 179us; 42us; 180us; 42us; 181us; 42us; 182us; 42us; 183us; 42us; 184us; 42us; 185us; 42us; 186us; 42us; 187us; 42us; 188us; 42us; 189us; 42us; 190us; 42us; 191us; 42us; 192us; 42us; 193us; 42us; 194us; 42us; 195us; 42us; 196us; 42us; 197us; 42us; 198us; 42us; 199us; 42us; 200us; 42us; 201us; 42us; 202us; 42us; 203us; 42us; 204us; 42us; 205us; 42us; 206us; 42us; 207us; 42us; 208us; 42us; 209us; 42us; 210us; 42us; 211us; 42us; 212us; 42us; 213us; 42us; 214us; 42us; 215us; 42us; 216us; 42us; 217us; 42us; 218us; 42us; 219us; 42us; 220us; 42us; 221us; 42us; 222us; 42us; 223us; 42us; 224us; 42us; 225us; 42us; 226us; 42us; 227us; 42us; 228us; 42us; 229us; 42us; 230us; 42us; 231us; 42us; 232us; 42us; 233us; 42us; 234us; 42us; 235us; 42us; 236us; 42us; 237us; 42us; 238us; 42us; 239us; 42us; 240us; 42us; 241us; 42us; 242us; 42us; 243us; 42us; 244us; 42us; 245us; 42us; 246us; 42us; 247us; 42us; 248us; 42us; 249us; 42us; 250us; 42us; 251us; 42us; 252us; 42us; 253us; 42us; 254us; 42us; 255us; 42us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 41 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 40us; 65535us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 65535us; 65535us; 65535us; 65535us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 41us; 129us; 41us; 130us; 41us; 131us; 41us; 132us; 41us; 133us; 41us; 134us; 41us; 135us; 41us; 136us; 41us; 137us; 41us; 138us; 41us; 139us; 41us; 140us; 41us; 141us; 41us; 142us; 41us; 143us; 41us; 144us; 41us; 145us; 41us; 146us; 41us; 147us; 41us; 148us; 41us; 149us; 41us; 150us; 41us; 151us; 41us; 152us; 41us; 153us; 41us; 154us; 41us; 155us; 41us; 156us; 41us; 157us; 41us; 158us; 41us; 159us; 41us; 160us; 41us; 161us; 41us; 162us; 41us; 163us; 41us; 164us; 41us; 165us; 41us; 166us; 41us; 167us; 41us; 168us; 41us; 169us; 41us; 170us; 41us; 171us; 41us; 172us; 41us; 173us; 41us; 174us; 41us; 175us; 41us; 176us; 41us; 177us; 41us; 178us; 41us; 179us; 41us; 180us; 41us; 181us; 41us; 182us; 41us; 183us; 41us; 184us; 41us; 185us; 41us; 186us; 41us; 187us; 41us; 188us; 41us; 189us; 41us; 190us; 41us; 191us; 41us; 192us; 41us; 193us; 41us; 194us; 41us; 195us; 41us; 196us; 41us; 197us; 41us; 198us; 41us; 199us; 41us; 200us; 41us; 201us; 41us; 202us; 41us; 203us; 41us; 204us; 41us; 205us; 41us; 206us; 41us; 207us; 41us; 208us; 41us; 209us; 41us; 210us; 41us; 211us; 41us; 212us; 41us; 213us; 41us; 214us; 41us; 215us; 41us; 216us; 41us; 217us; 41us; 218us; 41us; 219us; 41us; 220us; 41us; 221us; 41us; 222us; 41us; 223us; 41us; 224us; 41us; 225us; 41us; 226us; 41us; 227us; 41us; 228us; 41us; 229us; 41us; 230us; 41us; 231us; 41us; 232us; 41us; 233us; 41us; 234us; 41us; 235us; 41us; 236us; 41us; 237us; 41us; 238us; 41us; 239us; 41us; 240us; 41us; 241us; 41us; 242us; 41us; 243us; 41us; 244us; 41us; 245us; 41us; 246us; 41us; 247us; 41us; 248us; 41us; 249us; 41us; 250us; 41us; 251us; 41us; 252us; 41us; 253us; 41us; 254us; 41us; 255us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 42 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 43us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 43us; 65535us; 65535us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 65535us; 65535us; 65535us; 65535us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 43us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 43us; 129us; 43us; 130us; 43us; 131us; 43us; 132us; 43us; 133us; 43us; 134us; 43us; 135us; 43us; 136us; 43us; 137us; 43us; 138us; 43us; 139us; 43us; 140us; 43us; 141us; 43us; 142us; 43us; 143us; 43us; 144us; 43us; 145us; 43us; 146us; 43us; 147us; 43us; 148us; 43us; 149us; 43us; 150us; 43us; 151us; 43us; 152us; 43us; 153us; 43us; 154us; 43us; 155us; 43us; 156us; 43us; 157us; 43us; 158us; 43us; 159us; 43us; 160us; 43us; 161us; 43us; 162us; 43us; 163us; 43us; 164us; 43us; 165us; 43us; 166us; 43us; 167us; 43us; 168us; 43us; 169us; 43us; 170us; 43us; 171us; 43us; 172us; 43us; 173us; 43us; 174us; 43us; 175us; 43us; 176us; 43us; 177us; 43us; 178us; 43us; 179us; 43us; 180us; 43us; 181us; 43us; 182us; 43us; 183us; 43us; 184us; 43us; 185us; 43us; 186us; 43us; 187us; 43us; 188us; 43us; 189us; 43us; 190us; 43us; 191us; 43us; 192us; 43us; 193us; 43us; 194us; 43us; 195us; 43us; 196us; 43us; 197us; 43us; 198us; 43us; 199us; 43us; 200us; 43us; 201us; 43us; 202us; 43us; 203us; 43us; 204us; 43us; 205us; 43us; 206us; 43us; 207us; 43us; 208us; 43us; 209us; 43us; 210us; 43us; 211us; 43us; 212us; 43us; 213us; 43us; 214us; 43us; 215us; 43us; 216us; 43us; 217us; 43us; 218us; 43us; 219us; 43us; 220us; 43us; 221us; 43us; 222us; 43us; 223us; 43us; 224us; 43us; 225us; 43us; 226us; 43us; 227us; 43us; 228us; 43us; 229us; 43us; 230us; 43us; 231us; 43us; 232us; 43us; 233us; 43us; 234us; 43us; 235us; 43us; 236us; 43us; 237us; 43us; 238us; 43us; 239us; 43us; 240us; 43us; 241us; 43us; 242us; 43us; 243us; 43us; 244us; 43us; 245us; 43us; 246us; 43us; 247us; 43us; 248us; 43us; 249us; 43us; 250us; 43us; 251us; 43us; 252us; 43us; 253us; 43us; 254us; 43us; 255us; 43us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 43 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 40us; 65535us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 65535us; 65535us; 65535us; 65535us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 44us; 129us; 44us; 130us; 44us; 131us; 44us; 132us; 44us; 133us; 44us; 134us; 44us; 135us; 44us; 136us; 44us; 137us; 44us; 138us; 44us; 139us; 44us; 140us; 44us; 141us; 44us; 142us; 44us; 143us; 44us; 144us; 44us; 145us; 44us; 146us; 44us; 147us; 44us; 148us; 44us; 149us; 44us; 150us; 44us; 151us; 44us; 152us; 44us; 153us; 44us; 154us; 44us; 155us; 44us; 156us; 44us; 157us; 44us; 158us; 44us; 159us; 44us; 160us; 44us; 161us; 44us; 162us; 44us; 163us; 44us; 164us; 44us; 165us; 44us; 166us; 44us; 167us; 44us; 168us; 44us; 169us; 44us; 170us; 44us; 171us; 44us; 172us; 44us; 173us; 44us; 174us; 44us; 175us; 44us; 176us; 44us; 177us; 44us; 178us; 44us; 179us; 44us; 180us; 44us; 181us; 44us; 182us; 44us; 183us; 44us; 184us; 44us; 185us; 44us; 186us; 44us; 187us; 44us; 188us; 44us; 189us; 44us; 190us; 44us; 191us; 44us; 192us; 44us; 193us; 44us; 194us; 44us; 195us; 44us; 196us; 44us; 197us; 44us; 198us; 44us; 199us; 44us; 200us; 44us; 201us; 44us; 202us; 44us; 203us; 44us; 204us; 44us; 205us; 44us; 206us; 44us; 207us; 44us; 208us; 44us; 209us; 44us; 210us; 44us; 211us; 44us; 212us; 44us; 213us; 44us; 214us; 44us; 215us; 44us; 216us; 44us; 217us; 44us; 218us; 44us; 219us; 44us; 220us; 44us; 221us; 44us; 222us; 44us; 223us; 44us; 224us; 44us; 225us; 44us; 226us; 44us; 227us; 44us; 228us; 44us; 229us; 44us; 230us; 44us; 231us; 44us; 232us; 44us; 233us; 44us; 234us; 44us; 235us; 44us; 236us; 44us; 237us; 44us; 238us; 44us; 239us; 44us; 240us; 44us; 241us; 44us; 242us; 44us; 243us; 44us; 244us; 44us; 245us; 44us; 246us; 44us; 247us; 44us; 248us; 44us; 249us; 44us; 250us; 44us; 251us; 44us; 252us; 44us; 253us; 44us; 254us; 44us; 255us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 44 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 40us; 65535us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 65535us; 65535us; 65535us; 65535us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 44us; 129us; 44us; 130us; 44us; 131us; 44us; 132us; 44us; 133us; 44us; 134us; 44us; 135us; 44us; 136us; 44us; 137us; 44us; 138us; 44us; 139us; 44us; 140us; 44us; 141us; 44us; 142us; 44us; 143us; 44us; 144us; 44us; 145us; 44us; 146us; 44us; 147us; 44us; 148us; 44us; 149us; 44us; 150us; 44us; 151us; 44us; 152us; 44us; 153us; 44us; 154us; 44us; 155us; 44us; 156us; 44us; 157us; 44us; 158us; 44us; 159us; 44us; 160us; 44us; 161us; 44us; 162us; 44us; 163us; 44us; 164us; 44us; 165us; 44us; 166us; 44us; 167us; 44us; 168us; 44us; 169us; 44us; 170us; 44us; 171us; 44us; 172us; 44us; 173us; 44us; 174us; 44us; 175us; 44us; 176us; 44us; 177us; 44us; 178us; 44us; 179us; 44us; 180us; 44us; 181us; 44us; 182us; 44us; 183us; 44us; 184us; 44us; 185us; 44us; 186us; 44us; 187us; 44us; 188us; 44us; 189us; 44us; 190us; 44us; 191us; 44us; 192us; 44us; 193us; 44us; 194us; 44us; 195us; 44us; 196us; 44us; 197us; 44us; 198us; 44us; 199us; 44us; 200us; 44us; 201us; 44us; 202us; 44us; 203us; 44us; 204us; 44us; 205us; 44us; 206us; 44us; 207us; 44us; 208us; 44us; 209us; 44us; 210us; 44us; 211us; 44us; 212us; 44us; 213us; 44us; 214us; 44us; 215us; 44us; 216us; 44us; 217us; 44us; 218us; 44us; 219us; 44us; 220us; 44us; 221us; 44us; 222us; 44us; 223us; 44us; 224us; 44us; 225us; 44us; 226us; 44us; 227us; 44us; 228us; 44us; 229us; 44us; 230us; 44us; 231us; 44us; 232us; 44us; 233us; 44us; 234us; 44us; 235us; 44us; 236us; 44us; 237us; 44us; 238us; 44us; 239us; 44us; 240us; 44us; 241us; 44us; 242us; 44us; 243us; 44us; 244us; 44us; 245us; 44us; 246us; 44us; 247us; 44us; 248us; 44us; 249us; 44us; 250us; 44us; 251us; 44us; 252us; 44us; 253us; 44us; 254us; 44us; 255us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 45 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 46us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 46 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 47us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 47 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 48us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 48 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 49us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 49 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 50 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 51us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 51 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 38us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 52us; 65535us; 52us; 52us; 52us; 52us; 52us; 52us; 52us; 52us; 52us; 52us; 65535us; 65535us; 65535us; 65535us; 65535us; 38us; 38us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 65535us; 65535us; 65535us; 65535us; 38us; 38us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 38us; 129us; 38us; 130us; 38us; 131us; 38us; 132us; 38us; 133us; 38us; 134us; 38us; 135us; 38us; 136us; 38us; 137us; 38us; 138us; 38us; 139us; 38us; 140us; 38us; 141us; 38us; 142us; 38us; 143us; 38us; 144us; 38us; 145us; 38us; 146us; 38us; 147us; 38us; 148us; 38us; 149us; 38us; 150us; 38us; 151us; 38us; 152us; 38us; 153us; 38us; 154us; 38us; 155us; 38us; 156us; 38us; 157us; 38us; 158us; 38us; 159us; 38us; 160us; 38us; 161us; 38us; 162us; 38us; 163us; 38us; 164us; 38us; 165us; 38us; 166us; 38us; 167us; 38us; 168us; 38us; 169us; 38us; 170us; 38us; 171us; 38us; 172us; 38us; 173us; 38us; 174us; 38us; 175us; 38us; 176us; 38us; 177us; 38us; 178us; 38us; 179us; 38us; 180us; 38us; 181us; 38us; 182us; 38us; 183us; 38us; 184us; 38us; 185us; 38us; 186us; 38us; 187us; 38us; 188us; 38us; 189us; 38us; 190us; 38us; 191us; 38us; 192us; 38us; 193us; 38us; 194us; 38us; 195us; 38us; 196us; 38us; 197us; 38us; 198us; 38us; 199us; 38us; 200us; 38us; 201us; 38us; 202us; 38us; 203us; 38us; 204us; 38us; 205us; 38us; 206us; 38us; 207us; 38us; 208us; 38us; 209us; 38us; 210us; 38us; 211us; 38us; 212us; 38us; 213us; 38us; 214us; 38us; 215us; 38us; 216us; 38us; 217us; 38us; 218us; 38us; 219us; 38us; 220us; 38us; 221us; 38us; 222us; 38us; 223us; 38us; 224us; 38us; 225us; 38us; 226us; 38us; 227us; 38us; 228us; 38us; 229us; 38us; 230us; 38us; 231us; 38us; 232us; 38us; 233us; 38us; 234us; 38us; 235us; 38us; 236us; 38us; 237us; 38us; 238us; 38us; 239us; 38us; 240us; 38us; 241us; 38us; 242us; 38us; 243us; 38us; 244us; 38us; 245us; 38us; 246us; 38us; 247us; 38us; 248us; 38us; 249us; 38us; 250us; 38us; 251us; 38us; 252us; 38us; 253us; 38us; 254us; 38us; 255us; 38us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 52 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 53 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 39us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 39us; 54us; 65535us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 39us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 65535us; 65535us; 65535us; 65535us; 39us; 39us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 55us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 39us; 129us; 39us; 130us; 39us; 131us; 39us; 132us; 39us; 133us; 39us; 134us; 39us; 135us; 39us; 136us; 39us; 137us; 39us; 138us; 39us; 139us; 39us; 140us; 39us; 141us; 39us; 142us; 39us; 143us; 39us; 144us; 39us; 145us; 39us; 146us; 39us; 147us; 39us; 148us; 39us; 149us; 39us; 150us; 39us; 151us; 39us; 152us; 39us; 153us; 39us; 154us; 39us; 155us; 39us; 156us; 39us; 157us; 39us; 158us; 39us; 159us; 39us; 160us; 39us; 161us; 39us; 162us; 39us; 163us; 39us; 164us; 39us; 165us; 39us; 166us; 39us; 167us; 39us; 168us; 39us; 169us; 39us; 170us; 39us; 171us; 39us; 172us; 39us; 173us; 39us; 174us; 39us; 175us; 39us; 176us; 39us; 177us; 39us; 178us; 39us; 179us; 39us; 180us; 39us; 181us; 39us; 182us; 39us; 183us; 39us; 184us; 39us; 185us; 39us; 186us; 39us; 187us; 39us; 188us; 39us; 189us; 39us; 190us; 39us; 191us; 39us; 192us; 39us; 193us; 39us; 194us; 39us; 195us; 39us; 196us; 39us; 197us; 39us; 198us; 39us; 199us; 39us; 200us; 39us; 201us; 39us; 202us; 39us; 203us; 39us; 204us; 39us; 205us; 39us; 206us; 39us; 207us; 39us; 208us; 39us; 209us; 39us; 210us; 39us; 211us; 39us; 212us; 39us; 213us; 39us; 214us; 39us; 215us; 39us; 216us; 39us; 217us; 39us; 218us; 39us; 219us; 39us; 220us; 39us; 221us; 39us; 222us; 39us; 223us; 39us; 224us; 39us; 225us; 39us; 226us; 39us; 227us; 39us; 228us; 39us; 229us; 39us; 230us; 39us; 231us; 39us; 232us; 39us; 233us; 39us; 234us; 39us; 235us; 39us; 236us; 39us; 237us; 39us; 238us; 39us; 239us; 39us; 240us; 39us; 241us; 39us; 242us; 39us; 243us; 39us; 244us; 39us; 245us; 39us; 246us; 39us; 247us; 39us; 248us; 39us; 249us; 39us; 250us; 39us; 251us; 39us; 252us; 39us; 253us; 39us; 254us; 39us; 255us; 39us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 54 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 55 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 56us; 65535us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 65535us; 65535us; 65535us; 65535us; 41us; 41us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 41us; 129us; 41us; 130us; 41us; 131us; 41us; 132us; 41us; 133us; 41us; 134us; 41us; 135us; 41us; 136us; 41us; 137us; 41us; 138us; 41us; 139us; 41us; 140us; 41us; 141us; 41us; 142us; 41us; 143us; 41us; 144us; 41us; 145us; 41us; 146us; 41us; 147us; 41us; 148us; 41us; 149us; 41us; 150us; 41us; 151us; 41us; 152us; 41us; 153us; 41us; 154us; 41us; 155us; 41us; 156us; 41us; 157us; 41us; 158us; 41us; 159us; 41us; 160us; 41us; 161us; 41us; 162us; 41us; 163us; 41us; 164us; 41us; 165us; 41us; 166us; 41us; 167us; 41us; 168us; 41us; 169us; 41us; 170us; 41us; 171us; 41us; 172us; 41us; 173us; 41us; 174us; 41us; 175us; 41us; 176us; 41us; 177us; 41us; 178us; 41us; 179us; 41us; 180us; 41us; 181us; 41us; 182us; 41us; 183us; 41us; 184us; 41us; 185us; 41us; 186us; 41us; 187us; 41us; 188us; 41us; 189us; 41us; 190us; 41us; 191us; 41us; 192us; 41us; 193us; 41us; 194us; 41us; 195us; 41us; 196us; 41us; 197us; 41us; 198us; 41us; 199us; 41us; 200us; 41us; 201us; 41us; 202us; 41us; 203us; 41us; 204us; 41us; 205us; 41us; 206us; 41us; 207us; 41us; 208us; 41us; 209us; 41us; 210us; 41us; 211us; 41us; 212us; 41us; 213us; 41us; 214us; 41us; 215us; 41us; 216us; 41us; 217us; 41us; 218us; 41us; 219us; 41us; 220us; 41us; 221us; 41us; 222us; 41us; 223us; 41us; 224us; 41us; 225us; 41us; 226us; 41us; 227us; 41us; 228us; 41us; 229us; 41us; 230us; 41us; 231us; 41us; 232us; 41us; 233us; 41us; 234us; 41us; 235us; 41us; 236us; 41us; 237us; 41us; 238us; 41us; 239us; 41us; 240us; 41us; 241us; 41us; 242us; 41us; 243us; 41us; 244us; 41us; 245us; 41us; 246us; 41us; 247us; 41us; 248us; 41us; 249us; 41us; 250us; 41us; 251us; 41us; 252us; 41us; 253us; 41us; 254us; 41us; 255us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 56 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 42us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 42us; 42us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 65535us; 65535us; 65535us; 65535us; 42us; 42us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 58us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 42us; 129us; 42us; 130us; 42us; 131us; 42us; 132us; 42us; 133us; 42us; 134us; 42us; 135us; 42us; 136us; 42us; 137us; 42us; 138us; 42us; 139us; 42us; 140us; 42us; 141us; 42us; 142us; 42us; 143us; 42us; 144us; 42us; 145us; 42us; 146us; 42us; 147us; 42us; 148us; 42us; 149us; 42us; 150us; 42us; 151us; 42us; 152us; 42us; 153us; 42us; 154us; 42us; 155us; 42us; 156us; 42us; 157us; 42us; 158us; 42us; 159us; 42us; 160us; 42us; 161us; 42us; 162us; 42us; 163us; 42us; 164us; 42us; 165us; 42us; 166us; 42us; 167us; 42us; 168us; 42us; 169us; 42us; 170us; 42us; 171us; 42us; 172us; 42us; 173us; 42us; 174us; 42us; 175us; 42us; 176us; 42us; 177us; 42us; 178us; 42us; 179us; 42us; 180us; 42us; 181us; 42us; 182us; 42us; 183us; 42us; 184us; 42us; 185us; 42us; 186us; 42us; 187us; 42us; 188us; 42us; 189us; 42us; 190us; 42us; 191us; 42us; 192us; 42us; 193us; 42us; 194us; 42us; 195us; 42us; 196us; 42us; 197us; 42us; 198us; 42us; 199us; 42us; 200us; 42us; 201us; 42us; 202us; 42us; 203us; 42us; 204us; 42us; 205us; 42us; 206us; 42us; 207us; 42us; 208us; 42us; 209us; 42us; 210us; 42us; 211us; 42us; 212us; 42us; 213us; 42us; 214us; 42us; 215us; 42us; 216us; 42us; 217us; 42us; 218us; 42us; 219us; 42us; 220us; 42us; 221us; 42us; 222us; 42us; 223us; 42us; 224us; 42us; 225us; 42us; 226us; 42us; 227us; 42us; 228us; 42us; 229us; 42us; 230us; 42us; 231us; 42us; 232us; 42us; 233us; 42us; 234us; 42us; 235us; 42us; 236us; 42us; 237us; 42us; 238us; 42us; 239us; 42us; 240us; 42us; 241us; 42us; 242us; 42us; 243us; 42us; 244us; 42us; 245us; 42us; 246us; 42us; 247us; 42us; 248us; 42us; 249us; 42us; 250us; 42us; 251us; 42us; 252us; 42us; 253us; 42us; 254us; 42us; 255us; 42us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 57 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 56us; 65535us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 65535us; 65535us; 65535us; 65535us; 41us; 41us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 57us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 41us; 129us; 41us; 130us; 41us; 131us; 41us; 132us; 41us; 133us; 41us; 134us; 41us; 135us; 41us; 136us; 41us; 137us; 41us; 138us; 41us; 139us; 41us; 140us; 41us; 141us; 41us; 142us; 41us; 143us; 41us; 144us; 41us; 145us; 41us; 146us; 41us; 147us; 41us; 148us; 41us; 149us; 41us; 150us; 41us; 151us; 41us; 152us; 41us; 153us; 41us; 154us; 41us; 155us; 41us; 156us; 41us; 157us; 41us; 158us; 41us; 159us; 41us; 160us; 41us; 161us; 41us; 162us; 41us; 163us; 41us; 164us; 41us; 165us; 41us; 166us; 41us; 167us; 41us; 168us; 41us; 169us; 41us; 170us; 41us; 171us; 41us; 172us; 41us; 173us; 41us; 174us; 41us; 175us; 41us; 176us; 41us; 177us; 41us; 178us; 41us; 179us; 41us; 180us; 41us; 181us; 41us; 182us; 41us; 183us; 41us; 184us; 41us; 185us; 41us; 186us; 41us; 187us; 41us; 188us; 41us; 189us; 41us; 190us; 41us; 191us; 41us; 192us; 41us; 193us; 41us; 194us; 41us; 195us; 41us; 196us; 41us; 197us; 41us; 198us; 41us; 199us; 41us; 200us; 41us; 201us; 41us; 202us; 41us; 203us; 41us; 204us; 41us; 205us; 41us; 206us; 41us; 207us; 41us; 208us; 41us; 209us; 41us; 210us; 41us; 211us; 41us; 212us; 41us; 213us; 41us; 214us; 41us; 215us; 41us; 216us; 41us; 217us; 41us; 218us; 41us; 219us; 41us; 220us; 41us; 221us; 41us; 222us; 41us; 223us; 41us; 224us; 41us; 225us; 41us; 226us; 41us; 227us; 41us; 228us; 41us; 229us; 41us; 230us; 41us; 231us; 41us; 232us; 41us; 233us; 41us; 234us; 41us; 235us; 41us; 236us; 41us; 237us; 41us; 238us; 41us; 239us; 41us; 240us; 41us; 241us; 41us; 242us; 41us; 243us; 41us; 244us; 41us; 245us; 41us; 246us; 41us; 247us; 41us; 248us; 41us; 249us; 41us; 250us; 41us; 251us; 41us; 252us; 41us; 253us; 41us; 254us; 41us; 255us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 58 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 43us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 43us; 54us; 65535us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 43us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 65535us; 65535us; 65535us; 65535us; 43us; 43us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 43us; 129us; 43us; 130us; 43us; 131us; 43us; 132us; 43us; 133us; 43us; 134us; 43us; 135us; 43us; 136us; 43us; 137us; 43us; 138us; 43us; 139us; 43us; 140us; 43us; 141us; 43us; 142us; 43us; 143us; 43us; 144us; 43us; 145us; 43us; 146us; 43us; 147us; 43us; 148us; 43us; 149us; 43us; 150us; 43us; 151us; 43us; 152us; 43us; 153us; 43us; 154us; 43us; 155us; 43us; 156us; 43us; 157us; 43us; 158us; 43us; 159us; 43us; 160us; 43us; 161us; 43us; 162us; 43us; 163us; 43us; 164us; 43us; 165us; 43us; 166us; 43us; 167us; 43us; 168us; 43us; 169us; 43us; 170us; 43us; 171us; 43us; 172us; 43us; 173us; 43us; 174us; 43us; 175us; 43us; 176us; 43us; 177us; 43us; 178us; 43us; 179us; 43us; 180us; 43us; 181us; 43us; 182us; 43us; 183us; 43us; 184us; 43us; 185us; 43us; 186us; 43us; 187us; 43us; 188us; 43us; 189us; 43us; 190us; 43us; 191us; 43us; 192us; 43us; 193us; 43us; 194us; 43us; 195us; 43us; 196us; 43us; 197us; 43us; 198us; 43us; 199us; 43us; 200us; 43us; 201us; 43us; 202us; 43us; 203us; 43us; 204us; 43us; 205us; 43us; 206us; 43us; 207us; 43us; 208us; 43us; 209us; 43us; 210us; 43us; 211us; 43us; 212us; 43us; 213us; 43us; 214us; 43us; 215us; 43us; 216us; 43us; 217us; 43us; 218us; 43us; 219us; 43us; 220us; 43us; 221us; 43us; 222us; 43us; 223us; 43us; 224us; 43us; 225us; 43us; 226us; 43us; 227us; 43us; 228us; 43us; 229us; 43us; 230us; 43us; 231us; 43us; 232us; 43us; 233us; 43us; 234us; 43us; 235us; 43us; 236us; 43us; 237us; 43us; 238us; 43us; 239us; 43us; 240us; 43us; 241us; 43us; 242us; 43us; 243us; 43us; 244us; 43us; 245us; 43us; 246us; 43us; 247us; 43us; 248us; 43us; 249us; 43us; 250us; 43us; 251us; 43us; 252us; 43us; 253us; 43us; 254us; 43us; 255us; 43us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 59 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 56us; 65535us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 65535us; 65535us; 65535us; 65535us; 44us; 44us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 44us; 129us; 44us; 130us; 44us; 131us; 44us; 132us; 44us; 133us; 44us; 134us; 44us; 135us; 44us; 136us; 44us; 137us; 44us; 138us; 44us; 139us; 44us; 140us; 44us; 141us; 44us; 142us; 44us; 143us; 44us; 144us; 44us; 145us; 44us; 146us; 44us; 147us; 44us; 148us; 44us; 149us; 44us; 150us; 44us; 151us; 44us; 152us; 44us; 153us; 44us; 154us; 44us; 155us; 44us; 156us; 44us; 157us; 44us; 158us; 44us; 159us; 44us; 160us; 44us; 161us; 44us; 162us; 44us; 163us; 44us; 164us; 44us; 165us; 44us; 166us; 44us; 167us; 44us; 168us; 44us; 169us; 44us; 170us; 44us; 171us; 44us; 172us; 44us; 173us; 44us; 174us; 44us; 175us; 44us; 176us; 44us; 177us; 44us; 178us; 44us; 179us; 44us; 180us; 44us; 181us; 44us; 182us; 44us; 183us; 44us; 184us; 44us; 185us; 44us; 186us; 44us; 187us; 44us; 188us; 44us; 189us; 44us; 190us; 44us; 191us; 44us; 192us; 44us; 193us; 44us; 194us; 44us; 195us; 44us; 196us; 44us; 197us; 44us; 198us; 44us; 199us; 44us; 200us; 44us; 201us; 44us; 202us; 44us; 203us; 44us; 204us; 44us; 205us; 44us; 206us; 44us; 207us; 44us; 208us; 44us; 209us; 44us; 210us; 44us; 211us; 44us; 212us; 44us; 213us; 44us; 214us; 44us; 215us; 44us; 216us; 44us; 217us; 44us; 218us; 44us; 219us; 44us; 220us; 44us; 221us; 44us; 222us; 44us; 223us; 44us; 224us; 44us; 225us; 44us; 226us; 44us; 227us; 44us; 228us; 44us; 229us; 44us; 230us; 44us; 231us; 44us; 232us; 44us; 233us; 44us; 234us; 44us; 235us; 44us; 236us; 44us; 237us; 44us; 238us; 44us; 239us; 44us; 240us; 44us; 241us; 44us; 242us; 44us; 243us; 44us; 244us; 44us; 245us; 44us; 246us; 44us; 247us; 44us; 248us; 44us; 249us; 44us; 250us; 44us; 251us; 44us; 252us; 44us; 253us; 44us; 254us; 44us; 255us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 60 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 56us; 65535us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 65535us; 65535us; 65535us; 65535us; 44us; 44us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 44us; 129us; 44us; 130us; 44us; 131us; 44us; 132us; 44us; 133us; 44us; 134us; 44us; 135us; 44us; 136us; 44us; 137us; 44us; 138us; 44us; 139us; 44us; 140us; 44us; 141us; 44us; 142us; 44us; 143us; 44us; 144us; 44us; 145us; 44us; 146us; 44us; 147us; 44us; 148us; 44us; 149us; 44us; 150us; 44us; 151us; 44us; 152us; 44us; 153us; 44us; 154us; 44us; 155us; 44us; 156us; 44us; 157us; 44us; 158us; 44us; 159us; 44us; 160us; 44us; 161us; 44us; 162us; 44us; 163us; 44us; 164us; 44us; 165us; 44us; 166us; 44us; 167us; 44us; 168us; 44us; 169us; 44us; 170us; 44us; 171us; 44us; 172us; 44us; 173us; 44us; 174us; 44us; 175us; 44us; 176us; 44us; 177us; 44us; 178us; 44us; 179us; 44us; 180us; 44us; 181us; 44us; 182us; 44us; 183us; 44us; 184us; 44us; 185us; 44us; 186us; 44us; 187us; 44us; 188us; 44us; 189us; 44us; 190us; 44us; 191us; 44us; 192us; 44us; 193us; 44us; 194us; 44us; 195us; 44us; 196us; 44us; 197us; 44us; 198us; 44us; 199us; 44us; 200us; 44us; 201us; 44us; 202us; 44us; 203us; 44us; 204us; 44us; 205us; 44us; 206us; 44us; 207us; 44us; 208us; 44us; 209us; 44us; 210us; 44us; 211us; 44us; 212us; 44us; 213us; 44us; 214us; 44us; 215us; 44us; 216us; 44us; 217us; 44us; 218us; 44us; 219us; 44us; 220us; 44us; 221us; 44us; 222us; 44us; 223us; 44us; 224us; 44us; 225us; 44us; 226us; 44us; 227us; 44us; 228us; 44us; 229us; 44us; 230us; 44us; 231us; 44us; 232us; 44us; 233us; 44us; 234us; 44us; 235us; 44us; 236us; 44us; 237us; 44us; 238us; 44us; 239us; 44us; 240us; 44us; 241us; 44us; 242us; 44us; 243us; 44us; 244us; 44us; 245us; 44us; 246us; 44us; 247us; 44us; 248us; 44us; 249us; 44us; 250us; 44us; 251us; 44us; 252us; 44us; 253us; 44us; 254us; 44us; 255us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 61 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 62us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 62 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 63us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 63 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 64 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 65 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 66us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 66 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 67us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 67 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 68 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 69us; 36us; 36us; 36us; 72us; 36us; 36us; 36us; 71us; 36us; 36us; 70us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 69 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 80us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 70 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 78us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 77us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 71 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 76us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 72 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 73us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 73 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 74us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 74 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 75us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 75 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 51us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 76 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 77 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 79us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 78 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 79 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 80 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 81us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 81 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 82 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 83 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 84 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 85 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 86 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 87us; 36us; 36us; 36us; 89us; 36us; 36us; 36us; 88us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 87 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 93us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 88 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 92us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 89 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 90us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 90 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 91us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 91 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 92 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 93 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 94 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 97us; 65535us; 95us; 95us; 95us; 95us; 95us; 95us; 95us; 95us; 95us; 95us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 95 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 97us; 65535us; 95us; 95us; 95us; 95us; 95us; 95us; 95us; 95us; 95us; 95us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 96 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 100us; 65535us; 100us; 65535us; 65535us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 97 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 98 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 99 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 101us; 101us; 101us; 101us; 101us; 101us; 101us; 101us; 101us; 101us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 100 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 101 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 101us; 101us; 101us; 101us; 101us; 101us; 101us; 101us; 101us; 101us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 102 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 103 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 104 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 105 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 109us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 106 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 107 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 108 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 109 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 110 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 111 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 112 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 113 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 50us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 114 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 115us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 115 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 116us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 116 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 117us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 117 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 118us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 118 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 119us; 119us; 119us; 119us; 119us; 119us; 119us; 119us; 119us; 119us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 119us; 119us; 119us; 119us; 119us; 119us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 119us; 119us; 119us; 119us; 119us; 119us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 119 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 120us; 120us; 120us; 120us; 120us; 120us; 120us; 120us; 120us; 120us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 120us; 120us; 120us; 120us; 120us; 120us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 120us; 120us; 120us; 120us; 120us; 120us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 120 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 37us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 36us; 129us; 36us; 130us; 36us; 131us; 36us; 132us; 36us; 133us; 36us; 134us; 36us; 135us; 36us; 136us; 36us; 137us; 36us; 138us; 36us; 139us; 36us; 140us; 36us; 141us; 36us; 142us; 36us; 143us; 36us; 144us; 36us; 145us; 36us; 146us; 36us; 147us; 36us; 148us; 36us; 149us; 36us; 150us; 36us; 151us; 36us; 152us; 36us; 153us; 36us; 154us; 36us; 155us; 36us; 156us; 36us; 157us; 36us; 158us; 36us; 159us; 36us; 160us; 36us; 161us; 36us; 162us; 36us; 163us; 36us; 164us; 36us; 165us; 36us; 166us; 36us; 167us; 36us; 168us; 36us; 169us; 36us; 170us; 36us; 171us; 36us; 172us; 36us; 173us; 36us; 174us; 36us; 175us; 36us; 176us; 36us; 177us; 36us; 178us; 36us; 179us; 36us; 180us; 36us; 181us; 36us; 182us; 36us; 183us; 36us; 184us; 36us; 185us; 36us; 186us; 36us; 187us; 36us; 188us; 36us; 189us; 36us; 190us; 36us; 191us; 36us; 192us; 36us; 193us; 36us; 194us; 36us; 195us; 36us; 196us; 36us; 197us; 36us; 198us; 36us; 199us; 36us; 200us; 36us; 201us; 36us; 202us; 36us; 203us; 36us; 204us; 36us; 205us; 36us; 206us; 36us; 207us; 36us; 208us; 36us; 209us; 36us; 210us; 36us; 211us; 36us; 212us; 36us; 213us; 36us; 214us; 36us; 215us; 36us; 216us; 36us; 217us; 36us; 218us; 36us; 219us; 36us; 220us; 36us; 221us; 36us; 222us; 36us; 223us; 36us; 224us; 36us; 225us; 36us; 226us; 36us; 227us; 36us; 228us; 36us; 229us; 36us; 230us; 36us; 231us; 36us; 232us; 36us; 233us; 36us; 234us; 36us; 235us; 36us; 236us; 36us; 237us; 36us; 238us; 36us; 239us; 36us; 240us; 36us; 241us; 36us; 242us; 36us; 243us; 36us; 244us; 36us; 245us; 36us; 246us; 36us; 247us; 36us; 248us; 36us; 249us; 36us; 250us; 36us; 251us; 36us; 252us; 36us; 253us; 36us; 254us; 36us; 255us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 121 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 97us; 65535us; 127us; 127us; 127us; 127us; 127us; 127us; 127us; 127us; 127us; 127us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 122 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 125us; 65535us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 98us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 123 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 124 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 100us; 65535us; 100us; 65535us; 65535us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 99us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 125 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 126us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 126 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 127 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 122us; 65535us; 128us; 128us; 128us; 128us; 128us; 128us; 128us; 128us; 128us; 128us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 128 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 122us; 65535us; 128us; 128us; 128us; 128us; 128us; 128us; 128us; 128us; 128us; 128us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 129 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 130us; 130us; 130us; 130us; 130us; 130us; 130us; 130us; 130us; 130us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 130us; 130us; 130us; 130us; 130us; 130us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 130us; 130us; 130us; 130us; 130us; 130us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 130 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 131us; 131us; 131us; 131us; 131us; 131us; 131us; 131us; 131us; 131us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 131us; 131us; 131us; 131us; 131us; 131us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 131us; 131us; 131us; 131us; 131us; 131us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 131 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 131us; 131us; 131us; 131us; 131us; 131us; 131us; 131us; 131us; 131us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 131us; 131us; 131us; 131us; 131us; 131us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 131us; 131us; 131us; 131us; 131us; 131us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 132 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 97us; 65535us; 133us; 133us; 133us; 133us; 133us; 133us; 133us; 133us; 133us; 133us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 133 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 97us; 65535us; 133us; 133us; 133us; 133us; 133us; 133us; 133us; 133us; 133us; 133us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 134 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 135 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 136us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 136 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 128us; 65535us; 129us; 65535us; 130us; 65535us; 131us; 65535us; 132us; 65535us; 133us; 65535us; 134us; 65535us; 135us; 65535us; 136us; 65535us; 137us; 65535us; 138us; 65535us; 139us; 65535us; 140us; 65535us; 141us; 65535us; 142us; 65535us; 143us; 65535us; 144us; 65535us; 145us; 65535us; 146us; 65535us; 147us; 65535us; 148us; 65535us; 149us; 65535us; 150us; 65535us; 151us; 65535us; 152us; 65535us; 153us; 65535us; 154us; 65535us; 155us; 65535us; 156us; 65535us; 157us; 65535us; 158us; 65535us; 159us; 65535us; 160us; 65535us; 161us; 65535us; 162us; 65535us; 163us; 65535us; 164us; 65535us; 165us; 65535us; 166us; 65535us; 167us; 65535us; 168us; 65535us; 169us; 65535us; 170us; 65535us; 171us; 65535us; 172us; 65535us; 173us; 65535us; 174us; 65535us; 175us; 65535us; 176us; 65535us; 177us; 65535us; 178us; 65535us; 179us; 65535us; 180us; 65535us; 181us; 65535us; 182us; 65535us; 183us; 65535us; 184us; 65535us; 185us; 65535us; 186us; 65535us; 187us; 65535us; 188us; 65535us; 189us; 65535us; 190us; 65535us; 191us; 65535us; 192us; 65535us; 193us; 65535us; 194us; 65535us; 195us; 65535us; 196us; 65535us; 197us; 65535us; 198us; 65535us; 199us; 65535us; 200us; 65535us; 201us; 65535us; 202us; 65535us; 203us; 65535us; 204us; 65535us; 205us; 65535us; 206us; 65535us; 207us; 65535us; 208us; 65535us; 209us; 65535us; 210us; 65535us; 211us; 65535us; 212us; 65535us; 213us; 65535us; 214us; 65535us; 215us; 65535us; 216us; 65535us; 217us; 65535us; 218us; 65535us; 219us; 65535us; 220us; 65535us; 221us; 65535us; 222us; 65535us; 223us; 65535us; 224us; 65535us; 225us; 65535us; 226us; 65535us; 227us; 65535us; 228us; 65535us; 229us; 65535us; 230us; 65535us; 231us; 65535us; 232us; 65535us; 233us; 65535us; 234us; 65535us; 235us; 65535us; 236us; 65535us; 237us; 65535us; 238us; 65535us; 239us; 65535us; 240us; 65535us; 241us; 65535us; 242us; 65535us; 243us; 65535us; 244us; 65535us; 245us; 65535us; 246us; 65535us; 247us; 65535us; 248us; 65535us; 249us; 65535us; 250us; 65535us; 251us; 65535us; 252us; 65535us; 253us; 65535us; 254us; 65535us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + |] +let actions : uint16[] = [|65535us; 0us; 1us; 2us; 3us; 4us; 5us; 6us; 7us; 8us; 9us; 10us; 11us; 26us; 14us; 15us; 15us; 23us; 23us; 23us; 23us; 23us; 23us; 26us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 25us; 26us; 27us; 23us; 23us; 65535us; 65535us; 24us; 65535us; 24us; 65535us; 24us; 24us; 23us; 23us; 23us; 23us; 23us; 23us; 65535us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 23us; 20us; 20us; 65535us; 21us; 21us; 21us; 65535us; 21us; 17us; 23us; 17us; 23us; 23us; 23us; 23us; 23us; 17us; 23us; 23us; 17us; 17us; 23us; 23us; 23us; 23us; 23us; 19us; 17us; 21us; 17us; 17us; 65535us; 16us; 15us; 15us; 65535us; 18us; 18us; 21us; 21us; 13us; 65535us; 12us; |] +let _fslex_tables = Internal.Utilities.Text.Lexing.UnicodeTables.Create(trans,actions) +let rec _fslex_dummy () = _fslex_dummy() +(* Rule token *) +and token (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_token 0 lexbuf +(* Rule token *) +and _fslex_token _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 110 "..\..\absil\illex.fsl" + COMMA +# 394 "illex.fs" + ) + | 1 -> ( +# 111 "..\..\absil\illex.fsl" + DOT +# 399 "illex.fs" + ) + | 2 -> ( +# 112 "..\..\absil\illex.fsl" + STAR +# 404 "illex.fs" + ) + | 3 -> ( +# 113 "..\..\absil\illex.fsl" + BANG +# 409 "illex.fs" + ) + | 4 -> ( +# 114 "..\..\absil\illex.fsl" + AMP +# 414 "illex.fs" + ) + | 5 -> ( +# 115 "..\..\absil\illex.fsl" + LPAREN +# 419 "illex.fs" + ) + | 6 -> ( +# 116 "..\..\absil\illex.fsl" + RPAREN +# 424 "illex.fs" + ) + | 7 -> ( +# 117 "..\..\absil\illex.fsl" + LBRACK +# 429 "illex.fs" + ) + | 8 -> ( +# 118 "..\..\absil\illex.fsl" + RBRACK +# 434 "illex.fs" + ) + | 9 -> ( +# 119 "..\..\absil\illex.fsl" + SLASH +# 439 "illex.fs" + ) + | 10 -> ( +# 120 "..\..\absil\illex.fsl" + LESS +# 444 "illex.fs" + ) + | 11 -> ( +# 121 "..\..\absil\illex.fsl" + GREATER +# 449 "illex.fs" + ) + | 12 -> ( +# 122 "..\..\absil\illex.fsl" + ELIPSES +# 454 "illex.fs" + ) + | 13 -> ( +# 123 "..\..\absil\illex.fsl" + DCOLON +# 459 "illex.fs" + ) + | 14 -> ( +# 124 "..\..\absil\illex.fsl" + PLUS +# 464 "illex.fs" + ) + | 15 -> ( +# 126 "..\..\absil\illex.fsl" + VAL_INT64(int64(lexeme lexbuf)) +# 469 "illex.fs" + ) + | 16 -> ( +# 135 "..\..\absil\illex.fsl" + let b = lexeme lexbuf in + VAL_INT32_ELIPSES(int32(String.sub b 0 (String.length b - 3))) +# 475 "illex.fs" + ) + | 17 -> ( +# 138 "..\..\absil\illex.fsl" + let c1 = String.get (lexeme lexbuf) 0 in + let c2 = String.get (lexeme lexbuf) 1 in + if c1 >= '0' && c1 <= '9' && c2 >= '0' && c2 <= '9' then + VAL_INT64(int64 (10*eval c1 + eval c2) ) + else VAL_ID(lexeme lexbuf) +# 484 "illex.fs" + ) + | 18 -> ( +# 144 "..\..\absil\illex.fsl" + VAL_INT64(int64(lexeme lexbuf)) +# 489 "illex.fs" + ) + | 19 -> ( +# 146 "..\..\absil\illex.fsl" + let c1 = (lexeme lexbuf).[6] in + let c2 = (lexeme lexbuf).[7] in + if c1 >= '0' && c1 <= '9' && c2 >= '0' && c2 <= '9' then + VAL_INT64(int64 (10*eval c1 + eval c2)) + else VAL_ID(lexeme lexbuf) +# 498 "illex.fs" + ) + | 20 -> ( +# 153 "..\..\absil\illex.fsl" + VAL_INT64(int64(lexeme lexbuf)) +# 503 "illex.fs" + ) + | 21 -> ( +# 155 "..\..\absil\illex.fsl" + VAL_FLOAT64( (float (lexeme lexbuf)) ) +# 508 "illex.fs" + ) + | 22 -> ( +# 158 "..\..\absil\illex.fsl" + let s = (lexeme lexbuf) in kwdOrInstr s +# 513 "illex.fs" + ) + | 23 -> ( +# 160 "..\..\absil\illex.fsl" + kwdOrInstrOrId (lexeme lexbuf) +# 518 "illex.fs" + ) + | 24 -> ( +# 163 "..\..\absil\illex.fsl" + VAL_DOTTEDNAME(lexeme lexbuf) +# 523 "illex.fs" + ) + | 25 -> ( +# 166 "..\..\absil\illex.fsl" + token lexbuf +# 528 "illex.fs" + ) + | 26 -> ( +# 168 "..\..\absil\illex.fsl" + unexpectedChar lexbuf +# 533 "illex.fs" + ) + | 27 -> ( +# 170 "..\..\absil\illex.fsl" + EOF +# 538 "illex.fs" + ) + | _ -> failwith "token" + +# 172 "..\..\absil\illex.fsl" + +# 3000000 "illex.fs" diff --git a/src/fsharp/FSharp.Compiler-proto/ilpars.fs b/src/fsharp/FSharp.Compiler-proto/ilpars.fs new file mode 100644 index 0000000..ba4ba2c --- /dev/null +++ b/src/fsharp/FSharp.Compiler-proto/ilpars.fs @@ -0,0 +1,1755 @@ +// Implementation file for parser generated by fsyacc +module internal Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiParser +#nowarn "64";; // turn off warnings that type variables used in production annotations are instantiated to concrete type +open Microsoft.FSharp.Compiler.AbstractIL +open Internal.Utilities.Text.Lexing +open Internal.Utilities.Text.Parsing.ParseHelpers +# 1 "..\..\absil\ilpars.fsy" + +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +#nowarn "1182" // the generated code often has unused variable "parseState" + +open Internal.Utilities +open Internal.Utilities.Text + +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiConstants +open Microsoft.FSharp.Compiler.AbstractIL.Diagnostics +open Microsoft.FSharp.Compiler.AbstractIL.Extensions.ILX.Types +open Microsoft.FSharp.Compiler.AbstractIL.IL +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library + + +let pfailwith s = + stderr.WriteLine ("*** error: "+s); + raise Parsing.RecoverableParseError + +/// vararg sentinels +type SigArg = SigArg of (string option * ILType) | Sentinel + +let decodeVarargs args = + let rec normals = function + | [] -> ([],None) + | Sentinel :: t -> ([],Some (ILList.ofList (varargs t))) + | SigArg (_,p)::t -> let (n,r) = normals t in (p::n, r) + and varargs = function + | [] -> [] + | SigArg (_,ty):: t -> let l = varargs t in ty::l + | Sentinel :: t -> pfailwith "two sentinels in vararg call" + normals args + + +type ResolvedAtMethodSpecScope<'T> = + ResolvedAtMethodSpecScope of (ILGenericParameterDefs -> 'T) + +let noMethodSpecScope x = ResolvedAtMethodSpecScope (fun _cgparams -> x) +let resolveMethodSpecScope (ResolvedAtMethodSpecScope f) x = f x +let resolveMethodSpecScopeThen (ResolvedAtMethodSpecScope f) g = + ResolvedAtMethodSpecScope (fun x -> resolveMethodSpecScope (g(f x)) x) + +let resolveFormalMethodSpecScope tspeco obj = + match tspeco with + None -> resolveMethodSpecScope obj mkILEmptyGenericParams + | Some (tspec:ILTypeSpec) -> resolveMethodSpecScope obj (mkILFormalTyparsRaw tspec.GenericArgs) + +let resolveCurrentMethodSpecScope obj = + resolveMethodSpecScope obj mkILEmptyGenericParams + + +let findMscorlibAssemblyRef() = + match (!parseILGlobals).mscorlibScopeRef with + | ILScopeRef.Assembly aref -> aref + | _ -> pfailwith "mscorlibScopeRef not set to valid assembly reference in parseILGlobals" + +let findAssemblyRef nm = + if nm = "mscorlib" then findMscorlibAssemblyRef() else + pfailwith ("Undefined assembly ref '" + nm + "'") + + +# 81 "ilpars.fs" +// This type is the type of tokens accepted by the parser +type token = + | VOID + | VARARG + | VALUETYPE + | VALUE + | UNSIGNED + | UNMANAGED + | UINT8 + | UINT64 + | UINT32 + | UINT16 + | UINT + | STRING + | STAR + | SLASH + | RPAREN + | RBRACK + | PLUS + | OBJECT + | NATIVE + | METHOD + | LPAREN + | LESS + | LBRACK + | INT8 + | INT64 + | INT32 + | INT16 + | INT + | INSTANCE + | GREATER + | FLOAT64 + | FLOAT32 + | FIELD + | EXPLICIT + | EOF + | ELIPSES + | DOT + | DEFAULT + | DCOLON + | COMMA + | CLASS + | CHAR + | BYTEARRAY + | BOOL + | BANG + | AMP + | VAL_SQSTRING of (string) + | VAL_QSTRING of (string) + | VAL_DOTTEDNAME of (string) + | VAL_ID of (string) + | VAL_HEXBYTE of (int) + | INSTR_VALUETYPE of (ValueTypeInstr) + | INSTR_INT_TYPE of (IntTypeInstr) + | INSTR_TYPE of (TypeInstr) + | INSTR_TOK of (TokenInstr) + | INSTR_STRING of (StringInstr) + | INSTR_NONE of (NoArgInstr) + | INSTR_METHOD of (MethodSpecInstr) + | INSTR_R of (DoubleInstr) + | INSTR_I8 of (Int64Instr) + | INSTR_I32_I32 of (Int32Int32Instr) + | INSTR_I of (Int32Instr) + | VAL_FLOAT64 of (double) + | VAL_INT32_ELIPSES of (int32) + | VAL_INT64 of (int64) +// This type is used to give symbolic names to token indexes, useful for error messages +type tokenId = + | TOKEN_VOID + | TOKEN_VARARG + | TOKEN_VALUETYPE + | TOKEN_VALUE + | TOKEN_UNSIGNED + | TOKEN_UNMANAGED + | TOKEN_UINT8 + | TOKEN_UINT64 + | TOKEN_UINT32 + | TOKEN_UINT16 + | TOKEN_UINT + | TOKEN_STRING + | TOKEN_STAR + | TOKEN_SLASH + | TOKEN_RPAREN + | TOKEN_RBRACK + | TOKEN_PLUS + | TOKEN_OBJECT + | TOKEN_NATIVE + | TOKEN_METHOD + | TOKEN_LPAREN + | TOKEN_LESS + | TOKEN_LBRACK + | TOKEN_INT8 + | TOKEN_INT64 + | TOKEN_INT32 + | TOKEN_INT16 + | TOKEN_INT + | TOKEN_INSTANCE + | TOKEN_GREATER + | TOKEN_FLOAT64 + | TOKEN_FLOAT32 + | TOKEN_FIELD + | TOKEN_EXPLICIT + | TOKEN_EOF + | TOKEN_ELIPSES + | TOKEN_DOT + | TOKEN_DEFAULT + | TOKEN_DCOLON + | TOKEN_COMMA + | TOKEN_CLASS + | TOKEN_CHAR + | TOKEN_BYTEARRAY + | TOKEN_BOOL + | TOKEN_BANG + | TOKEN_AMP + | TOKEN_VAL_SQSTRING + | TOKEN_VAL_QSTRING + | TOKEN_VAL_DOTTEDNAME + | TOKEN_VAL_ID + | TOKEN_VAL_HEXBYTE + | TOKEN_INSTR_VALUETYPE + | TOKEN_INSTR_INT_TYPE + | TOKEN_INSTR_TYPE + | TOKEN_INSTR_TOK + | TOKEN_INSTR_STRING + | TOKEN_INSTR_NONE + | TOKEN_INSTR_METHOD + | TOKEN_INSTR_R + | TOKEN_INSTR_I8 + | TOKEN_INSTR_I32_I32 + | TOKEN_INSTR_I + | TOKEN_VAL_FLOAT64 + | TOKEN_VAL_INT32_ELIPSES + | TOKEN_VAL_INT64 + | TOKEN_end_of_input + | TOKEN_error +// This type is used to give symbolic names to token indexes, useful for error messages +type nonTerminalId = + | NONTERM__startilInstrs + | NONTERM__startilType + | NONTERM_ilType + | NONTERM_ilInstrs + | NONTERM_compQstring + | NONTERM_methodName + | NONTERM_instrs2 + | NONTERM_methodSpecMaybeArrayMethod + | NONTERM_instr + | NONTERM_sigArgs0 + | NONTERM_sigArgs1 + | NONTERM_sigArgs1a + | NONTERM_sigArg + | NONTERM_opt_id + | NONTERM_name1 + | NONTERM_className + | NONTERM_slashedName + | NONTERM_typeNameInst + | NONTERM_typeName + | NONTERM_typSpec + | NONTERM_callConv + | NONTERM_callKind + | NONTERM_typ + | NONTERM_bounds1 + | NONTERM_bound + | NONTERM_id + | NONTERM_int32 + | NONTERM_int64 + | NONTERM_float64 + | NONTERM_opt_actual_tyargs + | NONTERM_actual_tyargs + | NONTERM_actualTypSpecs + +// This function maps tokens to integers indexes +let tagOfToken (t:token) = + match t with + | VOID -> 0 + | VARARG -> 1 + | VALUETYPE -> 2 + | VALUE -> 3 + | UNSIGNED -> 4 + | UNMANAGED -> 5 + | UINT8 -> 6 + | UINT64 -> 7 + | UINT32 -> 8 + | UINT16 -> 9 + | UINT -> 10 + | STRING -> 11 + | STAR -> 12 + | SLASH -> 13 + | RPAREN -> 14 + | RBRACK -> 15 + | PLUS -> 16 + | OBJECT -> 17 + | NATIVE -> 18 + | METHOD -> 19 + | LPAREN -> 20 + | LESS -> 21 + | LBRACK -> 22 + | INT8 -> 23 + | INT64 -> 24 + | INT32 -> 25 + | INT16 -> 26 + | INT -> 27 + | INSTANCE -> 28 + | GREATER -> 29 + | FLOAT64 -> 30 + | FLOAT32 -> 31 + | FIELD -> 32 + | EXPLICIT -> 33 + | EOF -> 34 + | ELIPSES -> 35 + | DOT -> 36 + | DEFAULT -> 37 + | DCOLON -> 38 + | COMMA -> 39 + | CLASS -> 40 + | CHAR -> 41 + | BYTEARRAY -> 42 + | BOOL -> 43 + | BANG -> 44 + | AMP -> 45 + | VAL_SQSTRING _ -> 46 + | VAL_QSTRING _ -> 47 + | VAL_DOTTEDNAME _ -> 48 + | VAL_ID _ -> 49 + | VAL_HEXBYTE _ -> 50 + | INSTR_VALUETYPE _ -> 51 + | INSTR_INT_TYPE _ -> 52 + | INSTR_TYPE _ -> 53 + | INSTR_TOK _ -> 54 + | INSTR_STRING _ -> 55 + | INSTR_NONE _ -> 56 + | INSTR_METHOD _ -> 57 + | INSTR_R _ -> 58 + | INSTR_I8 _ -> 59 + | INSTR_I32_I32 _ -> 60 + | INSTR_I _ -> 61 + | VAL_FLOAT64 _ -> 62 + | VAL_INT32_ELIPSES _ -> 63 + | VAL_INT64 _ -> 64 + +// This function maps integers indexes to symbolic token ids +let tokenTagToTokenId (tokenIdx:int) = + match tokenIdx with + | 0 -> TOKEN_VOID + | 1 -> TOKEN_VARARG + | 2 -> TOKEN_VALUETYPE + | 3 -> TOKEN_VALUE + | 4 -> TOKEN_UNSIGNED + | 5 -> TOKEN_UNMANAGED + | 6 -> TOKEN_UINT8 + | 7 -> TOKEN_UINT64 + | 8 -> TOKEN_UINT32 + | 9 -> TOKEN_UINT16 + | 10 -> TOKEN_UINT + | 11 -> TOKEN_STRING + | 12 -> TOKEN_STAR + | 13 -> TOKEN_SLASH + | 14 -> TOKEN_RPAREN + | 15 -> TOKEN_RBRACK + | 16 -> TOKEN_PLUS + | 17 -> TOKEN_OBJECT + | 18 -> TOKEN_NATIVE + | 19 -> TOKEN_METHOD + | 20 -> TOKEN_LPAREN + | 21 -> TOKEN_LESS + | 22 -> TOKEN_LBRACK + | 23 -> TOKEN_INT8 + | 24 -> TOKEN_INT64 + | 25 -> TOKEN_INT32 + | 26 -> TOKEN_INT16 + | 27 -> TOKEN_INT + | 28 -> TOKEN_INSTANCE + | 29 -> TOKEN_GREATER + | 30 -> TOKEN_FLOAT64 + | 31 -> TOKEN_FLOAT32 + | 32 -> TOKEN_FIELD + | 33 -> TOKEN_EXPLICIT + | 34 -> TOKEN_EOF + | 35 -> TOKEN_ELIPSES + | 36 -> TOKEN_DOT + | 37 -> TOKEN_DEFAULT + | 38 -> TOKEN_DCOLON + | 39 -> TOKEN_COMMA + | 40 -> TOKEN_CLASS + | 41 -> TOKEN_CHAR + | 42 -> TOKEN_BYTEARRAY + | 43 -> TOKEN_BOOL + | 44 -> TOKEN_BANG + | 45 -> TOKEN_AMP + | 46 -> TOKEN_VAL_SQSTRING + | 47 -> TOKEN_VAL_QSTRING + | 48 -> TOKEN_VAL_DOTTEDNAME + | 49 -> TOKEN_VAL_ID + | 50 -> TOKEN_VAL_HEXBYTE + | 51 -> TOKEN_INSTR_VALUETYPE + | 52 -> TOKEN_INSTR_INT_TYPE + | 53 -> TOKEN_INSTR_TYPE + | 54 -> TOKEN_INSTR_TOK + | 55 -> TOKEN_INSTR_STRING + | 56 -> TOKEN_INSTR_NONE + | 57 -> TOKEN_INSTR_METHOD + | 58 -> TOKEN_INSTR_R + | 59 -> TOKEN_INSTR_I8 + | 60 -> TOKEN_INSTR_I32_I32 + | 61 -> TOKEN_INSTR_I + | 62 -> TOKEN_VAL_FLOAT64 + | 63 -> TOKEN_VAL_INT32_ELIPSES + | 64 -> TOKEN_VAL_INT64 + | 67 -> TOKEN_end_of_input + | 65 -> TOKEN_error + | _ -> failwith "tokenTagToTokenId: bad token" + +/// This function maps production indexes returned in syntax errors to strings representing the non terminal that would be produced by that production +let prodIdxToNonTerminal (prodIdx:int) = + match prodIdx with + | 0 -> NONTERM__startilInstrs + | 1 -> NONTERM__startilType + | 2 -> NONTERM_ilType + | 3 -> NONTERM_ilInstrs + | 4 -> NONTERM_compQstring + | 5 -> NONTERM_compQstring + | 6 -> NONTERM_methodName + | 7 -> NONTERM_instrs2 + | 8 -> NONTERM_instrs2 + | 9 -> NONTERM_methodSpecMaybeArrayMethod + | 10 -> NONTERM_instr + | 11 -> NONTERM_instr + | 12 -> NONTERM_instr + | 13 -> NONTERM_instr + | 14 -> NONTERM_instr + | 15 -> NONTERM_instr + | 16 -> NONTERM_instr + | 17 -> NONTERM_instr + | 18 -> NONTERM_instr + | 19 -> NONTERM_instr + | 20 -> NONTERM_instr + | 21 -> NONTERM_sigArgs0 + | 22 -> NONTERM_sigArgs0 + | 23 -> NONTERM_sigArgs1 + | 24 -> NONTERM_sigArgs1a + | 25 -> NONTERM_sigArgs1a + | 26 -> NONTERM_sigArg + | 27 -> NONTERM_opt_id + | 28 -> NONTERM_opt_id + | 29 -> NONTERM_name1 + | 30 -> NONTERM_name1 + | 31 -> NONTERM_name1 + | 32 -> NONTERM_className + | 33 -> NONTERM_className + | 34 -> NONTERM_slashedName + | 35 -> NONTERM_slashedName + | 36 -> NONTERM_typeNameInst + | 37 -> NONTERM_typeName + | 38 -> NONTERM_typSpec + | 39 -> NONTERM_typSpec + | 40 -> NONTERM_typSpec + | 41 -> NONTERM_callConv + | 42 -> NONTERM_callConv + | 43 -> NONTERM_callConv + | 44 -> NONTERM_callKind + | 45 -> NONTERM_callKind + | 46 -> NONTERM_callKind + | 47 -> NONTERM_typ + | 48 -> NONTERM_typ + | 49 -> NONTERM_typ + | 50 -> NONTERM_typ + | 51 -> NONTERM_typ + | 52 -> NONTERM_typ + | 53 -> NONTERM_typ + | 54 -> NONTERM_typ + | 55 -> NONTERM_typ + | 56 -> NONTERM_typ + | 57 -> NONTERM_typ + | 58 -> NONTERM_typ + | 59 -> NONTERM_typ + | 60 -> NONTERM_typ + | 61 -> NONTERM_typ + | 62 -> NONTERM_typ + | 63 -> NONTERM_typ + | 64 -> NONTERM_typ + | 65 -> NONTERM_typ + | 66 -> NONTERM_typ + | 67 -> NONTERM_typ + | 68 -> NONTERM_typ + | 69 -> NONTERM_typ + | 70 -> NONTERM_typ + | 71 -> NONTERM_typ + | 72 -> NONTERM_typ + | 73 -> NONTERM_typ + | 74 -> NONTERM_typ + | 75 -> NONTERM_typ + | 76 -> NONTERM_typ + | 77 -> NONTERM_bounds1 + | 78 -> NONTERM_bounds1 + | 79 -> NONTERM_bound + | 80 -> NONTERM_bound + | 81 -> NONTERM_bound + | 82 -> NONTERM_bound + | 83 -> NONTERM_bound + | 84 -> NONTERM_bound + | 85 -> NONTERM_id + | 86 -> NONTERM_id + | 87 -> NONTERM_int32 + | 88 -> NONTERM_int64 + | 89 -> NONTERM_float64 + | 90 -> NONTERM_float64 + | 91 -> NONTERM_opt_actual_tyargs + | 92 -> NONTERM_opt_actual_tyargs + | 93 -> NONTERM_actual_tyargs + | 94 -> NONTERM_actualTypSpecs + | 95 -> NONTERM_actualTypSpecs + | _ -> failwith "prodIdxToNonTerminal: bad production index" + +let _fsyacc_endOfInputTag = 67 +let _fsyacc_tagOfErrorTerminal = 65 + +// This function gets the name of a token as a string +let token_to_string (t:token) = + match t with + | VOID -> "VOID" + | VARARG -> "VARARG" + | VALUETYPE -> "VALUETYPE" + | VALUE -> "VALUE" + | UNSIGNED -> "UNSIGNED" + | UNMANAGED -> "UNMANAGED" + | UINT8 -> "UINT8" + | UINT64 -> "UINT64" + | UINT32 -> "UINT32" + | UINT16 -> "UINT16" + | UINT -> "UINT" + | STRING -> "STRING" + | STAR -> "STAR" + | SLASH -> "SLASH" + | RPAREN -> "RPAREN" + | RBRACK -> "RBRACK" + | PLUS -> "PLUS" + | OBJECT -> "OBJECT" + | NATIVE -> "NATIVE" + | METHOD -> "METHOD" + | LPAREN -> "LPAREN" + | LESS -> "LESS" + | LBRACK -> "LBRACK" + | INT8 -> "INT8" + | INT64 -> "INT64" + | INT32 -> "INT32" + | INT16 -> "INT16" + | INT -> "INT" + | INSTANCE -> "INSTANCE" + | GREATER -> "GREATER" + | FLOAT64 -> "FLOAT64" + | FLOAT32 -> "FLOAT32" + | FIELD -> "FIELD" + | EXPLICIT -> "EXPLICIT" + | EOF -> "EOF" + | ELIPSES -> "ELIPSES" + | DOT -> "DOT" + | DEFAULT -> "DEFAULT" + | DCOLON -> "DCOLON" + | COMMA -> "COMMA" + | CLASS -> "CLASS" + | CHAR -> "CHAR" + | BYTEARRAY -> "BYTEARRAY" + | BOOL -> "BOOL" + | BANG -> "BANG" + | AMP -> "AMP" + | VAL_SQSTRING _ -> "VAL_SQSTRING" + | VAL_QSTRING _ -> "VAL_QSTRING" + | VAL_DOTTEDNAME _ -> "VAL_DOTTEDNAME" + | VAL_ID _ -> "VAL_ID" + | VAL_HEXBYTE _ -> "VAL_HEXBYTE" + | INSTR_VALUETYPE _ -> "INSTR_VALUETYPE" + | INSTR_INT_TYPE _ -> "INSTR_INT_TYPE" + | INSTR_TYPE _ -> "INSTR_TYPE" + | INSTR_TOK _ -> "INSTR_TOK" + | INSTR_STRING _ -> "INSTR_STRING" + | INSTR_NONE _ -> "INSTR_NONE" + | INSTR_METHOD _ -> "INSTR_METHOD" + | INSTR_R _ -> "INSTR_R" + | INSTR_I8 _ -> "INSTR_I8" + | INSTR_I32_I32 _ -> "INSTR_I32_I32" + | INSTR_I _ -> "INSTR_I" + | VAL_FLOAT64 _ -> "VAL_FLOAT64" + | VAL_INT32_ELIPSES _ -> "VAL_INT32_ELIPSES" + | VAL_INT64 _ -> "VAL_INT64" + +// This function gets the data carried by a token as an object +let _fsyacc_dataOfToken (t:token) = + match t with + | VOID -> (null : System.Object) + | VARARG -> (null : System.Object) + | VALUETYPE -> (null : System.Object) + | VALUE -> (null : System.Object) + | UNSIGNED -> (null : System.Object) + | UNMANAGED -> (null : System.Object) + | UINT8 -> (null : System.Object) + | UINT64 -> (null : System.Object) + | UINT32 -> (null : System.Object) + | UINT16 -> (null : System.Object) + | UINT -> (null : System.Object) + | STRING -> (null : System.Object) + | STAR -> (null : System.Object) + | SLASH -> (null : System.Object) + | RPAREN -> (null : System.Object) + | RBRACK -> (null : System.Object) + | PLUS -> (null : System.Object) + | OBJECT -> (null : System.Object) + | NATIVE -> (null : System.Object) + | METHOD -> (null : System.Object) + | LPAREN -> (null : System.Object) + | LESS -> (null : System.Object) + | LBRACK -> (null : System.Object) + | INT8 -> (null : System.Object) + | INT64 -> (null : System.Object) + | INT32 -> (null : System.Object) + | INT16 -> (null : System.Object) + | INT -> (null : System.Object) + | INSTANCE -> (null : System.Object) + | GREATER -> (null : System.Object) + | FLOAT64 -> (null : System.Object) + | FLOAT32 -> (null : System.Object) + | FIELD -> (null : System.Object) + | EXPLICIT -> (null : System.Object) + | EOF -> (null : System.Object) + | ELIPSES -> (null : System.Object) + | DOT -> (null : System.Object) + | DEFAULT -> (null : System.Object) + | DCOLON -> (null : System.Object) + | COMMA -> (null : System.Object) + | CLASS -> (null : System.Object) + | CHAR -> (null : System.Object) + | BYTEARRAY -> (null : System.Object) + | BOOL -> (null : System.Object) + | BANG -> (null : System.Object) + | AMP -> (null : System.Object) + | VAL_SQSTRING _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | VAL_QSTRING _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | VAL_DOTTEDNAME _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | VAL_ID _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | VAL_HEXBYTE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_VALUETYPE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_INT_TYPE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_TYPE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_TOK _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_STRING _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_NONE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_METHOD _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_R _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_I8 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_I32_I32 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INSTR_I _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | VAL_FLOAT64 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | VAL_INT32_ELIPSES _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | VAL_INT64 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x +let _fsyacc_gotos = [| 0us; 65535us; 0us; 65535us; 1us; 65535us; 2us; 3us; 1us; 65535us; 0us; 1us; 0us; 65535us; 1us; 65535us; 14us; 15us; 2us; 65535us; 0us; 6us; 9us; 10us; 1us; 65535us; 31us; 32us; 2us; 65535us; 0us; 9us; 9us; 9us; 1us; 65535us; 17us; 18us; 1us; 65535us; 17us; 42us; 1us; 65535us; 17us; 43us; 2us; 65535us; 17us; 44us; 45us; 46us; 1us; 65535us; 47us; 48us; 15us; 65535us; 12us; 53us; 14us; 8us; 33us; 53us; 36us; 53us; 38us; 53us; 40us; 53us; 56us; 52us; 57us; 52us; 58us; 53us; 61us; 53us; 80us; 53us; 83us; 53us; 85us; 53us; 136us; 53us; 140us; 53us; 10us; 65535us; 12us; 65us; 33us; 65us; 36us; 65us; 38us; 65us; 40us; 65us; 80us; 63us; 83us; 63us; 85us; 63us; 136us; 65us; 140us; 65us; 12us; 65535us; 12us; 60us; 33us; 60us; 36us; 60us; 38us; 60us; 40us; 60us; 58us; 59us; 61us; 62us; 80us; 60us; 83us; 60us; 85us; 60us; 136us; 60us; 140us; 60us; 3us; 65535us; 80us; 81us; 83us; 84us; 85us; 86us; 7us; 65535us; 12us; 66us; 33us; 66us; 36us; 66us; 38us; 66us; 40us; 66us; 136us; 66us; 140us; 66us; 7us; 65535us; 12us; 13us; 33us; 34us; 36us; 37us; 38us; 39us; 40us; 41us; 136us; 139us; 140us; 141us; 1us; 65535us; 31us; 11us; 3us; 65535us; 31us; 75us; 71us; 72us; 73us; 74us; 12us; 65535us; 2us; 4us; 11us; 12us; 12us; 67us; 17us; 47us; 33us; 67us; 36us; 67us; 38us; 67us; 40us; 67us; 45us; 47us; 68us; 69us; 136us; 67us; 140us; 67us; 2us; 65535us; 57us; 89us; 87us; 89us; 3us; 65535us; 57us; 118us; 87us; 118us; 119us; 120us; 17us; 65535us; 12us; 50us; 14us; 50us; 33us; 50us; 36us; 50us; 38us; 50us; 40us; 50us; 47us; 49us; 54us; 55us; 56us; 50us; 57us; 50us; 58us; 50us; 61us; 50us; 80us; 50us; 83us; 50us; 85us; 50us; 136us; 50us; 140us; 50us; 10us; 65535us; 21us; 22us; 23us; 24us; 24us; 25us; 35us; 36us; 57us; 121us; 87us; 121us; 116us; 117us; 119us; 121us; 122us; 123us; 124us; 125us; 3us; 65535us; 26us; 27us; 28us; 30us; 132us; 133us; 1us; 65535us; 28us; 29us; 2us; 65535us; 15us; 16us; 63us; 64us; 2us; 65535us; 15us; 135us; 63us; 135us; 1us; 65535us; 136us; 137us; |] +let _fsyacc_sparseGotoTableRowOffsets = [|0us; 1us; 2us; 4us; 6us; 7us; 9us; 12us; 14us; 17us; 19us; 21us; 23us; 26us; 28us; 44us; 55us; 68us; 72us; 80us; 88us; 90us; 94us; 107us; 110us; 114us; 132us; 143us; 147us; 149us; 152us; 155us; |] +let _fsyacc_stateToProdIdxsTableElements = [| 1us; 0us; 1us; 0us; 1us; 1us; 1us; 1us; 5us; 2us; 52us; 53us; 54us; 55us; 1us; 2us; 1us; 3us; 1us; 3us; 2us; 6us; 31us; 1us; 7us; 1us; 7us; 1us; 9us; 5us; 9us; 52us; 53us; 54us; 55us; 1us; 9us; 1us; 9us; 1us; 9us; 1us; 9us; 1us; 9us; 1us; 9us; 1us; 9us; 1us; 10us; 1us; 11us; 1us; 11us; 1us; 12us; 1us; 12us; 1us; 12us; 1us; 13us; 1us; 13us; 2us; 14us; 15us; 1us; 14us; 1us; 15us; 1us; 16us; 1us; 16us; 1us; 17us; 1us; 17us; 1us; 18us; 1us; 18us; 1us; 18us; 1us; 19us; 1us; 19us; 1us; 20us; 1us; 20us; 1us; 22us; 2us; 23us; 25us; 1us; 24us; 1us; 25us; 1us; 25us; 5us; 26us; 52us; 53us; 54us; 55us; 1us; 26us; 1us; 28us; 1us; 29us; 1us; 30us; 2us; 31us; 32us; 3us; 31us; 34us; 35us; 1us; 31us; 1us; 31us; 1us; 32us; 3us; 32us; 52us; 53us; 1us; 32us; 1us; 32us; 1us; 33us; 1us; 35us; 1us; 35us; 1us; 36us; 1us; 36us; 1us; 37us; 1us; 38us; 5us; 39us; 52us; 53us; 54us; 55us; 1us; 40us; 5us; 40us; 52us; 53us; 54us; 55us; 1us; 40us; 1us; 41us; 1us; 41us; 1us; 42us; 1us; 42us; 1us; 43us; 1us; 45us; 1us; 46us; 1us; 47us; 1us; 48us; 1us; 49us; 1us; 49us; 1us; 50us; 1us; 50us; 1us; 50us; 1us; 51us; 1us; 51us; 2us; 52us; 53us; 1us; 52us; 2us; 53us; 78us; 1us; 53us; 1us; 54us; 1us; 55us; 1us; 56us; 1us; 57us; 1us; 58us; 1us; 59us; 1us; 60us; 1us; 61us; 1us; 62us; 1us; 63us; 1us; 64us; 4us; 65us; 66us; 67us; 68us; 1us; 65us; 1us; 66us; 1us; 67us; 1us; 68us; 1us; 69us; 1us; 70us; 1us; 71us; 1us; 72us; 3us; 73us; 74us; 75us; 1us; 73us; 1us; 74us; 1us; 74us; 1us; 75us; 1us; 76us; 1us; 76us; 1us; 77us; 1us; 78us; 1us; 78us; 3us; 80us; 81us; 82us; 2us; 81us; 82us; 1us; 81us; 2us; 83us; 84us; 1us; 83us; 1us; 85us; 1us; 86us; 1us; 87us; 1us; 88us; 1us; 89us; 1us; 90us; 1us; 90us; 1us; 90us; 1us; 90us; 1us; 92us; 1us; 93us; 2us; 93us; 95us; 1us; 93us; 1us; 94us; 1us; 95us; 1us; 95us; |] +let _fsyacc_stateToProdIdxsTableRowOffsets = [|0us; 2us; 4us; 6us; 8us; 14us; 16us; 18us; 20us; 23us; 25us; 27us; 29us; 35us; 37us; 39us; 41us; 43us; 45us; 47us; 49us; 51us; 53us; 55us; 57us; 59us; 61us; 63us; 65us; 68us; 70us; 72us; 74us; 76us; 78us; 80us; 82us; 84us; 86us; 88us; 90us; 92us; 94us; 96us; 99us; 101us; 103us; 105us; 111us; 113us; 115us; 117us; 119us; 122us; 126us; 128us; 130us; 132us; 136us; 138us; 140us; 142us; 144us; 146us; 148us; 150us; 152us; 154us; 160us; 162us; 168us; 170us; 172us; 174us; 176us; 178us; 180us; 182us; 184us; 186us; 188us; 190us; 192us; 194us; 196us; 198us; 200us; 202us; 205us; 207us; 210us; 212us; 214us; 216us; 218us; 220us; 222us; 224us; 226us; 228us; 230us; 232us; 234us; 239us; 241us; 243us; 245us; 247us; 249us; 251us; 253us; 255us; 259us; 261us; 263us; 265us; 267us; 269us; 271us; 273us; 275us; 277us; 281us; 284us; 286us; 289us; 291us; 293us; 295us; 297us; 299us; 301us; 303us; 305us; 307us; 309us; 311us; 313us; 316us; 318us; 320us; 322us; |] +let _fsyacc_action_rows = 142 +let _fsyacc_actionTableElements = [|10us; 16392us; 51us; 38us; 52us; 35us; 53us; 33us; 54us; 40us; 56us; 20us; 57us; 31us; 58us; 28us; 59us; 26us; 60us; 23us; 61us; 21us; 0us; 49152us; 21us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 0us; 49152us; 4us; 32768us; 12us; 92us; 22us; 87us; 34us; 5us; 45us; 91us; 0us; 16386us; 1us; 32768us; 34us; 7us; 0us; 16387us; 1us; 16390us; 36us; 54us; 10us; 16392us; 51us; 38us; 52us; 35us; 53us; 33us; 54us; 40us; 56us; 20us; 57us; 31us; 58us; 28us; 59us; 26us; 60us; 23us; 61us; 21us; 0us; 16391us; 21us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 28us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 12us; 92us; 17us; 79us; 18us; 111us; 20us; 68us; 22us; 57us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 45us; 91us; 46us; 127us; 48us; 51us; 49us; 126us; 1us; 32768us; 38us; 14us; 3us; 32768us; 46us; 127us; 48us; 51us; 49us; 126us; 1us; 16475us; 21us; 136us; 1us; 32768us; 20us; 17us; 21us; 16405us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 1us; 32768us; 14us; 19us; 0us; 16393us; 0us; 16394us; 1us; 32768us; 64us; 128us; 0us; 16395us; 1us; 32768us; 64us; 128us; 1us; 32768us; 64us; 128us; 0us; 16396us; 1us; 32768us; 64us; 129us; 0us; 16397us; 3us; 32768us; 30us; 131us; 62us; 130us; 64us; 129us; 0us; 16398us; 0us; 16399us; 4us; 16428us; 1us; 77us; 28us; 71us; 33us; 73us; 37us; 76us; 0us; 16400us; 26us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 20us; 68us; 22us; 56us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 46us; 127us; 48us; 51us; 49us; 126us; 0us; 16401us; 1us; 32768us; 64us; 128us; 26us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 20us; 68us; 22us; 56us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 46us; 127us; 48us; 51us; 49us; 126us; 0us; 16402us; 26us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 20us; 68us; 22us; 56us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 46us; 127us; 48us; 51us; 49us; 126us; 0us; 16403us; 26us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 20us; 68us; 22us; 56us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 46us; 127us; 48us; 51us; 49us; 126us; 0us; 16404us; 0us; 16406us; 1us; 16407us; 39us; 45us; 0us; 16408us; 21us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 0us; 16409us; 5us; 16411us; 12us; 92us; 22us; 87us; 45us; 91us; 46us; 127us; 49us; 126us; 0us; 16410us; 0us; 16412us; 0us; 16413us; 0us; 16414us; 2us; 32768us; 15us; 58us; 36us; 54us; 2us; 16418us; 13us; 61us; 36us; 54us; 2us; 32768us; 46us; 127us; 49us; 126us; 0us; 16415us; 3us; 32768us; 46us; 127us; 48us; 51us; 49us; 126us; 6us; 16463us; 15us; 88us; 46us; 127us; 48us; 51us; 49us; 126us; 63us; 124us; 64us; 128us; 3us; 32768us; 46us; 127us; 48us; 51us; 49us; 126us; 0us; 16416us; 0us; 16417us; 3us; 32768us; 46us; 127us; 48us; 51us; 49us; 126us; 0us; 16419us; 1us; 16475us; 21us; 136us; 0us; 16420us; 0us; 16421us; 0us; 16422us; 3us; 16423us; 12us; 92us; 22us; 87us; 45us; 91us; 21us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 4us; 32768us; 12us; 92us; 14us; 70us; 22us; 87us; 45us; 91us; 0us; 16424us; 2us; 16428us; 1us; 77us; 37us; 76us; 0us; 16425us; 2us; 16428us; 1us; 77us; 37us; 76us; 0us; 16426us; 0us; 16427us; 0us; 16429us; 0us; 16430us; 0us; 16431us; 0us; 16432us; 4us; 32768us; 22us; 56us; 46us; 127us; 48us; 51us; 49us; 126us; 0us; 16433us; 1us; 32768us; 40us; 83us; 4us; 32768us; 22us; 56us; 46us; 127us; 48us; 51us; 49us; 126us; 0us; 16434us; 4us; 32768us; 22us; 56us; 46us; 127us; 48us; 51us; 49us; 126us; 0us; 16435us; 3us; 16463us; 15us; 88us; 63us; 124us; 64us; 128us; 0us; 16436us; 2us; 32768us; 15us; 90us; 39us; 119us; 0us; 16437us; 0us; 16438us; 0us; 16439us; 0us; 16440us; 0us; 16441us; 0us; 16442us; 0us; 16443us; 0us; 16444us; 0us; 16445us; 0us; 16446us; 0us; 16447us; 0us; 16448us; 4us; 32768us; 23us; 103us; 24us; 106us; 25us; 105us; 26us; 104us; 0us; 16449us; 0us; 16450us; 0us; 16451us; 0us; 16452us; 0us; 16453us; 0us; 16454us; 0us; 16455us; 0us; 16456us; 3us; 32768us; 4us; 113us; 10us; 115us; 27us; 112us; 0us; 16457us; 1us; 32768us; 27us; 114us; 0us; 16458us; 0us; 16459us; 1us; 32768us; 64us; 128us; 0us; 16460us; 0us; 16461us; 2us; 16463us; 63us; 124us; 64us; 128us; 0us; 16462us; 1us; 16464us; 35us; 122us; 1us; 16466us; 64us; 128us; 0us; 16465us; 1us; 16468us; 64us; 128us; 0us; 16467us; 0us; 16469us; 0us; 16470us; 0us; 16471us; 0us; 16472us; 0us; 16473us; 1us; 32768us; 20us; 132us; 1us; 32768us; 64us; 129us; 1us; 32768us; 14us; 134us; 0us; 16474us; 0us; 16476us; 26us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 20us; 68us; 22us; 56us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 46us; 127us; 48us; 51us; 49us; 126us; 2us; 32768us; 29us; 138us; 39us; 140us; 0us; 16477us; 0us; 16478us; 26us; 32768us; 0us; 94us; 2us; 85us; 3us; 82us; 4us; 102us; 6us; 107us; 7us; 110us; 8us; 109us; 9us; 108us; 11us; 78us; 17us; 79us; 18us; 111us; 20us; 68us; 22us; 56us; 23us; 96us; 24us; 99us; 25us; 98us; 26us; 97us; 30us; 101us; 31us; 100us; 40us; 80us; 41us; 93us; 43us; 95us; 44us; 116us; 46us; 127us; 48us; 51us; 49us; 126us; 0us; 16479us; |] +let _fsyacc_actionTableRowOffsets = [|0us; 11us; 12us; 34us; 35us; 40us; 41us; 43us; 44us; 46us; 57us; 58us; 80us; 109us; 111us; 115us; 117us; 119us; 141us; 143us; 144us; 145us; 147us; 148us; 150us; 152us; 153us; 155us; 156us; 160us; 161us; 162us; 167us; 168us; 195us; 196us; 198us; 225us; 226us; 253us; 254us; 281us; 282us; 283us; 285us; 286us; 308us; 309us; 315us; 316us; 317us; 318us; 319us; 322us; 325us; 328us; 329us; 333us; 340us; 344us; 345us; 346us; 350us; 351us; 353us; 354us; 355us; 356us; 360us; 382us; 387us; 388us; 391us; 392us; 395us; 396us; 397us; 398us; 399us; 400us; 401us; 406us; 407us; 409us; 414us; 415us; 420us; 421us; 425us; 426us; 429us; 430us; 431us; 432us; 433us; 434us; 435us; 436us; 437us; 438us; 439us; 440us; 441us; 446us; 447us; 448us; 449us; 450us; 451us; 452us; 453us; 454us; 458us; 459us; 461us; 462us; 463us; 465us; 466us; 467us; 470us; 471us; 473us; 475us; 476us; 478us; 479us; 480us; 481us; 482us; 483us; 484us; 486us; 488us; 490us; 491us; 492us; 519us; 522us; 523us; 524us; 551us; |] +let _fsyacc_reductionSymbolCounts = [|1us; 1us; 2us; 2us; 1us; 3us; 1us; 2us; 0us; 9us; 1us; 2us; 3us; 2us; 2us; 2us; 2us; 2us; 3us; 2us; 2us; 0us; 1us; 1us; 1us; 3us; 2us; 0us; 1us; 1us; 1us; 3us; 4us; 1us; 1us; 3us; 2us; 1us; 1us; 1us; 3us; 2us; 2us; 1us; 0us; 1us; 1us; 1us; 1us; 2us; 3us; 2us; 3us; 4us; 2us; 2us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 2us; 2us; 2us; 2us; 1us; 1us; 1us; 1us; 2us; 3us; 2us; 2us; 1us; 3us; 0us; 1us; 3us; 2us; 2us; 1us; 1us; 1us; 1us; 1us; 1us; 4us; 0us; 1us; 3us; 1us; 3us; |] +let _fsyacc_productionToNonTerminalTable = [|0us; 1us; 2us; 3us; 4us; 4us; 5us; 6us; 6us; 7us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 9us; 9us; 10us; 11us; 11us; 12us; 13us; 13us; 14us; 14us; 14us; 15us; 15us; 16us; 16us; 17us; 18us; 19us; 19us; 19us; 20us; 20us; 20us; 21us; 21us; 21us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 22us; 23us; 23us; 24us; 24us; 24us; 24us; 24us; 24us; 25us; 25us; 26us; 27us; 28us; 28us; 29us; 29us; 30us; 31us; 31us; |] +let _fsyacc_immediateActions = [|65535us; 49152us; 65535us; 49152us; 65535us; 16386us; 65535us; 16387us; 65535us; 65535us; 16391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16393us; 16394us; 65535us; 16395us; 65535us; 65535us; 16396us; 65535us; 16397us; 65535us; 16398us; 16399us; 65535us; 16400us; 65535us; 16401us; 65535us; 65535us; 16402us; 65535us; 16403us; 65535us; 16404us; 16406us; 65535us; 16408us; 65535us; 16409us; 65535us; 16410us; 16412us; 16413us; 16414us; 65535us; 65535us; 65535us; 16415us; 65535us; 65535us; 65535us; 16416us; 16417us; 65535us; 16419us; 65535us; 16420us; 16421us; 16422us; 65535us; 65535us; 65535us; 16424us; 65535us; 16425us; 65535us; 16426us; 16427us; 16429us; 16430us; 16431us; 16432us; 65535us; 16433us; 65535us; 65535us; 16434us; 65535us; 16435us; 65535us; 16436us; 65535us; 16437us; 16438us; 16439us; 16440us; 16441us; 16442us; 16443us; 16444us; 16445us; 16446us; 16447us; 16448us; 65535us; 16449us; 16450us; 16451us; 16452us; 16453us; 16454us; 16455us; 16456us; 65535us; 16457us; 65535us; 16458us; 16459us; 65535us; 16460us; 16461us; 65535us; 16462us; 65535us; 65535us; 16465us; 65535us; 16467us; 16469us; 16470us; 16471us; 16472us; 16473us; 65535us; 65535us; 65535us; 16474us; 16476us; 65535us; 65535us; 16477us; 16478us; 65535us; 16479us; |] +let _fsyacc_reductions () = [| +# 646 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILInstr array)) in + Microsoft.FSharp.Core.Operators.box + ( + ( + raise (Internal.Utilities.Text.Parsing.Accept(Microsoft.FSharp.Core.Operators.box _1)) + ) + : '_startilInstrs)); +# 655 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( + raise (Internal.Utilities.Text.Parsing.Accept(Microsoft.FSharp.Core.Operators.box _1)) + ) + : '_startilType)); +# 664 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType ResolvedAtMethodSpecScope)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 156 "..\..\absil\ilpars.fsy" + resolveMethodSpecScope _1 [] + ) +# 156 "..\..\absil\ilpars.fsy" + : ILType)); +# 675 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'instrs2)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 160 "..\..\absil\ilpars.fsy" + Array.ofList _1 + ) +# 160 "..\..\absil\ilpars.fsy" + : ILInstr array)); +# 686 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 164 "..\..\absil\ilpars.fsy" + _1 + ) +# 164 "..\..\absil\ilpars.fsy" + : 'compQstring)); +# 697 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'compQstring)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 165 "..\..\absil\ilpars.fsy" + _1 + _3 + ) +# 165 "..\..\absil\ilpars.fsy" + : 'compQstring)); +# 709 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 167 "..\..\absil\ilpars.fsy" + _1 + ) +# 167 "..\..\absil\ilpars.fsy" + : 'methodName)); +# 720 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'instr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'instrs2)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 171 "..\..\absil\ilpars.fsy" + _1 :: _2 + ) +# 171 "..\..\absil\ilpars.fsy" + : 'instrs2)); +# 732 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 172 "..\..\absil\ilpars.fsy" + [] + ) +# 172 "..\..\absil\ilpars.fsy" + : 'instrs2)); +# 742 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'callConv)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : ILType ResolvedAtMethodSpecScope)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typSpec)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'methodName)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_actual_tyargs)) in + let _8 = (let data = parseState.GetInput(8) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigArgs0)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 178 "..\..\absil\ilpars.fsy" + let callee_class_typ : ILType = resolveCurrentMethodSpecScope _3 + let gscope = (if isILArrTy callee_class_typ then None else Some callee_class_typ.TypeSpec) + let argtys_n_varargs = resolveFormalMethodSpecScope gscope _8 + let (argtys,varargs) = decodeVarargs argtys_n_varargs + let minst = resolveCurrentMethodSpecScope _6 + let callee_retty = resolveFormalMethodSpecScope gscope _2 + (callee_class_typ, _1, _5, argtys, callee_retty, minst), varargs + ) +# 178 "..\..\absil\ilpars.fsy" + : 'methodSpecMaybeArrayMethod)); +# 764 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : NoArgInstr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 188 "..\..\absil\ilpars.fsy" + (_1 ()) + ) +# 188 "..\..\absil\ilpars.fsy" + : 'instr)); +# 775 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Int32Instr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 190 "..\..\absil\ilpars.fsy" + (_1 _2) + ) +# 190 "..\..\absil\ilpars.fsy" + : 'instr)); +# 787 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Int32Int32Instr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 192 "..\..\absil\ilpars.fsy" + (_1 (_2,_3)) + ) +# 192 "..\..\absil\ilpars.fsy" + : 'instr)); +# 800 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Int64Instr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int64)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 194 "..\..\absil\ilpars.fsy" + (_1 _2) + ) +# 194 "..\..\absil\ilpars.fsy" + : 'instr)); +# 812 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : DoubleInstr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'float64)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 196 "..\..\absil\ilpars.fsy" + (_1 (ILConst.R8 _2)) + ) +# 196 "..\..\absil\ilpars.fsy" + : 'instr)); +# 824 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : DoubleInstr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int64)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 198 "..\..\absil\ilpars.fsy" + (_1 (ILConst.R8 (float _2))) + ) +# 198 "..\..\absil\ilpars.fsy" + : 'instr)); +# 836 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : MethodSpecInstr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'methodSpecMaybeArrayMethod)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 200 "..\..\absil\ilpars.fsy" + + let ((encl_typ, _cc, nm, _argtys, _retty, _minst) as data),varargs = _2 + if isILArrTy encl_typ then + let (shape,ty) = destILArrTy encl_typ + match nm with + | "Get" -> I_ldelem_any(shape,ty) + | "Set" -> I_stelem_any(shape,ty) + | "Address" -> I_ldelema(NormalAddress,false,shape,ty) + | ".ctor" -> I_newarr(shape,ty) + | _ -> failwith "bad method on array type" + else + _1 (mkILMethSpecInTy data, varargs) + ) +# 200 "..\..\absil\ilpars.fsy" + : 'instr)); +# 859 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : TypeInstr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 213 "..\..\absil\ilpars.fsy" + _1 (resolveCurrentMethodSpecScope _2) + ) +# 213 "..\..\absil\ilpars.fsy" + : 'instr)); +# 871 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : IntTypeInstr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 215 "..\..\absil\ilpars.fsy" + _1 ( _2,resolveCurrentMethodSpecScope _3) + ) +# 215 "..\..\absil\ilpars.fsy" + : 'instr)); +# 884 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ValueTypeInstr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 217 "..\..\absil\ilpars.fsy" + _1 (resolveCurrentMethodSpecScope _2) + ) +# 217 "..\..\absil\ilpars.fsy" + : 'instr)); +# 896 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : TokenInstr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 219 "..\..\absil\ilpars.fsy" + (_1 (ILToken.ILType (resolveCurrentMethodSpecScope _2))) + ) +# 219 "..\..\absil\ilpars.fsy" + : 'instr)); +# 908 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 226 "..\..\absil\ilpars.fsy" + noMethodSpecScope [] + ) +# 226 "..\..\absil\ilpars.fsy" + : 'sigArgs0)); +# 918 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigArgs1)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 227 "..\..\absil\ilpars.fsy" + _1 + ) +# 227 "..\..\absil\ilpars.fsy" + : 'sigArgs0)); +# 929 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigArgs1a)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 231 "..\..\absil\ilpars.fsy" + ResolvedAtMethodSpecScope (fun c -> List.map (fun obj -> resolveMethodSpecScope obj c) (List.rev _1)) + ) +# 231 "..\..\absil\ilpars.fsy" + : 'sigArgs1)); +# 940 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigArg)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 235 "..\..\absil\ilpars.fsy" + [_1] + ) +# 235 "..\..\absil\ilpars.fsy" + : 'sigArgs1a)); +# 951 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigArgs1a)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigArg)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 237 "..\..\absil\ilpars.fsy" + _3:: _1 + ) +# 237 "..\..\absil\ilpars.fsy" + : 'sigArgs1a)); +# 963 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType ResolvedAtMethodSpecScope)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_id)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 241 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _1 (fun ty -> + noMethodSpecScope (SigArg(_2, ty))) + ) +# 241 "..\..\absil\ilpars.fsy" + : 'sigArg)); +# 976 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 246 "..\..\absil\ilpars.fsy" + None + ) +# 246 "..\..\absil\ilpars.fsy" + : 'opt_id)); +# 986 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'id)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 246 "..\..\absil\ilpars.fsy" + Some _1 + ) +# 246 "..\..\absil\ilpars.fsy" + : 'opt_id)); +# 997 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'id)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 254 "..\..\absil\ilpars.fsy" + _1 + ) +# 254 "..\..\absil\ilpars.fsy" + : string)); +# 1008 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 256 "..\..\absil\ilpars.fsy" + _1 + ) +# 256 "..\..\absil\ilpars.fsy" + : string)); +# 1019 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'id)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 258 "..\..\absil\ilpars.fsy" + _1 + "." + _3 + ) +# 258 "..\..\absil\ilpars.fsy" + : string)); +# 1031 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'slashedName)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 262 "..\..\absil\ilpars.fsy" + let (enc,nm) = _4 + let aref = findAssemblyRef _2 + ILScopeRef.Assembly aref, enc, nm + ) +# 262 "..\..\absil\ilpars.fsy" + : 'className)); +# 1045 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'slashedName)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 266 "..\..\absil\ilpars.fsy" + let enc, nm = _1 in (ILScopeRef.Local, enc, nm) + ) +# 266 "..\..\absil\ilpars.fsy" + : 'className)); +# 1056 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 270 "..\..\absil\ilpars.fsy" + ([],_1) + ) +# 270 "..\..\absil\ilpars.fsy" + : 'slashedName)); +# 1067 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'slashedName)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 272 "..\..\absil\ilpars.fsy" + let (enc,nm) = _3 in (_1::enc, nm) + ) +# 272 "..\..\absil\ilpars.fsy" + : 'slashedName)); +# 1079 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'className)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_actual_tyargs)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 276 "..\..\absil\ilpars.fsy" + let (a,b,c) = _1 + resolveMethodSpecScopeThen _2 (fun inst -> + noMethodSpecScope ( (mkILTySpec ( (mkILNestedTyRef (a,b,c)), inst)))) + ) +# 276 "..\..\absil\ilpars.fsy" + : 'typeNameInst)); +# 1093 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'className)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 283 "..\..\absil\ilpars.fsy" + let (a,b,c) = _1 + noMethodSpecScope ( (mkILTySpec ( (mkILNestedTyRef (a,b,c)), []))) + ) +# 283 "..\..\absil\ilpars.fsy" + : 'typeName)); +# 1105 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeName)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 289 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _1 (fun tref -> + noMethodSpecScope (mkILBoxedType tref)) + ) +# 289 "..\..\absil\ilpars.fsy" + : 'typSpec)); +# 1117 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType ResolvedAtMethodSpecScope)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 292 "..\..\absil\ilpars.fsy" + _1 + ) +# 292 "..\..\absil\ilpars.fsy" + : 'typSpec)); +# 1128 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : ILType ResolvedAtMethodSpecScope)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 294 "..\..\absil\ilpars.fsy" + _2 + ) +# 294 "..\..\absil\ilpars.fsy" + : 'typSpec)); +# 1139 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'callKind)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 299 "..\..\absil\ilpars.fsy" + Callconv (ILThisConvention.Instance,_2) + ) +# 299 "..\..\absil\ilpars.fsy" + : 'callConv)); +# 1150 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'callKind)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 301 "..\..\absil\ilpars.fsy" + Callconv (ILThisConvention.InstanceExplicit,_2) + ) +# 301 "..\..\absil\ilpars.fsy" + : 'callConv)); +# 1161 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'callKind)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 303 "..\..\absil\ilpars.fsy" + Callconv (ILThisConvention.Static,_1) + ) +# 303 "..\..\absil\ilpars.fsy" + : 'callConv)); +# 1172 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 307 "..\..\absil\ilpars.fsy" + ILArgConvention.Default + ) +# 307 "..\..\absil\ilpars.fsy" + : 'callKind)); +# 1182 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 309 "..\..\absil\ilpars.fsy" + ILArgConvention.Default + ) +# 309 "..\..\absil\ilpars.fsy" + : 'callKind)); +# 1192 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 311 "..\..\absil\ilpars.fsy" + ILArgConvention.VarArg + ) +# 311 "..\..\absil\ilpars.fsy" + : 'callKind)); +# 1202 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 320 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_String + ) +# 320 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1212 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 322 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_Object + ) +# 322 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1222 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeNameInst)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 324 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _2 (fun tspec -> + noMethodSpecScope (mkILBoxedType tspec)) + ) +# 324 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1234 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeNameInst)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 327 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _3 (fun tspec -> + noMethodSpecScope (ILType.Value tspec)) + ) +# 327 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1246 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeNameInst)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 330 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _2 (fun tspec -> + noMethodSpecScope (ILType.Value tspec)) + ) +# 330 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1258 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType ResolvedAtMethodSpecScope)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 333 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _1 (fun ty -> noMethodSpecScope (mkILArr1DTy ty)) + ) +# 333 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1269 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType ResolvedAtMethodSpecScope)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'bounds1)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 335 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _1 (fun ty -> noMethodSpecScope (mkILArrTy (ty,ILArrayShape _3))) + ) +# 335 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1281 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType ResolvedAtMethodSpecScope)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 337 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _1 (fun ty -> noMethodSpecScope (ILType.Byref ty)) + ) +# 337 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1292 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : ILType ResolvedAtMethodSpecScope)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 339 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _1 (fun ty -> noMethodSpecScope (ILType.Ptr ty)) + ) +# 339 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1303 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 341 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_char + ) +# 341 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1313 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 343 "..\..\absil\ilpars.fsy" + noMethodSpecScope ILType.Void + ) +# 343 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1323 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 345 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_bool + ) +# 345 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1333 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 347 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_int8 + ) +# 347 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1343 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 349 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_int16 + ) +# 349 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1353 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 351 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_int32 + ) +# 351 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1363 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 353 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_int64 + ) +# 353 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1373 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 355 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_float32 + ) +# 355 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1383 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 357 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_float64 + ) +# 357 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1393 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 359 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_uint8 + ) +# 359 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1403 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 361 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_uint16 + ) +# 361 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1413 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 363 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_uint32 + ) +# 363 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1423 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 365 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_uint64 + ) +# 365 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1433 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 367 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_uint8 + ) +# 367 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1443 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 369 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_uint16 + ) +# 369 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1453 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 371 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_uint32 + ) +# 371 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1463 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 373 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_uint64 + ) +# 373 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1473 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 375 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_IntPtr + ) +# 375 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1483 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 377 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_UIntPtr + ) +# 377 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1493 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 379 "..\..\absil\ilpars.fsy" + noMethodSpecScope (!parseILGlobals).typ_UIntPtr + ) +# 379 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1503 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 382 "..\..\absil\ilpars.fsy" + noMethodSpecScope (ILType.TypeVar (uint16 ( _2))) + ) +# 382 "..\..\absil\ilpars.fsy" + : ILType ResolvedAtMethodSpecScope)); +# 1514 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'bound)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 387 "..\..\absil\ilpars.fsy" + [_1] + ) +# 387 "..\..\absil\ilpars.fsy" + : 'bounds1)); +# 1525 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'bounds1)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'bound)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 389 "..\..\absil\ilpars.fsy" + _1 @ [_3] + ) +# 389 "..\..\absil\ilpars.fsy" + : 'bounds1)); +# 1537 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 393 "..\..\absil\ilpars.fsy" + (None, None) + ) +# 393 "..\..\absil\ilpars.fsy" + : 'bound)); +# 1547 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 395 "..\..\absil\ilpars.fsy" + (None, Some _1) + ) +# 395 "..\..\absil\ilpars.fsy" + : 'bound)); +# 1558 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 397 "..\..\absil\ilpars.fsy" + (Some _1, Some (_3 - _1 + 1)) + ) +# 397 "..\..\absil\ilpars.fsy" + : 'bound)); +# 1570 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 399 "..\..\absil\ilpars.fsy" + (Some _1, None) + ) +# 399 "..\..\absil\ilpars.fsy" + : 'bound)); +# 1581 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int32)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'int32)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 406 "..\..\absil\ilpars.fsy" + (Some _1, Some (_2 - _1 + 1)) + ) +# 406 "..\..\absil\ilpars.fsy" + : 'bound)); +# 1593 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int32)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 408 "..\..\absil\ilpars.fsy" + (Some _1, None) + ) +# 408 "..\..\absil\ilpars.fsy" + : 'bound)); +# 1604 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 412 "..\..\absil\ilpars.fsy" + _1 + ) +# 412 "..\..\absil\ilpars.fsy" + : 'id)); +# 1615 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 414 "..\..\absil\ilpars.fsy" + _1 + ) +# 414 "..\..\absil\ilpars.fsy" + : 'id)); +# 1626 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int64)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 418 "..\..\absil\ilpars.fsy" + int32 _1 + ) +# 418 "..\..\absil\ilpars.fsy" + : 'int32)); +# 1637 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int64)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 422 "..\..\absil\ilpars.fsy" + _1 + ) +# 422 "..\..\absil\ilpars.fsy" + : 'int64)); +# 1648 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : double)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 426 "..\..\absil\ilpars.fsy" + _1 + ) +# 426 "..\..\absil\ilpars.fsy" + : 'float64)); +# 1659 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'int64)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 428 "..\..\absil\ilpars.fsy" + System.BitConverter.Int64BitsToDouble _3 + ) +# 428 "..\..\absil\ilpars.fsy" + : 'float64)); +# 1670 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 432 "..\..\absil\ilpars.fsy" + noMethodSpecScope [] + ) +# 432 "..\..\absil\ilpars.fsy" + : 'opt_actual_tyargs)); +# 1680 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'actual_tyargs)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 434 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _1 (fun res -> + noMethodSpecScope res) + ) +# 434 "..\..\absil\ilpars.fsy" + : 'opt_actual_tyargs)); +# 1692 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'actualTypSpecs)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 439 "..\..\absil\ilpars.fsy" + _2 + ) +# 439 "..\..\absil\ilpars.fsy" + : 'actual_tyargs)); +# 1703 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 443 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _1 (fun res -> + noMethodSpecScope [ res]) + ) +# 443 "..\..\absil\ilpars.fsy" + : 'actualTypSpecs)); +# 1715 "ilpars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'actualTypSpecs)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 446 "..\..\absil\ilpars.fsy" + resolveMethodSpecScopeThen _1 (fun x -> + resolveMethodSpecScopeThen _3 (fun y -> + noMethodSpecScope (x @ [ y]))) + ) +# 446 "..\..\absil\ilpars.fsy" + : 'actualTypSpecs)); +|] +# 1730 "ilpars.fs" +let tables () : Internal.Utilities.Text.Parsing.Tables<_> = + { reductions= _fsyacc_reductions (); + endOfInputTag = _fsyacc_endOfInputTag; + tagOfToken = tagOfToken; + dataOfToken = _fsyacc_dataOfToken; + actionTableElements = _fsyacc_actionTableElements; + actionTableRowOffsets = _fsyacc_actionTableRowOffsets; + stateToProdIdxsTableElements = _fsyacc_stateToProdIdxsTableElements; + stateToProdIdxsTableRowOffsets = _fsyacc_stateToProdIdxsTableRowOffsets; + reductionSymbolCounts = _fsyacc_reductionSymbolCounts; + immediateActions = _fsyacc_immediateActions; + gotos = _fsyacc_gotos; + sparseGotoTableRowOffsets = _fsyacc_sparseGotoTableRowOffsets; + tagOfErrorTerminal = _fsyacc_tagOfErrorTerminal; + parseError = (fun (ctxt:Internal.Utilities.Text.Parsing.ParseErrorContext<_>) -> + match parse_error_rich with + | Some f -> f ctxt + | None -> parse_error ctxt.Message); + numTerminals = 68; + productionToNonTerminalTable = _fsyacc_productionToNonTerminalTable } +let engine lexer lexbuf startState = (tables ()).Interpret(lexer, lexbuf, startState) +let ilInstrs lexer lexbuf : ILInstr array = + Microsoft.FSharp.Core.Operators.unbox ((tables ()).Interpret(lexer, lexbuf, 0)) +let ilType lexer lexbuf : ILType = + Microsoft.FSharp.Core.Operators.unbox ((tables ()).Interpret(lexer, lexbuf, 2)) diff --git a/src/fsharp/FSharp.Compiler-proto/ilpars.fsi b/src/fsharp/FSharp.Compiler-proto/ilpars.fsi new file mode 100644 index 0000000..98890fe --- /dev/null +++ b/src/fsharp/FSharp.Compiler-proto/ilpars.fsi @@ -0,0 +1,183 @@ +// Signature file for parser generated by fsyacc +module internal Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiParser +open Microsoft.FSharp.Compiler.AbstractIL +type token = + | VOID + | VARARG + | VALUETYPE + | VALUE + | UNSIGNED + | UNMANAGED + | UINT8 + | UINT64 + | UINT32 + | UINT16 + | UINT + | STRING + | STAR + | SLASH + | RPAREN + | RBRACK + | PLUS + | OBJECT + | NATIVE + | METHOD + | LPAREN + | LESS + | LBRACK + | INT8 + | INT64 + | INT32 + | INT16 + | INT + | INSTANCE + | GREATER + | FLOAT64 + | FLOAT32 + | FIELD + | EXPLICIT + | EOF + | ELIPSES + | DOT + | DEFAULT + | DCOLON + | COMMA + | CLASS + | CHAR + | BYTEARRAY + | BOOL + | BANG + | AMP + | VAL_SQSTRING of (string) + | VAL_QSTRING of (string) + | VAL_DOTTEDNAME of (string) + | VAL_ID of (string) + | VAL_HEXBYTE of (int) + | INSTR_VALUETYPE of (ValueTypeInstr) + | INSTR_INT_TYPE of (IntTypeInstr) + | INSTR_TYPE of (TypeInstr) + | INSTR_TOK of (TokenInstr) + | INSTR_STRING of (StringInstr) + | INSTR_NONE of (NoArgInstr) + | INSTR_METHOD of (MethodSpecInstr) + | INSTR_R of (DoubleInstr) + | INSTR_I8 of (Int64Instr) + | INSTR_I32_I32 of (Int32Int32Instr) + | INSTR_I of (Int32Instr) + | VAL_FLOAT64 of (double) + | VAL_INT32_ELIPSES of (int32) + | VAL_INT64 of (int64) +type tokenId = + | TOKEN_VOID + | TOKEN_VARARG + | TOKEN_VALUETYPE + | TOKEN_VALUE + | TOKEN_UNSIGNED + | TOKEN_UNMANAGED + | TOKEN_UINT8 + | TOKEN_UINT64 + | TOKEN_UINT32 + | TOKEN_UINT16 + | TOKEN_UINT + | TOKEN_STRING + | TOKEN_STAR + | TOKEN_SLASH + | TOKEN_RPAREN + | TOKEN_RBRACK + | TOKEN_PLUS + | TOKEN_OBJECT + | TOKEN_NATIVE + | TOKEN_METHOD + | TOKEN_LPAREN + | TOKEN_LESS + | TOKEN_LBRACK + | TOKEN_INT8 + | TOKEN_INT64 + | TOKEN_INT32 + | TOKEN_INT16 + | TOKEN_INT + | TOKEN_INSTANCE + | TOKEN_GREATER + | TOKEN_FLOAT64 + | TOKEN_FLOAT32 + | TOKEN_FIELD + | TOKEN_EXPLICIT + | TOKEN_EOF + | TOKEN_ELIPSES + | TOKEN_DOT + | TOKEN_DEFAULT + | TOKEN_DCOLON + | TOKEN_COMMA + | TOKEN_CLASS + | TOKEN_CHAR + | TOKEN_BYTEARRAY + | TOKEN_BOOL + | TOKEN_BANG + | TOKEN_AMP + | TOKEN_VAL_SQSTRING + | TOKEN_VAL_QSTRING + | TOKEN_VAL_DOTTEDNAME + | TOKEN_VAL_ID + | TOKEN_VAL_HEXBYTE + | TOKEN_INSTR_VALUETYPE + | TOKEN_INSTR_INT_TYPE + | TOKEN_INSTR_TYPE + | TOKEN_INSTR_TOK + | TOKEN_INSTR_STRING + | TOKEN_INSTR_NONE + | TOKEN_INSTR_METHOD + | TOKEN_INSTR_R + | TOKEN_INSTR_I8 + | TOKEN_INSTR_I32_I32 + | TOKEN_INSTR_I + | TOKEN_VAL_FLOAT64 + | TOKEN_VAL_INT32_ELIPSES + | TOKEN_VAL_INT64 + | TOKEN_end_of_input + | TOKEN_error +type nonTerminalId = + | NONTERM__startilInstrs + | NONTERM__startilType + | NONTERM_ilType + | NONTERM_ilInstrs + | NONTERM_compQstring + | NONTERM_methodName + | NONTERM_instrs2 + | NONTERM_methodSpecMaybeArrayMethod + | NONTERM_instr + | NONTERM_sigArgs0 + | NONTERM_sigArgs1 + | NONTERM_sigArgs1a + | NONTERM_sigArg + | NONTERM_opt_id + | NONTERM_name1 + | NONTERM_className + | NONTERM_slashedName + | NONTERM_typeNameInst + | NONTERM_typeName + | NONTERM_typSpec + | NONTERM_callConv + | NONTERM_callKind + | NONTERM_typ + | NONTERM_bounds1 + | NONTERM_bound + | NONTERM_id + | NONTERM_int32 + | NONTERM_int64 + | NONTERM_float64 + | NONTERM_opt_actual_tyargs + | NONTERM_actual_tyargs + | NONTERM_actualTypSpecs +/// This function maps integers indexes to symbolic token ids +val tagOfToken: token -> int + +/// This function maps integers indexes to symbolic token ids +val tokenTagToTokenId: int -> tokenId + +/// This function maps production indexes returned in syntax errors to strings representing the non terminal that would be produced by that production +val prodIdxToNonTerminal: int -> nonTerminalId + +/// This function gets the name of a token as a string +val token_to_string: token -> string +val ilInstrs : (Internal.Utilities.Text.Lexing.LexBuffer<'cty> -> token) -> Internal.Utilities.Text.Lexing.LexBuffer<'cty> -> (ILInstr array) +val ilType : (Internal.Utilities.Text.Lexing.LexBuffer<'cty> -> token) -> Internal.Utilities.Text.Lexing.LexBuffer<'cty> -> (ILType) diff --git a/src/fsharp/FSharp.Compiler-proto/lex.fs b/src/fsharp/FSharp.Compiler-proto/lex.fs new file mode 100644 index 0000000..8363e3c --- /dev/null +++ b/src/fsharp/FSharp.Compiler-proto/lex.fs @@ -0,0 +1,2986 @@ +# 1 "..\lex.fsl" + + +module internal Microsoft.FSharp.Compiler.Lexer + +//---------------------------------------------------------------------------- +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +//------------------------------------------------------------------------ +// The Lexer. Some of the complication arises from the fact it is +// reused by the Visual Studio mode to do partial lexing reporting +// whitespace etc. +//----------------------------------------------------------------------- + +open System +open System.Globalization +open System.Text +open Internal.Utilities + +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library +open Microsoft.FSharp.Compiler + +open Microsoft.FSharp.Compiler.Range +open Microsoft.FSharp.Compiler.Ast +open Microsoft.FSharp.Compiler.ErrorLogger +open Microsoft.FSharp.Compiler.Parser +open Microsoft.FSharp.Compiler.Lexhelp +open Microsoft.FSharp.Compiler.Lib +open Internal.Utilities.Text.Lexing + +let lexeme (lexbuf : UnicodeLexing.Lexbuf) = UnicodeLexing.Lexbuf.LexemeString lexbuf + +let trimBoth (s:string) n m = s.Substring(n, s.Length - (n+m)) +let lexemeTrimBoth lexbuf n m = trimBoth (lexeme lexbuf) n m +let lexemeTrimRight lexbuf n = lexemeTrimBoth lexbuf 0 n +let lexemeTrimLeft lexbuf n = lexemeTrimBoth lexbuf n 0 + +let fail args (lexbuf:UnicodeLexing.Lexbuf) msg dflt = + let m = lexbuf.LexemeRange + args.errorLogger.ErrorR(Error(msg,m)); + dflt + +//-------------------------- +// Integer parsing + +// Parsing integers is common in bootstrap runs (parsing +// the parser tables, no doubt). So this is an optimized +// version of the F# core library parsing code with the call to "Trim" +// removed, which appears in profiling runs as a small but significant cost. + +let getSign32 (s:string) (p:byref) l = + if (l >= p + 1 && s.[p] = '-') + then p <- p + 1; -1 + else 1 + +let isOXB c = +#if FX_NO_TO_LOWER_INVARIANT + let c = Char.ToLower c +#else + let c = Char.ToLowerInvariant c +#endif + c = 'x' || c = 'o' || c = 'b' + +let is0OXB (s:string) p l = + l >= p + 2 && s.[p] = '0' && isOXB s.[p+1] +let get0OXB (s:string) (p:byref) l = + if is0OXB s p l +#if FX_NO_TO_LOWER_INVARIANT + then let r = Char.ToLower s.[p+1] in p <- p + 2; r +#else + then let r = Char.ToLowerInvariant s.[p+1] in p <- p + 2; r +#endif + else 'd' + +let formatError() = raise (new System.FormatException(SR.GetString("bad format string"))) + +let parseBinaryUInt64 (s:string) p l = + let rec parse n acc = if n < l then parse (n+1) (acc * 2UL + (match s.[n] with '0' -> 0UL | '1' -> 1UL | _ -> formatError())) else acc + parse p 0UL + +let parseOctalUInt64 (s:string) p l = + let rec parse n acc = if n < l then parse (n+1) (acc * 8UL + (let c = s.[n] in if c >= '0' && c <= '7' then Convert.ToUInt64 c - Convert.ToUInt64 '0' else formatError())) else acc + parse p 0UL + +let parseInt32 (s:string) = + let l = s.Length + let mutable p = 0 + let sign = getSign32 s &p l + let specifier = get0OXB s &p l + match Char.ToLower(specifier,CultureInfo.InvariantCulture) with + | 'x' -> sign * (int32 (Convert.ToUInt32(UInt64.Parse(s.Substring(p), NumberStyles.AllowHexSpecifier,CultureInfo.InvariantCulture)))) + | 'b' -> sign * (int32 (Convert.ToUInt32(parseBinaryUInt64 s p l))) + | 'o' -> sign * (int32 (Convert.ToUInt32(parseOctalUInt64 s p l))) + | _ -> Int32.Parse(s, NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture) + +let lexemeTrimRightToInt32 args lexbuf n = + try parseInt32 (lexemeTrimRight lexbuf n) + with _ -> fail args lexbuf (FSComp.SR.lexOutsideIntegerRange()) 0 + +//-------------------------- +// Checks + +let checkExprOp (lexbuf:UnicodeLexing.Lexbuf) = + if String.contains (lexeme lexbuf) ':' then + deprecatedWithError (FSComp.SR.lexCharNotAllowedInOperatorNames(":")) lexbuf.LexemeRange; + if String.contains (lexeme lexbuf) '$' then + deprecatedWithError (FSComp.SR.lexCharNotAllowedInOperatorNames("$")) lexbuf.LexemeRange + +let unexpectedChar lexbuf = + LEX_FAILURE (FSComp.SR.lexUnexpectedChar(lexeme lexbuf)) + +let startString args (lexbuf: UnicodeLexing.Lexbuf) = + let buf = ByteBuffer.Create 100 + let m = lexbuf.LexemeRange + let startp = lexbuf.StartPos + let fin = (fun _m2 b s -> + // Adjust the start-of-token mark back to the true start of the token + lexbuf.StartPos <- startp; + if b then + if Lexhelp.stringBufferIsBytes buf then + BYTEARRAY (Lexhelp.stringBufferAsBytes buf) + else ( + fail args lexbuf (FSComp.SR.lexByteArrayCannotEncode()) (); + BYTEARRAY (Lexhelp.stringBufferAsBytes buf) + ) + else + STRING (System.Text.Encoding.Unicode.GetString(s,0,s.Length))) + buf,fin,m + +// Utility functions for processing XML documentation + +let trySaveXmlDoc lexbuf (buff:option) = + match buff with + | None -> () + | Some sb -> LexbufLocalXmlDocStore.SaveXmlDocLine (lexbuf, sb.ToString(), posOfLexPosition lexbuf.StartPos) + +let tryAppendXmlDoc (buff:option) (s:string) = + match buff with + | None -> () + | Some sb -> ignore(sb.Append s) + +// Utilities for parsing #if/#else/#endif + +let shouldStartLine args lexbuf (m:range) err tok = + if (m.StartColumn <> 0) then fail args lexbuf err tok + else tok + +let extractIdentFromHashIf (lexed:string) = + // Skip the '#if' token, then trim whitespace, then find the end of the identifier + let lexed = lexed.Trim() + let trimIf = lexed.Substring(3).Trim() + let identEnd = trimIf.IndexOfAny([| ' '; '\t'; '/' |]) + let identEnd = (if identEnd = -1 then trimIf.Length else identEnd) + trimIf.Substring(0, identEnd) + +# 166 "lex.fs" +let trans : uint16[] array = + [| + (* State 0 *) + [| 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 2us; 5us; 5us; 3us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 1us; 5us; 5us; 5us; 5us; 5us; 4us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 6us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 7us; |]; + (* State 1 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 2 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 3 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 30us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 4 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 10us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 5 *) + [| 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; |]; + (* State 6 *) + [| 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 9us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; |]; + (* State 7 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 8 *) + [| 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; |]; + (* State 9 *) + [| 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 65535us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 65535us; |]; + (* State 10 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 11us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 11 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 12us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 12 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 13us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 13 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 14us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 14 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 15us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 15 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 16 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 17us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 18us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 17 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 25us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 18 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 19us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 19 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 20us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 20 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 21us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 21 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 22us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 22 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 23us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 23 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 24us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 24 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 25 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 26us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 26 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 27us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 27 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 28us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 28 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 29us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 29 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 30 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 31 *) + [| 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 36us; 37us; 41us; 41us; 38us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 36us; 41us; 32us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 35us; 34us; 34us; 34us; 34us; 34us; 34us; 34us; 34us; 34us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 41us; 41us; 41us; 41us; 33us; 41us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 41us; 41us; 41us; 41us; 41us; 33us; 33us; 33us; 33us; 33us; 41us; 41us; 41us; 34us; 33us; 41us; 41us; 41us; 41us; 41us; 41us; 40us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 41us; 39us; |]; + (* State 32 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 55us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 33 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 54us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 65535us; 65535us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 34 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 35 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 47us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 46us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 45us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 47us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 46us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 45us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 36 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 43us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 43us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 37 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 38 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 42us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 39 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 40 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 41us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 41 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 42 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 43 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 43us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 43us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 44 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 44us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 45 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 52us; 52us; 52us; 52us; 52us; 52us; 52us; 52us; 52us; 52us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 52us; 52us; 52us; 52us; 52us; 52us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 52us; 52us; 52us; 52us; 52us; 52us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 46 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 50us; 50us; 50us; 50us; 50us; 50us; 50us; 50us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 47 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 48us; 48us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 48 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 49us; 49us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 49 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 49us; 49us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 50 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 51us; 51us; 51us; 51us; 51us; 51us; 51us; 51us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 51 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 51us; 51us; 51us; 51us; 51us; 51us; 51us; 51us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 52 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 53us; 53us; 53us; 53us; 53us; 53us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 53us; 53us; 53us; 53us; 53us; 53us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 53 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 53us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 53us; 53us; 53us; 53us; 53us; 53us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 53us; 53us; 53us; 53us; 53us; 53us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 54 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 54us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 54us; 54us; 54us; 54us; 54us; 54us; 65535us; 54us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 54us; 65535us; 65535us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 55 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 56us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 56 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 57 *) + [| 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 62us; 63us; 67us; 67us; 64us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 62us; 67us; 58us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 61us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 60us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 67us; 67us; 67us; 67us; 59us; 67us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 59us; 67us; 67us; 67us; 67us; 67us; 59us; 59us; 59us; 59us; 59us; 67us; 67us; 67us; 60us; 59us; 67us; 67us; 67us; 67us; 67us; 67us; 66us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 67us; 65us; |]; + (* State 58 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 81us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 59 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 80us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 65535us; 65535us; 65535us; 65535us; 80us; 65535us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 65535us; 65535us; 65535us; 65535us; 65535us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 65535us; 80us; 80us; 65535us; 65535us; 65535us; 65535us; 65535us; 80us; 65535us; 65535us; 80us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 60 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 70us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 61 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 73us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 72us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 71us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 73us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 72us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 71us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 70us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 62 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 69us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 69us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 63 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 64 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 68us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 65 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 66 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 67us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 67 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 68 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 69 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 69us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 69us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 70 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 70us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 70us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 71 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 78us; 78us; 78us; 78us; 78us; 78us; 78us; 78us; 78us; 78us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 78us; 78us; 78us; 78us; 78us; 78us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 78us; 78us; 78us; 78us; 78us; 78us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 72 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 76us; 76us; 76us; 76us; 76us; 76us; 76us; 76us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 73 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 74us; 74us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 74 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 75us; 75us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 75 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 75us; 75us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 76 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 77us; 77us; 77us; 77us; 77us; 77us; 77us; 77us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 77 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 77us; 77us; 77us; 77us; 77us; 77us; 77us; 77us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 78 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 79us; 79us; 79us; 79us; 79us; 79us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 79us; 79us; 79us; 79us; 79us; 79us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 79 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 79us; 79us; 79us; 79us; 79us; 79us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 79us; 79us; 79us; 79us; 79us; 79us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 80 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 80us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 65535us; 65535us; 65535us; 65535us; 80us; 65535us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 65535us; 65535us; 65535us; 65535us; 65535us; 80us; 80us; 80us; 80us; 80us; 80us; 80us; 65535us; 80us; 80us; 65535us; 65535us; 65535us; 65535us; 65535us; 80us; 65535us; 65535us; 80us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 81 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 82 *) + [| 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 87us; 89us; 93us; 93us; 90us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 87us; 93us; 88us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 86us; 85us; 85us; 85us; 85us; 85us; 85us; 85us; 85us; 85us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 93us; 83us; 93us; 93us; 84us; 93us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 84us; 93us; 93us; 93us; 93us; 93us; 84us; 84us; 84us; 84us; 84us; 93us; 93us; 93us; 85us; 84us; 93us; 93us; 93us; 93us; 93us; 93us; 92us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 93us; 91us; |]; + (* State 83 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 107us; 65535us; 65535us; 108us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 65535us; 65535us; 65535us; 65535us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 110us; 110us; 110us; 110us; 110us; 110us; 110us; 110us; 110us; 110us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 113us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 65535us; 65535us; 65535us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 65535us; 65535us; 65535us; 109us; 65535us; 109us; 112us; 109us; 65535us; 111us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 110us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 84 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 106us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 65535us; 65535us; 65535us; 65535us; 106us; 65535us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 65535us; 65535us; 65535us; 65535us; 65535us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 65535us; 106us; 106us; 65535us; 65535us; 65535us; 65535us; 65535us; 106us; 65535us; 65535us; 106us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 85 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 86 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 99us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 98us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 97us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 99us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 98us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 97us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 87 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 95us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 95us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 88 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 89 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 90 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 94us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 91 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 92 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 93us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 93 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 94 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 95 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 95us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 95us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 96 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 96us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 97 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 104us; 104us; 104us; 104us; 104us; 104us; 104us; 104us; 104us; 104us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 104us; 104us; 104us; 104us; 104us; 104us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 104us; 104us; 104us; 104us; 104us; 104us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 98 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 102us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 99 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 100us; 100us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 100 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 101us; 101us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 101 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 101us; 101us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 102 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 103us; 103us; 103us; 103us; 103us; 103us; 103us; 103us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 103 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 103us; 103us; 103us; 103us; 103us; 103us; 103us; 103us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 104 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 105us; 105us; 105us; 105us; 105us; 105us; 105us; 105us; 105us; 105us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 105us; 105us; 105us; 105us; 105us; 105us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 105us; 105us; 105us; 105us; 105us; 105us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 105 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 105us; 105us; 105us; 105us; 105us; 105us; 105us; 105us; 105us; 105us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 105us; 105us; 105us; 105us; 105us; 105us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 105us; 105us; 105us; 105us; 105us; 105us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 106 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 106us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 65535us; 65535us; 65535us; 65535us; 106us; 65535us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 65535us; 65535us; 65535us; 65535us; 65535us; 106us; 106us; 106us; 106us; 106us; 106us; 106us; 65535us; 106us; 106us; 65535us; 65535us; 65535us; 65535us; 65535us; 106us; 65535us; 65535us; 106us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 107 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 126us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 126us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 108 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 107us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 109 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 110 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 125us; 125us; 125us; 125us; 125us; 125us; 125us; 125us; 125us; 125us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 125us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 111 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 124us; 124us; 124us; 124us; 124us; 124us; 124us; 124us; 124us; 124us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 124us; 124us; 124us; 124us; 124us; 124us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 124us; 124us; 124us; 124us; 124us; 124us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 112 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 121us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 121us; 121us; 121us; 121us; 121us; 121us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 121us; 121us; 121us; 121us; 121us; 121us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 113 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 114us; 114us; 114us; 114us; 114us; 114us; 114us; 114us; 114us; 114us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 114us; 114us; 114us; 114us; 114us; 114us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 114us; 114us; 114us; 114us; 114us; 114us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 114 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 115us; 115us; 115us; 115us; 115us; 115us; 115us; 115us; 115us; 115us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 115us; 115us; 115us; 115us; 115us; 115us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 115us; 115us; 115us; 115us; 115us; 115us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 115 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 116us; 116us; 116us; 116us; 116us; 116us; 116us; 116us; 116us; 116us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 116us; 116us; 116us; 116us; 116us; 116us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 116us; 116us; 116us; 116us; 116us; 116us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 116 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 117us; 117us; 117us; 117us; 117us; 117us; 117us; 117us; 117us; 117us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 117us; 117us; 117us; 117us; 117us; 117us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 117us; 117us; 117us; 117us; 117us; 117us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 117 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 118us; 118us; 118us; 118us; 118us; 118us; 118us; 118us; 118us; 118us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 118us; 118us; 118us; 118us; 118us; 118us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 118us; 118us; 118us; 118us; 118us; 118us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 118 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 119us; 119us; 119us; 119us; 119us; 119us; 119us; 119us; 119us; 119us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 119us; 119us; 119us; 119us; 119us; 119us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 119us; 119us; 119us; 119us; 119us; 119us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 119 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 120us; 120us; 120us; 120us; 120us; 120us; 120us; 120us; 120us; 120us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 120us; 120us; 120us; 120us; 120us; 120us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 120us; 120us; 120us; 120us; 120us; 120us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 120 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 109us; 109us; 109us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 109us; 109us; 109us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 121 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 122us; 122us; 122us; 122us; 122us; 122us; 122us; 122us; 122us; 122us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 122us; 122us; 122us; 122us; 122us; 122us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 122us; 122us; 122us; 122us; 122us; 122us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 122 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 123us; 123us; 123us; 123us; 123us; 123us; 123us; 123us; 123us; 123us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 123us; 123us; 123us; 123us; 123us; 123us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 123us; 123us; 123us; 123us; 123us; 123us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 123 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 109us; 109us; 109us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 109us; 109us; 109us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 124 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 109us; 109us; 109us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 109us; 109us; 109us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 125 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 109us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 126 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 126us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 126us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 127 *) + [| 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 135us; 132us; 136us; 136us; 133us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 135us; 136us; 129us; 136us; 136us; 136us; 136us; 128us; 131us; 139us; 134us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 130us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 137us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 136us; 138us; |]; + (* State 128 *) + [| 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 65535us; 65535us; 65535us; 150us; 150us; 65535us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 151us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 150us; 65535us; |]; + (* State 129 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 148us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 130 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 147us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 131 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 145us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 132 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 133 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 144us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 134 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 143us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 135 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 142us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 142us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 136 *) + [| 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 65535us; 140us; 140us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 140us; 65535us; 140us; 140us; 140us; 140us; 65535us; 65535us; 65535us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; |]; + (* State 137 *) + [| 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 65535us; 140us; 140us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 140us; 65535us; 140us; 140us; 140us; 140us; 65535us; 65535us; 65535us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 141us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; |]; + (* State 138 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 139 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 140 *) + [| 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 65535us; 140us; 140us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 140us; 65535us; 140us; 140us; 140us; 140us; 65535us; 65535us; 65535us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; |]; + (* State 141 *) + [| 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 65535us; 140us; 140us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 140us; 65535us; 140us; 140us; 140us; 140us; 65535us; 65535us; 65535us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 140us; 65535us; |]; + (* State 142 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 142us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 142us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 143 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 144 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 145 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 146us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 146 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 147 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 148 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 149us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 149 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 150 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 152us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 151 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 150us; 65535us; 65535us; 65535us; 65535us; 150us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 150us; 65535us; 65535us; 65535us; 65535us; 150us; 150us; 65535us; 65535us; 65535us; 150us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 150us; 65535us; 65535us; 65535us; 150us; 65535us; 150us; 65535us; 150us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 152 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 153 *) + [| 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 158us; 154us; 157us; 157us; 155us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 160us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 159us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 156us; |]; + (* State 154 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 155 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 165us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 156 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 157 *) + [| 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; 162us; 162us; 65535us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; |]; + (* State 158 *) + [| 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 164us; 65535us; 162us; 162us; 65535us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 161us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; |]; + (* State 159 *) + [| 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; 162us; 162us; 65535us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 163us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; |]; + (* State 160 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 161us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 161us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 161 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 161us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 161us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 162 *) + [| 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; 162us; 162us; 65535us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; |]; + (* State 163 *) + [| 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; 162us; 162us; 65535us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; |]; + (* State 164 *) + [| 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 164us; 65535us; 162us; 162us; 65535us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 161us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 162us; 65535us; |]; + (* State 165 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 166 *) + [| 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 173us; 168us; 176us; 176us; 169us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 173us; 176us; 167us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 172us; 171us; 171us; 171us; 171us; 171us; 171us; 171us; 171us; 171us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 176us; 176us; 176us; 176us; 170us; 176us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 176us; 176us; 176us; 176us; 176us; 170us; 170us; 170us; 170us; 170us; 176us; 176us; 176us; 171us; 170us; 176us; 176us; 176us; 176us; 176us; 176us; 175us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 176us; 174us; |]; + (* State 167 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 190us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 168 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 169 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 189us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 170 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 188us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 65535us; 65535us; 65535us; 65535us; 188us; 65535us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 65535us; 65535us; 65535us; 65535us; 65535us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 65535us; 188us; 188us; 65535us; 65535us; 65535us; 65535us; 65535us; 188us; 65535us; 65535us; 188us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 171 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 178us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 172 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 181us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 180us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 179us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 181us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 180us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 179us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 178us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 173 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 177us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 177us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 174 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 175 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 176us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 176 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 177 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 177us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 177us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 178 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 178us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 178us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 179 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 186us; 186us; 186us; 186us; 186us; 186us; 186us; 186us; 186us; 186us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 186us; 186us; 186us; 186us; 186us; 186us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 186us; 186us; 186us; 186us; 186us; 186us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 180 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 184us; 184us; 184us; 184us; 184us; 184us; 184us; 184us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 181 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 182us; 182us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 182 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 183us; 183us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 183 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 183us; 183us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 184 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 185us; 185us; 185us; 185us; 185us; 185us; 185us; 185us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 185 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 185us; 185us; 185us; 185us; 185us; 185us; 185us; 185us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 186 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 187us; 187us; 187us; 187us; 187us; 187us; 187us; 187us; 187us; 187us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 187us; 187us; 187us; 187us; 187us; 187us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 187us; 187us; 187us; 187us; 187us; 187us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 187 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 187us; 187us; 187us; 187us; 187us; 187us; 187us; 187us; 187us; 187us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 187us; 187us; 187us; 187us; 187us; 187us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 187us; 187us; 187us; 187us; 187us; 187us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 188 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 188us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 65535us; 65535us; 65535us; 65535us; 188us; 65535us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 65535us; 65535us; 65535us; 65535us; 65535us; 188us; 188us; 188us; 188us; 188us; 188us; 188us; 65535us; 188us; 188us; 65535us; 65535us; 65535us; 65535us; 65535us; 188us; 65535us; 65535us; 188us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 189 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 190 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 191us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 191 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 192 *) + [| 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 199us; 194us; 202us; 202us; 195us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 199us; 202us; 193us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 198us; 197us; 197us; 197us; 197us; 197us; 197us; 197us; 197us; 197us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 202us; 202us; 202us; 202us; 196us; 202us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 196us; 202us; 202us; 202us; 202us; 202us; 196us; 196us; 196us; 196us; 196us; 202us; 202us; 202us; 197us; 196us; 202us; 202us; 202us; 202us; 202us; 202us; 201us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 202us; 200us; |]; + (* State 193 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 216us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 217us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 194 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 195 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 215us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 196 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 214us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 65535us; 65535us; 65535us; 65535us; 214us; 65535us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 65535us; 65535us; 65535us; 65535us; 65535us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 65535us; 214us; 214us; 65535us; 65535us; 65535us; 65535us; 65535us; 214us; 65535us; 65535us; 214us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 197 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 204us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 198 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 207us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 206us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 205us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 207us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 206us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 205us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 204us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 199 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 203us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 203us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 200 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 201 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 202us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 202 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 203 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 203us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 203us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 204 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 204us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 204us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 205 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 212us; 212us; 212us; 212us; 212us; 212us; 212us; 212us; 212us; 212us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 212us; 212us; 212us; 212us; 212us; 212us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 212us; 212us; 212us; 212us; 212us; 212us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 206 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 210us; 210us; 210us; 210us; 210us; 210us; 210us; 210us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 207 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 208us; 208us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 208 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 209us; 209us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 209 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 209us; 209us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 210 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 211us; 211us; 211us; 211us; 211us; 211us; 211us; 211us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 211 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 211us; 211us; 211us; 211us; 211us; 211us; 211us; 211us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 212 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 213us; 213us; 213us; 213us; 213us; 213us; 213us; 213us; 213us; 213us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 213us; 213us; 213us; 213us; 213us; 213us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 213us; 213us; 213us; 213us; 213us; 213us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 213 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 213us; 213us; 213us; 213us; 213us; 213us; 213us; 213us; 213us; 213us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 213us; 213us; 213us; 213us; 213us; 213us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 213us; 213us; 213us; 213us; 213us; 213us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 214 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 214us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 65535us; 65535us; 65535us; 65535us; 214us; 65535us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 65535us; 65535us; 65535us; 65535us; 65535us; 214us; 214us; 214us; 214us; 214us; 214us; 214us; 65535us; 214us; 214us; 65535us; 65535us; 65535us; 65535us; 65535us; 214us; 65535us; 65535us; 214us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 215 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 216 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 217 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 218 *) + [| 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 226us; 221us; 229us; 229us; 222us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 226us; 229us; 220us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 225us; 224us; 224us; 224us; 224us; 224us; 224us; 224us; 224us; 224us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 229us; 219us; 229us; 229us; 223us; 229us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 223us; 229us; 229us; 229us; 229us; 229us; 223us; 223us; 223us; 223us; 223us; 229us; 229us; 229us; 224us; 223us; 229us; 229us; 229us; 229us; 229us; 229us; 228us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 229us; 227us; |]; + (* State 219 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 244us; 65535us; 65535us; 245us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 246us; 65535us; 65535us; 65535us; 65535us; 246us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 247us; 247us; 247us; 247us; 247us; 247us; 247us; 247us; 247us; 247us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 250us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 246us; 65535us; 65535us; 65535us; 65535us; 246us; 246us; 65535us; 65535us; 65535us; 246us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 246us; 65535us; 65535us; 65535us; 246us; 65535us; 246us; 249us; 246us; 65535us; 248us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 247us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 220 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 243us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 221 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 222 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 242us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 223 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 241us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 65535us; 65535us; 65535us; 65535us; 241us; 65535us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 65535us; 65535us; 65535us; 65535us; 65535us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 65535us; 241us; 241us; 65535us; 65535us; 65535us; 65535us; 65535us; 241us; 65535us; 65535us; 241us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 224 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 231us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 225 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 234us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 233us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 232us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 234us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 233us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 232us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 231us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 226 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 230us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 230us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 227 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 228 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 229us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 229 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 230 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 230us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 230us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 231 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 231us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 231us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 232 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 239us; 239us; 239us; 239us; 239us; 239us; 239us; 239us; 239us; 239us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 239us; 239us; 239us; 239us; 239us; 239us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 239us; 239us; 239us; 239us; 239us; 239us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 233 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 237us; 237us; 237us; 237us; 237us; 237us; 237us; 237us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 234 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 235us; 235us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 235 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 236us; 236us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 236 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 236us; 236us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 237 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 238us; 238us; 238us; 238us; 238us; 238us; 238us; 238us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 238 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 238us; 238us; 238us; 238us; 238us; 238us; 238us; 238us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 239 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 240us; 240us; 240us; 240us; 240us; 240us; 240us; 240us; 240us; 240us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 240us; 240us; 240us; 240us; 240us; 240us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 240us; 240us; 240us; 240us; 240us; 240us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 240 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 240us; 240us; 240us; 240us; 240us; 240us; 240us; 240us; 240us; 240us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 240us; 240us; 240us; 240us; 240us; 240us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 240us; 240us; 240us; 240us; 240us; 240us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 241 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 241us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 65535us; 65535us; 65535us; 65535us; 241us; 65535us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 65535us; 65535us; 65535us; 65535us; 65535us; 241us; 241us; 241us; 241us; 241us; 241us; 241us; 65535us; 241us; 241us; 65535us; 65535us; 65535us; 65535us; 65535us; 241us; 65535us; 65535us; 241us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 242 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 243 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 244 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 267us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 267us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 245 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 244us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 246 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 247 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 265us; 265us; 265us; 265us; 265us; 265us; 265us; 265us; 265us; 265us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 265us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 248 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 263us; 263us; 263us; 263us; 263us; 263us; 263us; 263us; 263us; 263us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 263us; 263us; 263us; 263us; 263us; 263us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 263us; 263us; 263us; 263us; 263us; 263us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 249 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 259us; 259us; 259us; 259us; 259us; 259us; 259us; 259us; 259us; 259us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 259us; 259us; 259us; 259us; 259us; 259us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 259us; 259us; 259us; 259us; 259us; 259us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 250 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 251us; 251us; 251us; 251us; 251us; 251us; 251us; 251us; 251us; 251us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 251us; 251us; 251us; 251us; 251us; 251us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 251us; 251us; 251us; 251us; 251us; 251us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 251 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 252us; 252us; 252us; 252us; 252us; 252us; 252us; 252us; 252us; 252us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 252us; 252us; 252us; 252us; 252us; 252us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 252us; 252us; 252us; 252us; 252us; 252us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 252 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 253us; 253us; 253us; 253us; 253us; 253us; 253us; 253us; 253us; 253us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 253us; 253us; 253us; 253us; 253us; 253us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 253us; 253us; 253us; 253us; 253us; 253us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 253 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 254us; 254us; 254us; 254us; 254us; 254us; 254us; 254us; 254us; 254us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 254us; 254us; 254us; 254us; 254us; 254us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 254us; 254us; 254us; 254us; 254us; 254us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 254 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 255us; 255us; 255us; 255us; 255us; 255us; 255us; 255us; 255us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 255us; 255us; 255us; 255us; 255us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 255us; 255us; 255us; 255us; 255us; 255us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 255 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 256us; 256us; 256us; 256us; 256us; 256us; 256us; 256us; 256us; 256us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 256us; 256us; 256us; 256us; 256us; 256us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 256us; 256us; 256us; 256us; 256us; 256us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 256 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 257us; 257us; 257us; 257us; 257us; 257us; 257us; 257us; 257us; 257us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 257us; 257us; 257us; 257us; 257us; 257us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 257us; 257us; 257us; 257us; 257us; 257us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 257 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 258us; 258us; 258us; 258us; 258us; 258us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 258us; 258us; 258us; 258us; 258us; 258us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 258 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 259 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 260us; 260us; 260us; 260us; 260us; 260us; 260us; 260us; 260us; 260us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 260us; 260us; 260us; 260us; 260us; 260us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 260us; 260us; 260us; 260us; 260us; 260us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 260 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 261us; 261us; 261us; 261us; 261us; 261us; 261us; 261us; 261us; 261us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 261us; 261us; 261us; 261us; 261us; 261us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 261us; 261us; 261us; 261us; 261us; 261us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 261 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 262us; 262us; 262us; 262us; 262us; 262us; 262us; 262us; 262us; 262us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 262us; 262us; 262us; 262us; 262us; 262us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 262us; 262us; 262us; 262us; 262us; 262us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 262 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 263 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 264us; 264us; 264us; 264us; 264us; 264us; 264us; 264us; 264us; 264us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 264us; 264us; 264us; 264us; 264us; 264us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 264us; 264us; 264us; 264us; 264us; 264us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 264 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 265 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 266us; 266us; 266us; 266us; 266us; 266us; 266us; 266us; 266us; 266us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 266us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 266 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 267 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 267us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 267us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 268 *) + [| 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 269us; 272us; 272us; 270us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 272us; 271us; |]; + (* State 269 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 270 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 274us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 271 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 272 *) + [| 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 65535us; 273us; 273us; 65535us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 65535us; |]; + (* State 273 *) + [| 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 65535us; 273us; 273us; 65535us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 273us; 65535us; |]; + (* State 274 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 275 *) + [| 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 278us; 279us; 281us; 281us; 280us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 277us; 281us; 281us; 276us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 282us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 281us; 283us; |]; + (* State 276 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 317us; 284us; 284us; 284us; 316us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 277 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 287us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 287us; 65535us; 65535us; 289us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 278 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 288us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 287us; 284us; 284us; 286us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 279 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 280 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 285us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 281 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 282 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 283 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 284 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 285 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 286 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 317us; 284us; 284us; 284us; 316us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 287 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 287us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 287us; 65535us; 65535us; 289us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 288 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 288us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 287us; 284us; 284us; 286us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 289 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 291us; 65535us; 65535us; 65535us; 290us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 290 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 307us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 291 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 292us; 65535us; 293us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 292 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 301us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 293 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 294us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 294 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 295us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 295 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 296us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 296 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 298us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 298us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 297us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 297 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 299us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 298 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 298us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 298us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 297us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 299 *) + [| 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 65535us; 300us; 300us; 65535us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 65535us; |]; + (* State 300 *) + [| 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 65535us; 300us; 300us; 65535us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 300us; 65535us; |]; + (* State 301 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 302us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 302 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 304us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 304us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 303us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 303 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 305us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 304 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 304us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 304us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 303us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 305 *) + [| 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 65535us; 306us; 306us; 65535us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 65535us; |]; + (* State 306 *) + [| 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 65535us; 306us; 306us; 65535us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 306us; 65535us; |]; + (* State 307 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 308us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 308us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 308 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 310us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 310us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 65535us; 65535us; 65535us; 65535us; 309us; 65535us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 65535us; 65535us; 65535us; 65535us; 65535us; 309us; 309us; 309us; 309us; 309us; 65535us; 65535us; 65535us; 65535us; 309us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 309 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 312us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 312us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 313us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 311us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 65535us; 65535us; 65535us; 65535us; 313us; 65535us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 65535us; 65535us; 65535us; 65535us; 65535us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 65535us; 313us; 313us; 65535us; 65535us; 65535us; 65535us; 65535us; 313us; 65535us; 65535us; 313us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 310 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 310us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 310us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 65535us; 65535us; 65535us; 65535us; 309us; 65535us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 309us; 65535us; 65535us; 65535us; 65535us; 65535us; 309us; 309us; 309us; 309us; 309us; 65535us; 65535us; 65535us; 65535us; 309us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 311 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 314us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 312 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 312us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 312us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 311us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 313 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 312us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 312us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 313us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 311us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 65535us; 65535us; 65535us; 65535us; 313us; 65535us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 65535us; 65535us; 65535us; 65535us; 65535us; 313us; 313us; 313us; 313us; 313us; 313us; 313us; 65535us; 313us; 313us; 65535us; 65535us; 65535us; 65535us; 65535us; 313us; 65535us; 65535us; 313us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 314 *) + [| 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 65535us; 315us; 315us; 65535us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 65535us; |]; + (* State 315 *) + [| 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 65535us; 315us; 315us; 65535us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 315us; 65535us; |]; + (* State 316 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 333us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 317 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 318us; 284us; 319us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 318 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 327us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 319 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 320us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 320 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 321us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 321 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 322us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 322 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 324us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 298us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 323us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 323 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 325us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 324 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 324us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 298us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 323us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 325 *) + [| 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 65535us; 326us; 326us; 65535us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 300us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 65535us; |]; + (* State 326 *) + [| 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 65535us; 326us; 326us; 65535us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 300us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 326us; 65535us; |]; + (* State 327 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 328us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 328 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 330us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 304us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 329us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 329 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 331us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 330 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 330us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 304us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 329us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 331 *) + [| 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 65535us; 332us; 332us; 65535us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 306us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 65535us; |]; + (* State 332 *) + [| 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 65535us; 332us; 332us; 65535us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 306us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 332us; 65535us; |]; + (* State 333 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 334us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 308us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 334 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 336us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 310us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 284us; 284us; 284us; 284us; 335us; 284us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 284us; 284us; 284us; 284us; 284us; 335us; 335us; 335us; 335us; 335us; 284us; 284us; 284us; 284us; 335us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 335 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 338us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 312us; 284us; 284us; 284us; 284us; 284us; 284us; 339us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 337us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 284us; 284us; 284us; 284us; 339us; 284us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 284us; 284us; 284us; 284us; 284us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 284us; 339us; 339us; 284us; 284us; 284us; 284us; 284us; 339us; 284us; 284us; 339us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 336 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 336us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 310us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 284us; 284us; 284us; 284us; 335us; 284us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 335us; 284us; 284us; 284us; 284us; 284us; 335us; 335us; 335us; 335us; 335us; 284us; 284us; 284us; 284us; 335us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 337 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 340us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 338 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 338us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 312us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 337us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 339 *) + [| 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 338us; 65535us; 284us; 284us; 65535us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 312us; 284us; 284us; 284us; 284us; 284us; 284us; 339us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 337us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 284us; 284us; 284us; 284us; 339us; 284us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 284us; 284us; 284us; 284us; 284us; 339us; 339us; 339us; 339us; 339us; 339us; 339us; 284us; 339us; 339us; 284us; 284us; 284us; 284us; 284us; 339us; 284us; 284us; 339us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 284us; 65535us; |]; + (* State 340 *) + [| 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 65535us; 341us; 341us; 65535us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 315us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 65535us; |]; + (* State 341 *) + [| 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 65535us; 341us; 341us; 65535us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 315us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 341us; 65535us; |]; + (* State 342 *) + [| 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 357us; 359us; 386us; 386us; 360us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 356us; 384us; 353us; 362us; 354us; 380us; 364us; 351us; 352us; 366us; 367us; 382us; 368us; 369us; 371us; 358us; 350us; 349us; 349us; 349us; 349us; 349us; 349us; 349us; 349us; 349us; 372us; 374us; 363us; 375us; 373us; 370us; 355us; 343us; 343us; 343us; 343us; 344us; 345us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 376us; 386us; 377us; 383us; 343us; 361us; 343us; 343us; 343us; 346us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 343us; 347us; 343us; 343us; 343us; 343us; 343us; 343us; 348us; 343us; 378us; 365us; 379us; 381us; 386us; 343us; 343us; 343us; 343us; 343us; 386us; 386us; 386us; 349us; 343us; 386us; 386us; 386us; 386us; 386us; 386us; 385us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 386us; 387us; |]; + (* State 343 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 344 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 698us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 345 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 695us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 346 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 693us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 347 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 687us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 348 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 682us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 349 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 627us; 65535us; 624us; 624us; 624us; 624us; 624us; 624us; 624us; 624us; 624us; 624us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 635us; 635us; 635us; 632us; 635us; 634us; 635us; 634us; 635us; 635us; 629us; 633us; 634us; 635us; 635us; 634us; 634us; 635us; 635us; 630us; 635us; 635us; 635us; 635us; 634us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 635us; 635us; 635us; 635us; 632us; 635us; 635us; 635us; 635us; 635us; 635us; 628us; 633us; 631us; 635us; 635us; 635us; 635us; 626us; 635us; 625us; 635us; 635us; 635us; 623us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 65535us; 624us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 65535us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 350 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 627us; 65535us; 624us; 624us; 624us; 624us; 624us; 624us; 624us; 624us; 624us; 624us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 666us; 635us; 635us; 632us; 635us; 634us; 635us; 634us; 635us; 635us; 629us; 633us; 634us; 665us; 635us; 634us; 634us; 635us; 635us; 630us; 635us; 635us; 664us; 635us; 634us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 635us; 666us; 635us; 635us; 632us; 635us; 635us; 635us; 635us; 635us; 635us; 628us; 633us; 631us; 665us; 635us; 635us; 635us; 626us; 635us; 625us; 635us; 635us; 664us; 623us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 65535us; 624us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 65535us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 351 *) + [| 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 65535us; 65535us; 65535us; 593us; 593us; 65535us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 594us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 593us; 65535us; |]; + (* State 352 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 568us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 353 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 566us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 354 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 454us; 565us; 65535us; 450us; 451us; 455us; 65535us; 65535us; 65535us; 448us; 452us; 65535us; 452us; 449us; 451us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 456us; 456us; 456us; 449us; 453us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 453us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 457us; 65535us; 458us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 355 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 559us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 391us; 391us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 391us; 560us; 391us; 561us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 356 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 555us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 558us; 65535us; 65535us; 554us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 357 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 553us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 555us; 65535us; 65535us; 554us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 358 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 394us; 394us; 65535us; 394us; 394us; 547us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 394us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 359 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 360 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 546us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 361 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 540us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 362 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 478us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 478us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 481us; 65535us; 65535us; 65535us; 480us; 65535us; 65535us; 479us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 477us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 363 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 397us; 397us; 65535us; 475us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 397us; 397us; 397us; 474us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 364 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 65535us; 447us; 447us; 473us; 65535us; 65535us; 65535us; 447us; 447us; 65535us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 447us; 447us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 365 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 65535us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 446us; 446us; 65535us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 446us; 446us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 472us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 471us; 65535us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 366 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 367 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 467us; 394us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 394us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 368 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 369 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 65535us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 392us; 392us; 65535us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 392us; 392us; 470us; 392us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 370 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 415us; 65535us; 65535us; 409us; 411us; 416us; 65535us; 65535us; 65535us; 408us; 412us; 65535us; 412us; 410us; 411us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 414us; 414us; 414us; 469us; 413us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 413us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 417us; 65535us; 418us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 371 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 415us; 65535us; 65535us; 409us; 411us; 416us; 65535us; 420us; 65535us; 408us; 412us; 65535us; 412us; 407us; 411us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 414us; 414us; 414us; 410us; 413us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 419us; 65535us; 65535us; 413us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 417us; 65535us; 418us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 372 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 402us; 65535us; 65535us; 405us; 403us; 404us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 373 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 397us; 397us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 397us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 400us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 399us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 374 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 398us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 375 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 397us; 397us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 397us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 376 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 396us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 395us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 377 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 378 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 379 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 380 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 394us; 393us; 394us; 65535us; 65535us; 65535us; 394us; 394us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 394us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 381 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 65535us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 389us; 389us; 65535us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 389us; 389us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 382 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 65535us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 392us; 392us; 65535us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 392us; 392us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 383 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 391us; 391us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 391us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 384 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 65535us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 389us; 389us; 65535us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 389us; 388us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 385 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 386us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 386 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 387 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 388 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 65535us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 390us; 390us; 65535us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 390us; 390us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 389 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 65535us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 389us; 389us; 65535us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 389us; 389us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 390 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 65535us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 390us; 390us; 65535us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 390us; 390us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 391 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 391us; 391us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 391us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 392 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 65535us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 392us; 392us; 65535us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 392us; 392us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 393 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 394us; 394us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 394us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 394 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 394us; 394us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 394us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 395 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 396 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 397 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 397us; 397us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 397us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 398 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 399 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 397us; 397us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 397us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 401us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 400 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 401 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 402 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 403 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 404 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 406us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 405 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 406 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 407 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 415us; 65535us; 65535us; 409us; 411us; 416us; 65535us; 65535us; 65535us; 408us; 412us; 65535us; 412us; 410us; 411us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 414us; 414us; 414us; 410us; 413us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 413us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 417us; 65535us; 418us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 408 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 467us; 394us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 394us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 409 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 454us; 65535us; 65535us; 450us; 451us; 455us; 65535us; 65535us; 65535us; 448us; 452us; 65535us; 452us; 449us; 451us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 456us; 456us; 456us; 449us; 453us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 453us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 457us; 65535us; 458us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 410 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 415us; 65535us; 65535us; 409us; 411us; 416us; 65535us; 65535us; 65535us; 408us; 412us; 65535us; 412us; 410us; 411us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 414us; 414us; 414us; 410us; 413us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 413us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 417us; 65535us; 418us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 411 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 394us; 394us; 65535us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 394us; 394us; 394us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 394us; 65535us; 394us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 412 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 65535us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 392us; 392us; 65535us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 392us; 392us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 413 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 391us; 391us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 391us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 414 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 397us; 397us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 397us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 415 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 65535us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 389us; 389us; 65535us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 389us; 388us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 416 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 65535us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 447us; 447us; 65535us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 447us; 447us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 417 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 65535us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 446us; 446us; 65535us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 446us; 446us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 418 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 65535us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 389us; 389us; 65535us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 389us; 389us; 389us; 389us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 389us; 65535us; 389us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 419 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 425us; 65535us; 426us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 424us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 420 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 421us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 421 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 422us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 422 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 423us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 423 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 424 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 445us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 425 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 438us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 437us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 426 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 427us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 427 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 428us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 423us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 428 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 429us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 429 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 430us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 430 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 431us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 423us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 431 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 432us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 432 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 433us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 433 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 434us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 423us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 434 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 435us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 435 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 436us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 436 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 423us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 437 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 444us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 438 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 440us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 439us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 439 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 443us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 440 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 441us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 441 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 442us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 442 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 423us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 443 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 423us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 444 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 423us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 445 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 423us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 446 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 65535us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 446us; 446us; 65535us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 446us; 446us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 447 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 65535us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 447us; 447us; 65535us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 447us; 447us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 448 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 65535us; 464us; 464us; 464us; 65535us; 65535us; 65535us; 465us; 464us; 65535us; 464us; 464us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 464us; 464us; 464us; 464us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 449 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 454us; 65535us; 65535us; 450us; 451us; 455us; 65535us; 65535us; 65535us; 448us; 452us; 65535us; 452us; 449us; 451us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 456us; 456us; 456us; 449us; 453us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 453us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 457us; 65535us; 458us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 450 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 454us; 65535us; 65535us; 450us; 451us; 455us; 65535us; 65535us; 65535us; 448us; 452us; 65535us; 452us; 449us; 451us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 456us; 456us; 456us; 449us; 453us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 453us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 457us; 65535us; 458us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 451 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 65535us; 464us; 464us; 464us; 65535us; 65535us; 65535us; 464us; 464us; 65535us; 464us; 464us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 464us; 464us; 464us; 464us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 452 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 463us; 65535us; 65535us; 463us; 463us; 463us; 65535us; 65535us; 65535us; 463us; 463us; 65535us; 463us; 463us; 463us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 463us; 65535us; 463us; 463us; 463us; 463us; 463us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 463us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 463us; 65535us; 463us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 453 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 462us; 65535us; 65535us; 462us; 462us; 462us; 65535us; 65535us; 65535us; 462us; 462us; 65535us; 462us; 462us; 462us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 462us; 65535us; 462us; 462us; 462us; 462us; 462us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 462us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 462us; 65535us; 462us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 454 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 65535us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 390us; 390us; 65535us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 390us; 461us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 455 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 460us; 65535us; 65535us; 460us; 460us; 460us; 65535us; 65535us; 65535us; 460us; 460us; 65535us; 460us; 460us; 460us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 460us; 65535us; 460us; 460us; 460us; 460us; 460us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 460us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 460us; 65535us; 460us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 456 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 397us; 397us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 397us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 457 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 459us; 65535us; 65535us; 459us; 459us; 459us; 65535us; 65535us; 65535us; 459us; 459us; 65535us; 459us; 459us; 459us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 459us; 65535us; 459us; 459us; 459us; 459us; 459us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 459us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 459us; 65535us; 459us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 458 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 65535us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 390us; 390us; 65535us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 390us; 390us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 459 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 459us; 65535us; 65535us; 459us; 459us; 459us; 65535us; 65535us; 65535us; 459us; 459us; 65535us; 459us; 459us; 459us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 459us; 65535us; 459us; 459us; 459us; 459us; 459us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 459us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 459us; 65535us; 459us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 460 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 460us; 65535us; 65535us; 460us; 460us; 460us; 65535us; 65535us; 65535us; 460us; 460us; 65535us; 460us; 460us; 460us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 460us; 65535us; 460us; 460us; 460us; 460us; 460us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 460us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 460us; 65535us; 460us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 461 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 65535us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 390us; 390us; 65535us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 390us; 390us; 390us; 390us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 390us; 65535us; 390us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 462 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 462us; 65535us; 65535us; 462us; 462us; 462us; 65535us; 65535us; 65535us; 462us; 462us; 65535us; 462us; 462us; 462us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 462us; 65535us; 462us; 462us; 462us; 462us; 462us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 462us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 462us; 65535us; 462us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 463 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 463us; 65535us; 65535us; 463us; 463us; 463us; 65535us; 65535us; 65535us; 463us; 463us; 65535us; 463us; 463us; 463us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 463us; 65535us; 463us; 463us; 463us; 463us; 463us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 463us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 463us; 65535us; 463us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 464 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 65535us; 464us; 464us; 464us; 65535us; 65535us; 65535us; 464us; 464us; 65535us; 464us; 464us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 464us; 464us; 464us; 464us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 464us; 65535us; 464us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 465 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 466us; 65535us; 65535us; 466us; 466us; 466us; 65535us; 65535us; 65535us; 466us; 466us; 65535us; 466us; 466us; 466us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 466us; 65535us; 466us; 466us; 466us; 466us; 466us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 466us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 466us; 65535us; 466us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 466 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 466us; 65535us; 65535us; 466us; 466us; 466us; 65535us; 65535us; 65535us; 466us; 466us; 65535us; 466us; 466us; 466us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 466us; 65535us; 466us; 466us; 466us; 466us; 466us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 466us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 466us; 65535us; 466us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 467 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 468us; 65535us; 65535us; 468us; 468us; 468us; 65535us; 65535us; 65535us; 468us; 468us; 65535us; 468us; 468us; 468us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 468us; 65535us; 468us; 468us; 468us; 468us; 468us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 468us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 468us; 65535us; 468us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 468 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 468us; 65535us; 65535us; 468us; 468us; 468us; 65535us; 65535us; 65535us; 468us; 468us; 65535us; 468us; 468us; 468us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 468us; 65535us; 468us; 468us; 468us; 468us; 468us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 468us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 468us; 65535us; 468us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 469 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 415us; 65535us; 65535us; 409us; 411us; 416us; 65535us; 65535us; 65535us; 408us; 412us; 65535us; 412us; 410us; 411us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 414us; 414us; 414us; 410us; 413us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 413us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 417us; 65535us; 418us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 470 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 65535us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 392us; 392us; 65535us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 392us; 392us; 392us; 392us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 392us; 65535us; 392us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 471 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 65535us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 446us; 446us; 65535us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 446us; 446us; 446us; 446us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 446us; 65535us; 446us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 472 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 473 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 65535us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 447us; 447us; 65535us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 447us; 447us; 447us; 447us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 447us; 65535us; 447us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 474 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 397us; 397us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 397us; 397us; 397us; 476us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 475 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 397us; 397us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 397us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 476 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 397us; 397us; 65535us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 397us; 397us; 397us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 397us; 65535us; 397us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 477 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 532us; 530us; 65535us; 65535us; 531us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 532us; 65535us; 533us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 535us; 535us; 535us; 535us; 535us; 535us; 535us; 535us; 535us; 535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 534us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 478 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 478us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 478us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 477us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 479 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 520us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 480 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 498us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 497us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 481 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 482us; 65535us; 483us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 482 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 491us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 483 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 484us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 484 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 485us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 485 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 486us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 486 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 488us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 488us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 487us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 487 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 489us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 488 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 488us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 488us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 487us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 489 *) + [| 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 65535us; 490us; 490us; 65535us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 65535us; |]; + (* State 490 *) + [| 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 65535us; 490us; 490us; 65535us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 490us; 65535us; |]; + (* State 491 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 492us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 492 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 494us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 494us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 493us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 493 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 495us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 494 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 494us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 494us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 493us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 495 *) + [| 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 65535us; 496us; 496us; 65535us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 65535us; |]; + (* State 496 *) + [| 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 65535us; 496us; 496us; 65535us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 496us; 65535us; |]; + (* State 497 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 507us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 498 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 499us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 499us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 499 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 501us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 501us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 65535us; 65535us; 65535us; 65535us; 500us; 65535us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 65535us; 65535us; 65535us; 65535us; 65535us; 500us; 500us; 500us; 500us; 500us; 65535us; 65535us; 65535us; 65535us; 500us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 500 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 503us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 503us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 504us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 502us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 65535us; 65535us; 65535us; 65535us; 504us; 65535us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 65535us; 65535us; 65535us; 65535us; 65535us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 65535us; 504us; 504us; 65535us; 65535us; 65535us; 65535us; 65535us; 504us; 65535us; 65535us; 504us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 501 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 501us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 501us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 65535us; 65535us; 65535us; 65535us; 500us; 65535us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 500us; 65535us; 65535us; 65535us; 65535us; 65535us; 500us; 500us; 500us; 500us; 500us; 65535us; 65535us; 65535us; 65535us; 500us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 502 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 505us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 503 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 503us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 503us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 502us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 504 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 503us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 503us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 504us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 502us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 65535us; 65535us; 65535us; 65535us; 504us; 65535us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 65535us; 65535us; 65535us; 65535us; 65535us; 504us; 504us; 504us; 504us; 504us; 504us; 504us; 65535us; 504us; 504us; 65535us; 65535us; 65535us; 65535us; 65535us; 504us; 65535us; 65535us; 504us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 505 *) + [| 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 65535us; 506us; 506us; 65535us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 65535us; |]; + (* State 506 *) + [| 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 65535us; 506us; 506us; 65535us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 506us; 65535us; |]; + (* State 507 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 508us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 508 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 509us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 509 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 510us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 510 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 511us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 511us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 511 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 513us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 513us; 65535us; 512us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 512 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 514us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 513 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 513us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 513us; 65535us; 512us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 514 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 516us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 515us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 515 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 519us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 516 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 517us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 517 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 518us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 518 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 519 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 520 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 522us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 521us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 521 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 527us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 522 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 523us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 523 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 524us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 524 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 525us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 525us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 525 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 526us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 526us; 65535us; 512us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 526 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 526us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 526us; 65535us; 512us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 527 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 528us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 528us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 528 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 529us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 529us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 477us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 529 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 529us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 529us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 477us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 477us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 530 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 531 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 530us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 532 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 532us; 530us; 65535us; 65535us; 531us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 532us; 65535us; 533us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 534us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 533 *) + [| 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 65535us; 536us; 536us; 65535us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 65535us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 536us; 65535us; |]; + (* State 534 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 533us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 535 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 532us; 530us; 65535us; 65535us; 531us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 532us; 65535us; 533us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 535us; 535us; 535us; 535us; 535us; 535us; 535us; 535us; 535us; 535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 534us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 536 *) + [| 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 65535us; 538us; 538us; 65535us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 537us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 65535us; |]; + (* State 537 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 539us; 530us; 65535us; 65535us; 531us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 539us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 538 *) + [| 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 65535us; 538us; 538us; 65535us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 537us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 538us; 65535us; |]; + (* State 539 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 539us; 530us; 65535us; 65535us; 531us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 539us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 540 *) + [| 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 65535us; 65535us; 541us; 541us; 65535us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 542us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 65535us; |]; + (* State 541 *) + [| 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 65535us; 65535us; 544us; 544us; 65535us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 543us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 65535us; |]; + (* State 542 *) + [| 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 65535us; 65535us; 541us; 541us; 65535us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 65535us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 541us; 65535us; |]; + (* State 543 *) + [| 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 65535us; 65535us; 544us; 544us; 65535us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 545us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 65535us; |]; + (* State 544 *) + [| 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 65535us; 65535us; 544us; 544us; 65535us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 543us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 544us; 65535us; |]; + (* State 545 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 546 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 547 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 549us; 65535us; 65535us; 549us; 549us; 549us; 65535us; 65535us; 65535us; 549us; 549us; 65535us; 549us; 549us; 548us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 549us; 65535us; 549us; 549us; 549us; 549us; 549us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 549us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 549us; 65535us; 549us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 548 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 551us; 65535us; 65535us; 551us; 551us; 551us; 65535us; 65535us; 65535us; 551us; 551us; 65535us; 551us; 551us; 550us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 551us; 65535us; 551us; 551us; 551us; 551us; 551us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 551us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 551us; 65535us; 551us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 549 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 549us; 65535us; 65535us; 549us; 549us; 549us; 65535us; 65535us; 65535us; 549us; 549us; 65535us; 549us; 549us; 549us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 549us; 65535us; 549us; 549us; 549us; 549us; 549us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 549us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 549us; 65535us; 549us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 550 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 552us; 65535us; 65535us; 552us; 552us; 552us; 65535us; 65535us; 65535us; 552us; 552us; 65535us; 552us; 552us; 552us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 552us; 65535us; 552us; 552us; 552us; 552us; 552us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 552us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 552us; 65535us; 552us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 551 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 551us; 65535us; 65535us; 551us; 551us; 551us; 65535us; 65535us; 65535us; 551us; 551us; 65535us; 551us; 551us; 551us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 551us; 65535us; 551us; 551us; 551us; 551us; 551us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 551us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 551us; 65535us; 551us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 552 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 552us; 65535us; 65535us; 552us; 552us; 552us; 65535us; 65535us; 65535us; 552us; 552us; 65535us; 552us; 552us; 552us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 552us; 65535us; 552us; 552us; 552us; 552us; 552us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 552us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 552us; 65535us; 552us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 553 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 553us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 555us; 65535us; 65535us; 554us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 554 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 481us; 65535us; 65535us; 65535us; 556us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 555 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 555us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 555us; 65535us; 65535us; 554us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 556 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 557us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 557 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 499us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 499us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 558 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 555us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 558us; 65535us; 65535us; 554us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 559 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 560 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 391us; 391us; 65535us; 391us; 564us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 391us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 561 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 391us; 391us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 391us; 562us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 562 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 391us; 391us; 65535us; 391us; 563us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 391us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 563 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 391us; 391us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 391us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 564 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 391us; 391us; 65535us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 391us; 391us; 391us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 391us; 65535us; 391us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 565 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 566 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 567us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 567 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 568 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 571us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 570us; 65535us; 65535us; 569us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 569 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 573us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 570 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 572us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 571 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 572 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 573 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 574us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 574 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 576us; 65535us; 65535us; 575us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 577us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 575 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 588us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 576 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 584us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 577 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 578us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 578 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 579us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 579 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 580us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 580 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 581us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 581 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 582us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 582 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 583us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 583 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 584 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 585us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 585 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 586us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 586 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 587us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 587 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 583us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 588 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 589us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 589 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 590us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 590 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 591us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 591 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 592us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 592 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 593 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 621us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 594 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 593us; 65535us; 65535us; 65535us; 65535us; 593us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 595us; 595us; 595us; 595us; 595us; 595us; 595us; 595us; 595us; 595us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 598us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 593us; 65535us; 65535us; 65535us; 65535us; 593us; 593us; 65535us; 65535us; 65535us; 593us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 593us; 65535us; 65535us; 65535us; 593us; 65535us; 593us; 596us; 593us; 65535us; 597us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 595us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 595 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 617us; 617us; 617us; 617us; 617us; 617us; 617us; 617us; 617us; 617us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 617us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 596 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 611us; 611us; 611us; 611us; 611us; 611us; 611us; 611us; 611us; 611us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 611us; 611us; 611us; 611us; 611us; 611us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 611us; 611us; 611us; 611us; 611us; 611us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 597 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 608us; 608us; 608us; 608us; 608us; 608us; 608us; 608us; 608us; 608us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 608us; 608us; 608us; 608us; 608us; 608us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 608us; 608us; 608us; 608us; 608us; 608us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 598 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 599us; 599us; 599us; 599us; 599us; 599us; 599us; 599us; 599us; 599us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 599us; 599us; 599us; 599us; 599us; 599us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 599us; 599us; 599us; 599us; 599us; 599us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 599 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 600us; 600us; 600us; 600us; 600us; 600us; 600us; 600us; 600us; 600us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 600us; 600us; 600us; 600us; 600us; 600us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 600us; 600us; 600us; 600us; 600us; 600us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 600 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 601us; 601us; 601us; 601us; 601us; 601us; 601us; 601us; 601us; 601us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 601us; 601us; 601us; 601us; 601us; 601us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 601us; 601us; 601us; 601us; 601us; 601us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 601 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 602us; 602us; 602us; 602us; 602us; 602us; 602us; 602us; 602us; 602us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 602us; 602us; 602us; 602us; 602us; 602us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 602us; 602us; 602us; 602us; 602us; 602us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 602 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 603us; 603us; 603us; 603us; 603us; 603us; 603us; 603us; 603us; 603us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 603us; 603us; 603us; 603us; 603us; 603us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 603us; 603us; 603us; 603us; 603us; 603us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 603 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 604us; 604us; 604us; 604us; 604us; 604us; 604us; 604us; 604us; 604us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 604us; 604us; 604us; 604us; 604us; 604us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 604us; 604us; 604us; 604us; 604us; 604us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 604 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 605us; 605us; 605us; 605us; 605us; 605us; 605us; 605us; 605us; 605us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 605us; 605us; 605us; 605us; 605us; 605us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 605us; 605us; 605us; 605us; 605us; 605us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 605 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 606us; 606us; 606us; 606us; 606us; 606us; 606us; 606us; 606us; 606us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 606us; 606us; 606us; 606us; 606us; 606us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 606us; 606us; 606us; 606us; 606us; 606us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 606 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 607us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 607 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 608 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 609us; 609us; 609us; 609us; 609us; 609us; 609us; 609us; 609us; 609us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 609us; 609us; 609us; 609us; 609us; 609us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 609us; 609us; 609us; 609us; 609us; 609us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 609 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 610us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 610 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 611 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 612us; 612us; 612us; 612us; 612us; 612us; 612us; 612us; 612us; 612us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 612us; 612us; 612us; 612us; 612us; 612us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 612us; 612us; 612us; 612us; 612us; 612us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 612 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 613us; 613us; 613us; 613us; 613us; 613us; 613us; 613us; 613us; 613us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 613us; 613us; 613us; 613us; 613us; 613us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 613us; 613us; 613us; 613us; 613us; 613us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 613 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 614us; 614us; 614us; 614us; 614us; 614us; 614us; 614us; 614us; 614us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 614us; 614us; 614us; 614us; 614us; 614us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 614us; 614us; 614us; 614us; 614us; 614us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 614 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 615us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 615 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 616us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 616 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 617 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 618us; 618us; 618us; 618us; 618us; 618us; 618us; 618us; 618us; 618us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 618us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 618 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 619us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 619 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 620us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 620 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 621 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 622us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 622 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 623 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 624 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 627us; 65535us; 656us; 656us; 656us; 656us; 656us; 656us; 656us; 656us; 656us; 656us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 650us; 645us; 663us; 645us; 663us; 645us; 645us; 660us; 644us; 663us; 645us; 645us; 663us; 663us; 645us; 645us; 661us; 645us; 645us; 645us; 645us; 663us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 650us; 645us; 645us; 645us; 645us; 645us; 645us; 659us; 644us; 662us; 645us; 645us; 645us; 645us; 658us; 645us; 657us; 645us; 645us; 645us; 655us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 656us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 625 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 646us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 653us; 636us; 654us; 636us; 636us; 636us; 636us; 652us; 636us; 636us; 636us; 636us; 636us; 651us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 626 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 627 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 647us; 65535us; 648us; 648us; 648us; 648us; 648us; 648us; 648us; 648us; 648us; 648us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 635us; 635us; 635us; 632us; 640us; 635us; 635us; 635us; 635us; 635us; 635us; 633us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 635us; 635us; 635us; 635us; 632us; 640us; 635us; 635us; 635us; 635us; 635us; 635us; 633us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 65535us; 648us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 65535us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 628 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 629 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 630 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 646us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 631 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 632 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 638us; 65535us; 638us; 65535us; 65535us; 637us; 637us; 637us; 637us; 637us; 637us; 637us; 637us; 637us; 637us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 637us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 633 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 634 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 635 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 636 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 637 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 642us; 645us; 645us; 645us; 645us; 645us; 645us; 644us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 645us; 642us; 645us; 645us; 645us; 645us; 645us; 645us; 644us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 643us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 638 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 639us; 639us; 639us; 639us; 639us; 639us; 639us; 639us; 639us; 639us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 639us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 639 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 641us; 641us; 641us; 641us; 641us; 641us; 641us; 641us; 641us; 641us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 635us; 635us; 635us; 635us; 640us; 635us; 635us; 635us; 635us; 635us; 635us; 633us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 635us; 635us; 635us; 635us; 635us; 640us; 635us; 635us; 635us; 635us; 635us; 635us; 633us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 635us; 635us; 635us; 635us; 635us; 635us; 65535us; 641us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 635us; 65535us; 65535us; 635us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 640 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 641 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 642us; 645us; 645us; 645us; 645us; 645us; 645us; 644us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 645us; 642us; 645us; 645us; 645us; 645us; 645us; 645us; 644us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 643us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 642 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 643 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 643us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 642us; 645us; 645us; 645us; 645us; 645us; 645us; 644us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 645us; 642us; 645us; 645us; 645us; 645us; 645us; 645us; 644us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 643us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 644 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 645 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 646 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 647 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 648 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 649us; 649us; 649us; 649us; 649us; 649us; 649us; 649us; 649us; 649us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 650us; 642us; 645us; 645us; 645us; 645us; 645us; 645us; 644us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 650us; 642us; 645us; 645us; 645us; 645us; 645us; 645us; 644us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 649us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 649 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 649us; 649us; 649us; 649us; 649us; 649us; 649us; 649us; 649us; 649us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 650us; 642us; 645us; 645us; 645us; 645us; 645us; 645us; 644us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 650us; 642us; 645us; 645us; 645us; 645us; 645us; 645us; 644us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 649us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 650 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 638us; 65535us; 638us; 65535us; 65535us; 637us; 637us; 637us; 637us; 637us; 637us; 637us; 637us; 637us; 637us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 637us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 651 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 652 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 653 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 654 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 655 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 656 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 627us; 65535us; 656us; 656us; 656us; 656us; 656us; 656us; 656us; 656us; 656us; 656us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 650us; 645us; 663us; 645us; 663us; 645us; 645us; 660us; 644us; 663us; 645us; 645us; 663us; 663us; 645us; 645us; 661us; 645us; 645us; 645us; 645us; 663us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 650us; 645us; 645us; 645us; 645us; 645us; 645us; 659us; 644us; 662us; 645us; 645us; 645us; 645us; 658us; 645us; 657us; 645us; 645us; 645us; 655us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 656us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 657 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 646us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 653us; 636us; 654us; 636us; 636us; 636us; 636us; 652us; 636us; 636us; 636us; 636us; 636us; 651us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 658 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 659 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 660 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 661 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 646us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 662 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 663 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 664 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 677us; 677us; 677us; 677us; 677us; 677us; 677us; 677us; 677us; 677us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 677us; 677us; 677us; 677us; 677us; 677us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 677us; 677us; 677us; 677us; 677us; 677us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 665 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 675us; 675us; 675us; 675us; 675us; 675us; 675us; 675us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 666 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 667us; 667us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 667 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 669us; 669us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 672us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 661us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 671us; 645us; 662us; 645us; 645us; 645us; 645us; 670us; 645us; 657us; 645us; 645us; 645us; 668us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 668 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 669 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 669us; 669us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 672us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 661us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 671us; 645us; 662us; 645us; 645us; 645us; 645us; 670us; 645us; 657us; 645us; 645us; 645us; 668us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 670 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 671 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 674us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 672 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 673us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 673 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 674 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 636us; 636us; 636us; 636us; 636us; 636us; 65535us; 636us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 636us; 65535us; 65535us; 636us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 675 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 676us; 676us; 676us; 676us; 676us; 676us; 676us; 676us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 672us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 661us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 671us; 645us; 662us; 645us; 645us; 645us; 645us; 670us; 645us; 657us; 645us; 645us; 645us; 668us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 676 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 676us; 676us; 676us; 676us; 676us; 676us; 676us; 676us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 672us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 661us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 671us; 645us; 662us; 645us; 645us; 645us; 645us; 670us; 645us; 657us; 645us; 645us; 645us; 668us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 677 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 678us; 678us; 678us; 678us; 678us; 678us; 678us; 678us; 678us; 678us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 678us; 678us; 678us; 678us; 678us; 678us; 645us; 645us; 645us; 645us; 645us; 672us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 661us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 678us; 678us; 678us; 678us; 678us; 678us; 645us; 645us; 645us; 645us; 645us; 671us; 645us; 662us; 645us; 645us; 645us; 645us; 670us; 645us; 657us; 645us; 645us; 645us; 668us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 678 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 678us; 678us; 678us; 678us; 678us; 678us; 678us; 678us; 678us; 678us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 678us; 678us; 678us; 678us; 678us; 678us; 645us; 645us; 645us; 645us; 645us; 672us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 661us; 645us; 645us; 645us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 678us; 678us; 678us; 678us; 678us; 678us; 645us; 645us; 645us; 645us; 645us; 671us; 645us; 662us; 645us; 645us; 645us; 645us; 670us; 645us; 657us; 645us; 645us; 645us; 668us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 645us; 645us; 645us; 645us; 645us; 645us; 65535us; 645us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 645us; 65535us; 65535us; 645us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 679 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 680 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 681 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 682 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 683us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 683 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 684us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 684 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 685us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 685 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 686us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 686 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 687 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 688us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 688 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 689us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 689 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 690us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 690 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 691us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 691 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 692us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 692 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 693 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 694us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 694 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 695 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 696us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 696 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 697us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 697 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 698 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 699us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 699 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 700us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 700 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 701us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 701 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 680us; 65535us; 681us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 702us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 679us; 679us; 679us; 679us; 679us; 679us; 65535us; 679us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 679us; 65535us; 65535us; 679us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 702 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 703us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 703 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 704us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 704 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 705us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 705 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 706us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 706 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 707us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 707 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 708us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 708 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 709us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 709 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 710us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + (* State 710 *) + [| 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]; + |] +let actions : uint16[] = [|65535us; 0us; 1us; 6us; 6us; 4us; 4us; 5us; 4us; 4us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 3us; 65535us; 65535us; 65535us; 65535us; 2us; 1us; 65535us; 4us; 1us; 1us; 1us; 1us; 2us; 4us; 3us; 4us; 4us; 2us; 1us; 1us; 65535us; 65535us; 65535us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 65535us; 0us; 65535us; 1us; 2us; 2us; 2us; 2us; 3us; 5us; 4us; 5us; 5us; 3us; 2us; 2us; 65535us; 65535us; 65535us; 2us; 2us; 2us; 2us; 2us; 2us; 2us; 0us; 65535us; 5us; 1us; 1us; 1us; 1us; 2us; 3us; 5us; 4us; 5us; 5us; 3us; 1us; 1us; 65535us; 65535us; 65535us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 0us; 65535us; 1us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 0us; 65535us; 10us; 1us; 10us; 10us; 6us; 10us; 10us; 8us; 8us; 8us; 9us; 10us; 8us; 8us; 8us; 7us; 6us; 5us; 4us; 3us; 65535us; 2us; 65535us; 65535us; 0us; 65535us; 0us; 3us; 1us; 2us; 2us; 2us; 2us; 2us; 2us; 2us; 2us; 0us; 65535us; 6us; 1us; 6us; 2us; 3us; 3us; 4us; 5us; 6us; 6us; 4us; 3us; 65535us; 65535us; 65535us; 3us; 3us; 3us; 3us; 3us; 3us; 2us; 1us; 65535us; 0us; 65535us; 1us; 3us; 8us; 4us; 5us; 5us; 6us; 7us; 8us; 8us; 6us; 5us; 65535us; 65535us; 65535us; 5us; 5us; 5us; 5us; 5us; 5us; 4us; 3us; 0us; 2us; 65535us; 13us; 6us; 8us; 13us; 9us; 10us; 10us; 11us; 12us; 13us; 13us; 11us; 10us; 65535us; 65535us; 65535us; 10us; 10us; 10us; 10us; 10us; 10us; 9us; 8us; 7us; 0us; 65535us; 1us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 5us; 65535us; 65535us; 65535us; 4us; 65535us; 3us; 65535us; 2us; 0us; 65535us; 0us; 2us; 1us; 2us; 2us; 0us; 65535us; 4us; 4us; 4us; 3us; 4us; 4us; 4us; 5us; 4us; 3us; 4us; 4us; 4us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 2us; 65535us; 2us; 2us; 2us; 65535us; 1us; 65535us; 1us; 1us; 1us; 65535us; 65535us; 0us; 65535us; 65535us; 0us; 0us; 0us; 0us; 4us; 4us; 4us; 4us; 4us; 4us; 2us; 4us; 2us; 2us; 2us; 4us; 1us; 4us; 1us; 1us; 1us; 4us; 4us; 0us; 4us; 4us; 0us; 0us; 0us; 0us; 65535us; 0us; 0us; 0us; 0us; 0us; 0us; 13us; 13us; 63us; 64us; 43us; 97us; 106us; 47us; 48us; 104us; 52us; 118us; 102us; 59us; 88us; 60us; 95us; 65us; 66us; 67us; 100us; 69us; 72us; 73us; 89us; 83us; 85us; 86us; 91us; 94us; 96us; 98us; 101us; 105us; 106us; 110us; 118us; 118us; 119us; 107us; 110us; 107us; 106us; 105us; 99us; 104us; 87us; 90us; 107us; 82us; 107us; 93us; 78us; 74us; 75us; 80us; 81us; 79us; 71us; 104us; 107us; 65535us; 104us; 105us; 106us; 107us; 110us; 108us; 109us; 110us; 65535us; 65535us; 111us; 65535us; 111us; 111us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 111us; 65535us; 111us; 65535us; 111us; 65535us; 65535us; 65535us; 65535us; 109us; 108us; 104us; 107us; 107us; 104us; 105us; 106us; 107us; 107us; 107us; 107us; 107us; 107us; 107us; 107us; 106us; 105us; 104us; 103us; 103us; 103us; 103us; 70us; 68us; 62us; 92us; 61us; 55us; 84us; 56us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 116us; 65535us; 116us; 116us; 116us; 65535us; 115us; 65535us; 115us; 115us; 115us; 65535us; 117us; 65535us; 114us; 65535us; 65535us; 114us; 114us; 114us; 114us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 113us; 112us; 65535us; 65535us; 65535us; 65535us; 112us; 112us; 112us; 65535us; 65535us; 65535us; 54us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 53us; 52us; 51us; 50us; 51us; 49us; 50us; 49us; 48us; 65535us; 65535us; 65535us; 65535us; 47us; 46us; 57us; 106us; 58us; 77us; 76us; 45us; 65535us; 44us; 41us; 65535us; 65535us; 40us; 37us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 42us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 36us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 35us; 65535us; 65535us; 33us; 65535us; 65535us; 65535us; 65535us; 34us; 32us; 65535us; 65535us; 30us; 31us; 28us; 29us; 6us; 13us; 15us; 9us; 22us; 14us; 17us; 27us; 19us; 27us; 23us; 26us; 27us; 27us; 22us; 65535us; 22us; 21us; 22us; 21us; 22us; 23us; 27us; 18us; 12us; 22us; 22us; 27us; 8us; 11us; 16us; 20us; 6us; 13us; 15us; 9us; 14us; 17us; 27us; 19us; 26us; 27us; 27us; 27us; 13us; 7us; 13us; 10us; 14us; 17us; 25us; 24us; 13us; 13us; 13us; 13us; 0us; 4us; 5us; 0us; 0us; 0us; 0us; 2us; 0us; 0us; 0us; 0us; 0us; 3us; 0us; 1us; 5us; 65535us; 39us; 0us; 0us; 0us; 0us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 38us; |] +let _fslex_tables = Internal.Utilities.Text.Lexing.UnicodeTables.Create(trans,actions) +let rec _fslex_dummy () = _fslex_dummy() +(* Rule token *) +and token args skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_token args skip 342 lexbuf +(* Rule ifdefSkip *) +and ifdefSkip n m args skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_ifdefSkip n m args skip 275 lexbuf +(* Rule endline *) +and endline cont args skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_endline cont args skip 268 lexbuf +(* Rule string *) +and string sargs skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_string sargs skip 218 lexbuf +(* Rule verbatimString *) +and verbatimString sargs skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_verbatimString sargs skip 192 lexbuf +(* Rule tripleQuoteString *) +and tripleQuoteString sargs skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_tripleQuoteString sargs skip 166 lexbuf +(* Rule singleLineComment *) +and singleLineComment cargs skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_singleLineComment cargs skip 153 lexbuf +(* Rule comment *) +and comment cargs skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_comment cargs skip 127 lexbuf +(* Rule stringInComment *) +and stringInComment n m args skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_stringInComment n m args skip 82 lexbuf +(* Rule verbatimStringInComment *) +and verbatimStringInComment n m args skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_verbatimStringInComment n m args skip 57 lexbuf +(* Rule tripleQuoteStringInComment *) +and tripleQuoteStringInComment n m args skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_tripleQuoteStringInComment n m args skip 31 lexbuf +(* Rule mlOnly *) +and mlOnly m args skip (lexbuf : Internal.Utilities.Text.Lexing.LexBuffer<_>) = _fslex_mlOnly m args skip 0 lexbuf +(* Rule token *) +and _fslex_token args skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 232 "..\lex.fsl" + Keywords.KeywordOrIdentifierToken args lexbuf (lexeme lexbuf) +# 1625 "lex.fs" + ) + | 1 -> ( +# 234 "..\lex.fsl" + DO_BANG +# 1630 "lex.fs" + ) + | 2 -> ( +# 236 "..\lex.fsl" + YIELD_BANG(true) +# 1635 "lex.fs" + ) + | 3 -> ( +# 238 "..\lex.fsl" + YIELD_BANG(false) +# 1640 "lex.fs" + ) + | 4 -> ( +# 240 "..\lex.fsl" + let tok = Keywords.KeywordOrIdentifierToken args lexbuf (lexemeTrimRight lexbuf 1) + match tok with + | LET _ -> BINDER (lexemeTrimRight lexbuf 1) + | _ -> fail args lexbuf (FSComp.SR.lexIdentEndInMarkReserved("!")) (Keywords.KeywordOrIdentifierToken args lexbuf (lexeme lexbuf)) +# 1648 "lex.fs" + ) + | 5 -> ( +# 245 "..\lex.fsl" + fail args lexbuf (FSComp.SR.lexIdentEndInMarkReserved("#")) (Keywords.KeywordOrIdentifierToken args lexbuf (lexeme lexbuf)) +# 1653 "lex.fs" + ) + | 6 -> ( +# 247 "..\lex.fsl" + let n = lexemeTrimRightToInt32 args lexbuf 1 + if n > 0x80 || n < -0x80 then fail args lexbuf (FSComp.SR.lexOutsideEightBitSigned()) (INT8(0y,false)) + // Allow to parse as min_int. Allowed only because we parse '-' as an operator. + else if n = 0x80 then INT8(sbyte(-0x80), true (* 'true' = 'bad'*) ) + else INT8(sbyte n,false) +# 1662 "lex.fs" + ) + | 7 -> ( +# 253 "..\lex.fsl" + let n = lexemeTrimRightToInt32 args lexbuf 1 + if n > 0xFF || n < 0 then fail args lexbuf (FSComp.SR.lexOutsideEightBitSignedHex()) (INT8(0y,false)) + else INT8(sbyte(byte(n)),false) +# 1669 "lex.fs" + ) + | 8 -> ( +# 257 "..\lex.fsl" + let n = lexemeTrimRightToInt32 args lexbuf 2 + if n > 0xFF || n < 0 then fail args lexbuf (FSComp.SR.lexOutsideEightBitUnsigned()) (UINT8(0uy)) + else UINT8(byte n) +# 1676 "lex.fs" + ) + | 9 -> ( +# 261 "..\lex.fsl" + let n = lexemeTrimRightToInt32 args lexbuf 1 + if n > 0x8000 || n < -0x8000 then fail args lexbuf (FSComp.SR.lexOutsideSixteenBitSigned()) (INT16(0s,false)) + // Allow to parse as min_int. Allowed only because we parse '-' as an operator. + else if n = 0x8000 then INT16(-0x8000s,true) + else INT16(int16 n,false) +# 1685 "lex.fs" + ) + | 10 -> ( +# 267 "..\lex.fsl" + let n = lexemeTrimRightToInt32 args lexbuf 1 + if n > 0xFFFF || n < 0 then fail args lexbuf (FSComp.SR.lexOutsideSixteenBitSigned()) (INT16(0s,false)) + else INT16(int16(uint16(n)),false) +# 1692 "lex.fs" + ) + | 11 -> ( +# 271 "..\lex.fsl" + let n = lexemeTrimRightToInt32 args lexbuf 2 + if n > 0xFFFF || n < 0 then fail args lexbuf (FSComp.SR.lexOutsideSixteenBitUnsigned()) (UINT16(0us)) + else UINT16(uint16 n) +# 1699 "lex.fs" + ) + | 12 -> ( +# 275 "..\lex.fsl" + let s = lexemeTrimRight lexbuf 2 + // Allow to parse as min_int. Allowed only because we parse '-' as an operator. + if s = "2147483648" then INT32_DOT_DOT(-2147483648,true) else + let n = try int32 s with _ -> fail args lexbuf (FSComp.SR.lexOutsideThirtyTwoBitSigned()) 0 + INT32_DOT_DOT(n,false) + +# 1709 "lex.fs" + ) + | 13 -> ( +# 283 "..\lex.fsl" + let s = lexeme lexbuf + // Allow to parse as min_int. Allowed only because we parse '-' as an operator. + if s = "2147483648" then INT32(-2147483648,true) else + let n = + try int32 s with _ -> fail args lexbuf (FSComp.SR.lexOutsideThirtyTwoBitSigned()) 0 + INT32(n,false) + +# 1720 "lex.fs" + ) + | 14 -> ( +# 292 "..\lex.fsl" + let s = lexemeTrimRight lexbuf 1 + // Allow to parse as min_int. Allowed only because we parse '-' as an operator. + if s = "2147483648" then INT32(-2147483648,true) else + let n = + try int32 s with _ -> fail args lexbuf (FSComp.SR.lexOutsideThirtyTwoBitSigned()) 0 + INT32(n,false) + +# 1731 "lex.fs" + ) + | 15 -> ( +# 301 "..\lex.fsl" + + let s = lexemeTrimRight lexbuf 1 + let n = + try int64 s with _ -> fail args lexbuf (FSComp.SR.lexOutsideThirtyTwoBitUnsigned()) 0L + if n > 0xFFFFFFFFL || n < 0L then fail args lexbuf (FSComp.SR.lexOutsideThirtyTwoBitUnsigned()) (UINT32(0u)) else + UINT32(uint32 (uint64 n)) +# 1741 "lex.fs" + ) + | 16 -> ( +# 309 "..\lex.fsl" + + let s = lexemeTrimRight lexbuf 2 + let n = + try int64 s with _ -> fail args lexbuf (FSComp.SR.lexOutsideThirtyTwoBitUnsigned()) 0L + if n > 0xFFFFFFFFL || n < 0L then fail args lexbuf (FSComp.SR.lexOutsideThirtyTwoBitUnsigned()) (UINT32(0u)) else + UINT32(uint32 (uint64 n)) +# 1751 "lex.fs" + ) + | 17 -> ( +# 317 "..\lex.fsl" + let s = lexemeTrimRight lexbuf 1 + // Allow to parse as min_int. Stupid but allowed because we parse '-' as an operator. + if s = "9223372036854775808" then INT64(-9223372036854775808L,true) else + let n = + try int64 s with _ -> fail args lexbuf (FSComp.SR.lexOutsideSixtyFourBitSigned()) 0L + INT64(n,false) + +# 1762 "lex.fs" + ) + | 18 -> ( +# 326 "..\lex.fsl" + let s = lexemeTrimRight lexbuf 2 + let n = + try uint64 s with _ -> fail args lexbuf (FSComp.SR.lexOutsideSixtyFourBitUnsigned()) 0UL + UINT64(n) +# 1770 "lex.fs" + ) + | 19 -> ( +# 332 "..\lex.fsl" + try + NATIVEINT(int64 (lexemeTrimRight lexbuf 1)) + with _ -> fail args lexbuf (FSComp.SR.lexOutsideNativeSigned()) (NATIVEINT(0L)) +# 1777 "lex.fs" + ) + | 20 -> ( +# 337 "..\lex.fsl" + try + UNATIVEINT(uint64 (lexemeTrimRight lexbuf 2)) + with _ -> fail args lexbuf (FSComp.SR.lexOutsideNativeUnsigned()) (UNATIVEINT(0UL)) +# 1784 "lex.fs" + ) + | 21 -> ( +# 342 "..\lex.fsl" + IEEE32 (try float32(lexemeTrimRight lexbuf 1) with _ -> fail args lexbuf (FSComp.SR.lexInvalidFloat()) 0.0f) +# 1789 "lex.fs" + ) + | 22 -> ( +# 344 "..\lex.fsl" + IEEE64 (try float(lexeme lexbuf) with _ -> fail args lexbuf (FSComp.SR.lexInvalidFloat()) 0.0) +# 1794 "lex.fs" + ) + | 23 -> ( +# 347 "..\lex.fsl" + try + let s = lexemeTrimRight lexbuf 1 + // This implements a range check for decimal literals + let d = System.Decimal.Parse(s,System.Globalization.NumberStyles.AllowExponent ||| System.Globalization.NumberStyles.Number,System.Globalization.CultureInfo.InvariantCulture) + DECIMAL d + with + e -> fail args lexbuf (FSComp.SR.lexOusideDecimal()) (DECIMAL (decimal 0)) + +# 1806 "lex.fs" + ) + | 24 -> ( +# 356 "..\lex.fsl" + + let s = lexemeTrimRight lexbuf 2 + // Even though the intermediate step is an int64, display the "invalid float" message, since it will be less confusing to the user + let n64 = (try (int64 s) with _ -> fail args lexbuf (FSComp.SR.lexInvalidFloat()) 0L) + if n64 > 0xFFFFFFFFL || n64 < 0L then fail args lexbuf (FSComp.SR.lexOusideThirtyTwoBitFloat()) (IEEE32 0.0f) else + IEEE32 (System.BitConverter.ToSingle(System.BitConverter.GetBytes(int32 (uint32 (uint64 n64))),0)) +# 1816 "lex.fs" + ) + | 25 -> ( +# 364 "..\lex.fsl" + + let n64 = (try int64 (lexemeTrimRight lexbuf 2) with _ -> fail args lexbuf (FSComp.SR.lexInvalidFloat()) 0L) + IEEE64 (System.BitConverter.Int64BitsToDouble(n64)) +# 1823 "lex.fs" + ) + | 26 -> ( +# 369 "..\lex.fsl" + let s = lexeme lexbuf + BIGNUM (lexemeTrimRight lexbuf 1, s.[s.Length-1..s.Length-1]) +# 1829 "lex.fs" + ) + | 27 -> ( +# 373 "..\lex.fsl" + fail args lexbuf (FSComp.SR.lexInvalidNumericLiteral()) (INT32(0,false)) +# 1834 "lex.fs" + ) + | 28 -> ( +# 376 "..\lex.fsl" + let s = lexeme lexbuf + CHAR (if s.[1] = '\\' then escape s.[2] else s.[1]) +# 1840 "lex.fs" + ) + | 29 -> ( +# 380 "..\lex.fsl" + let s = lexeme lexbuf + let x = int32 (if s.[1] = '\\' then escape s.[2] else s.[1]) + if x < 0 || x > 127 then + fail args lexbuf (FSComp.SR.lexInvalidByteLiteral()) (UINT8(byte 0)) + else + UINT8 (byte(x)) +# 1850 "lex.fs" + ) + | 30 -> ( +# 388 "..\lex.fsl" + let s = lexeme lexbuf + let c = trigraph s.[2] s.[3] s.[4] + let x = int32 c + if x < 0 || x > 255 then + fail args lexbuf (FSComp.SR.lexInvalidCharLiteral()) (CHAR c) + else + CHAR c +# 1861 "lex.fs" + ) + | 31 -> ( +# 397 "..\lex.fsl" + let s = lexeme lexbuf + let x = int32 (trigraph s.[2] s.[3] s.[4]) + if x < 0 || x > 255 then + fail args lexbuf (FSComp.SR.lexInvalidByteLiteral()) (UINT8(byte 0)) + else + UINT8 (byte(x)) +# 1871 "lex.fs" + ) + | 32 -> ( +# 405 "..\lex.fsl" + let x = int32 (unicodeGraphShort (lexemeTrimBoth lexbuf 3 2)) + if x < 0 || x > 127 then + fail args lexbuf (FSComp.SR.lexInvalidByteLiteral()) (UINT8(byte 0)) + else + UINT8 (byte(x)) +# 1880 "lex.fs" + ) + | 33 -> ( +# 411 "..\lex.fsl" + CHAR (char (int32 (hexGraphShort (lexemeTrimBoth lexbuf 3 1)))) +# 1885 "lex.fs" + ) + | 34 -> ( +# 412 "..\lex.fsl" + CHAR (char (int32 (unicodeGraphShort (lexemeTrimBoth lexbuf 3 1)))) +# 1890 "lex.fs" + ) + | 35 -> ( +# 414 "..\lex.fsl" + let hi,lo = unicodeGraphLong (lexemeTrimBoth lexbuf 3 1) + match hi with + | None -> CHAR (char lo) + | Some _ -> fail args lexbuf (FSComp.SR.lexThisUnicodeOnlyInStringLiterals()) (CHAR (char lo)) +# 1898 "lex.fs" + ) + | 36 -> ( +# 419 "..\lex.fsl" + if not skip then (COMMENT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 1903 "lex.fs" + ) + | 37 -> ( +# 421 "..\lex.fsl" + if not skip then (COMMENT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 1908 "lex.fs" + ) + | 38 -> ( +# 423 "..\lex.fsl" + if not skip then (COMMENT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 1913 "lex.fs" + ) + | 39 -> ( +# 425 "..\lex.fsl" + if not skip then (COMMENT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 1918 "lex.fs" + ) + | 40 -> ( +# 428 "..\lex.fsl" + LPAREN_STAR_RPAREN +# 1923 "lex.fs" + ) + | 41 -> ( +# 431 "..\lex.fsl" + let m = lexbuf.LexemeRange + if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,1,m))) else comment (1,m,args) skip lexbuf +# 1929 "lex.fs" + ) + | 42 -> ( +# 435 "..\lex.fsl" + let m = lexbuf.LexemeRange + if not skip then (COMMENT (LexCont.MLOnly(!args.ifdefStack,m))) else mlOnly m args skip lexbuf +# 1935 "lex.fs" + ) + | 43 -> ( +# 439 "..\lex.fsl" + let buf,fin,m = startString args lexbuf + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string (buf,fin,m,args) skip lexbuf +# 1941 "lex.fs" + ) + | 44 -> ( +# 443 "..\lex.fsl" + let buf,fin,m = startString args lexbuf + if not skip then (STRING_TEXT (LexCont.TripleQuoteString(!args.ifdefStack,m))) else tripleQuoteString (buf,fin,m,args) skip lexbuf +# 1947 "lex.fs" + ) + | 45 -> ( +# 447 "..\lex.fsl" + fail args lexbuf (FSComp.SR.lexTokenReserved()) (WHITESPACE (LexCont.Token !args.ifdefStack)) +# 1952 "lex.fs" + ) + | 46 -> ( +# 450 "..\lex.fsl" + let buf,fin,m = startString args lexbuf + if not skip then (STRING_TEXT (LexCont.VerbatimString(!args.ifdefStack,m))) else verbatimString (buf,fin,m,args) skip lexbuf +# 1958 "lex.fs" + ) + | 47 -> ( +# 454 "..\lex.fsl" + if skip then token args skip lexbuf + else WHITESPACE (LexCont.Token !args.ifdefStack) +# 1964 "lex.fs" + ) + | 48 -> ( +# 458 "..\lex.fsl" + if args.lightSyntaxStatus.Status then errorR(Error(FSComp.SR.lexTabsNotAllowed(),lexbuf.LexemeRange)); + if not skip then (WHITESPACE (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 1970 "lex.fs" + ) + | 49 -> ( +# 462 "..\lex.fsl" + // 4+ slash are 1-line comments, online 3 slash are XmlDoc + let m = lexbuf.LexemeRange + if not skip then (LINE_COMMENT (LexCont.SingleLineComment(!args.ifdefStack,1,m))) else singleLineComment (None,1,m,args) skip lexbuf +# 1977 "lex.fs" + ) + | 50 -> ( +# 467 "..\lex.fsl" + // Match exactly 3 slash, 4+ slash caught by preceding rule + let m = lexbuf.LexemeRange + let doc = lexemeTrimLeft lexbuf 3 + let sb = (new StringBuilder(100)).Append(doc) + if not skip then (LINE_COMMENT (LexCont.SingleLineComment(!args.ifdefStack,1,m))) else singleLineComment (Some sb,1,m,args) skip lexbuf +# 1986 "lex.fs" + ) + | 51 -> ( +# 474 "..\lex.fsl" + // Need to read all operator symbols too, otherwise it might be parsed by a rule below + let m = lexbuf.LexemeRange + if not skip then (LINE_COMMENT (LexCont.SingleLineComment(!args.ifdefStack,1,m))) else singleLineComment (None,1,m,args) skip lexbuf +# 1993 "lex.fs" + ) + | 52 -> ( +# 479 "..\lex.fsl" + newline lexbuf; if not skip then (WHITESPACE (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 1998 "lex.fs" + ) + | 53 -> ( +# 482 "..\lex.fsl" + Keywords.IdentifierToken args lexbuf (lexemeTrimBoth lexbuf 2 2) +# 2003 "lex.fs" + ) + | 54 -> ( +# 485 "..\lex.fsl" + let pos = lexbuf.EndPos + if skip then + let s = lexeme lexbuf + let rec parseLeadingDirective n = + match s.[n] with + | c when c >= 'a' && c <= 'z' -> parseLeadingDirective (n+1) + | _ -> parseLeadingWhitespace n // goto the next state + + and parseLeadingWhitespace n = + match s.[n] with + | ' ' | '\t' -> parseLeadingWhitespace (n+1) + | _ -> parseLineNumber n n // goto the next state + + and parseLineNumber start n = + match s.[n] with + | c when c >= '0' && c <= '9' -> parseLineNumber start (n+1) + | _ -> let text = (String.sub s start (n-start)) + let lineNumber = + try int32 text + with err -> errorR(Error(FSComp.SR.lexInvalidLineNumber(text),lexbuf.LexemeRange)); 0 + lineNumber, parseWhitespaceBeforeFile n // goto the next state + + and parseWhitespaceBeforeFile n = + match s.[n] with + | ' ' | '\t' | '@' -> parseWhitespaceBeforeFile (n+1) + | '"' -> Some (parseFile (n+1) (n+1)) + | _ -> None + + and parseFile start n = + match s.[n] with + | '"' -> String.sub s start (n-start) + | _ -> parseFile start (n+1) + // Call the parser + let line,file = parseLeadingDirective 1 + // Construct the new position + lexbuf.EndPos <- pos.ApplyLineDirective((match file with Some f -> fileIndexOfFile f | None -> pos.FileIndex), line) + token args skip lexbuf + else + if not skip then (HASH_LINE (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 2046 "lex.fs" + ) + | 55 -> ( +# 528 "..\lex.fsl" + checkExprOp lexbuf; LQUOTE ("<@ @>", false) +# 2051 "lex.fs" + ) + | 56 -> ( +# 529 "..\lex.fsl" + checkExprOp lexbuf; LQUOTE ("<@@ @@>", true) +# 2056 "lex.fs" + ) + | 57 -> ( +# 530 "..\lex.fsl" + checkExprOp lexbuf; RQUOTE ("<@ @>", false) +# 2061 "lex.fs" + ) + | 58 -> ( +# 531 "..\lex.fsl" + checkExprOp lexbuf; RQUOTE ("<@@ @@>", true) +# 2066 "lex.fs" + ) + | 59 -> ( +# 532 "..\lex.fsl" + HASH +# 2071 "lex.fs" + ) + | 60 -> ( +# 533 "..\lex.fsl" + AMP +# 2076 "lex.fs" + ) + | 61 -> ( +# 534 "..\lex.fsl" + AMP_AMP +# 2081 "lex.fs" + ) + | 62 -> ( +# 535 "..\lex.fsl" + BAR_BAR +# 2086 "lex.fs" + ) + | 63 -> ( +# 536 "..\lex.fsl" + QUOTE +# 2091 "lex.fs" + ) + | 64 -> ( +# 537 "..\lex.fsl" + LPAREN +# 2096 "lex.fs" + ) + | 65 -> ( +# 538 "..\lex.fsl" + RPAREN +# 2101 "lex.fs" + ) + | 66 -> ( +# 539 "..\lex.fsl" + STAR +# 2106 "lex.fs" + ) + | 67 -> ( +# 540 "..\lex.fsl" + COMMA +# 2111 "lex.fs" + ) + | 68 -> ( +# 541 "..\lex.fsl" + RARROW +# 2116 "lex.fs" + ) + | 69 -> ( +# 542 "..\lex.fsl" + QMARK +# 2121 "lex.fs" + ) + | 70 -> ( +# 543 "..\lex.fsl" + QMARK_QMARK +# 2126 "lex.fs" + ) + | 71 -> ( +# 544 "..\lex.fsl" + DOT_DOT +# 2131 "lex.fs" + ) + | 72 -> ( +# 545 "..\lex.fsl" + DOT +# 2136 "lex.fs" + ) + | 73 -> ( +# 546 "..\lex.fsl" + COLON +# 2141 "lex.fs" + ) + | 74 -> ( +# 547 "..\lex.fsl" + COLON_COLON +# 2146 "lex.fs" + ) + | 75 -> ( +# 548 "..\lex.fsl" + COLON_GREATER +# 2151 "lex.fs" + ) + | 76 -> ( +# 549 "..\lex.fsl" + RQUOTE_DOT ("<@ @>",false) +# 2156 "lex.fs" + ) + | 77 -> ( +# 550 "..\lex.fsl" + RQUOTE_DOT ("<@@ @@>",true) +# 2161 "lex.fs" + ) + | 78 -> ( +# 551 "..\lex.fsl" + GREATER_BAR_RBRACK +# 2166 "lex.fs" + ) + | 79 -> ( +# 552 "..\lex.fsl" + COLON_QMARK_GREATER +# 2171 "lex.fs" + ) + | 80 -> ( +# 553 "..\lex.fsl" + COLON_QMARK +# 2176 "lex.fs" + ) + | 81 -> ( +# 554 "..\lex.fsl" + COLON_EQUALS +# 2181 "lex.fs" + ) + | 82 -> ( +# 555 "..\lex.fsl" + SEMICOLON_SEMICOLON +# 2186 "lex.fs" + ) + | 83 -> ( +# 556 "..\lex.fsl" + SEMICOLON +# 2191 "lex.fs" + ) + | 84 -> ( +# 557 "..\lex.fsl" + LARROW +# 2196 "lex.fs" + ) + | 85 -> ( +# 558 "..\lex.fsl" + EQUALS +# 2201 "lex.fs" + ) + | 86 -> ( +# 559 "..\lex.fsl" + LBRACK +# 2206 "lex.fs" + ) + | 87 -> ( +# 560 "..\lex.fsl" + LBRACK_BAR +# 2211 "lex.fs" + ) + | 88 -> ( +# 561 "..\lex.fsl" + LESS false +# 2216 "lex.fs" + ) + | 89 -> ( +# 562 "..\lex.fsl" + GREATER false +# 2221 "lex.fs" + ) + | 90 -> ( +# 563 "..\lex.fsl" + LBRACK_LESS +# 2226 "lex.fs" + ) + | 91 -> ( +# 564 "..\lex.fsl" + RBRACK +# 2231 "lex.fs" + ) + | 92 -> ( +# 565 "..\lex.fsl" + BAR_RBRACK +# 2236 "lex.fs" + ) + | 93 -> ( +# 566 "..\lex.fsl" + GREATER_RBRACK +# 2241 "lex.fs" + ) + | 94 -> ( +# 567 "..\lex.fsl" + LBRACE +# 2246 "lex.fs" + ) + | 95 -> ( +# 568 "..\lex.fsl" + BAR +# 2251 "lex.fs" + ) + | 96 -> ( +# 569 "..\lex.fsl" + RBRACE +# 2256 "lex.fs" + ) + | 97 -> ( +# 570 "..\lex.fsl" + DOLLAR +# 2261 "lex.fs" + ) + | 98 -> ( +# 571 "..\lex.fsl" + PERCENT_OP("%") +# 2266 "lex.fs" + ) + | 99 -> ( +# 572 "..\lex.fsl" + PERCENT_OP("%%") +# 2271 "lex.fs" + ) + | 100 -> ( +# 573 "..\lex.fsl" + MINUS +# 2276 "lex.fs" + ) + | 101 -> ( +# 574 "..\lex.fsl" + RESERVED +# 2281 "lex.fs" + ) + | 102 -> ( +# 575 "..\lex.fsl" + RESERVED +# 2286 "lex.fs" + ) + | 103 -> ( +# 576 "..\lex.fsl" + checkExprOp lexbuf; INFIX_STAR_STAR_OP(lexeme lexbuf) +# 2291 "lex.fs" + ) + | 104 -> ( +# 577 "..\lex.fsl" + checkExprOp lexbuf; INFIX_STAR_DIV_MOD_OP(lexeme lexbuf) +# 2296 "lex.fs" + ) + | 105 -> ( +# 578 "..\lex.fsl" + checkExprOp lexbuf; PLUS_MINUS_OP(lexeme lexbuf) +# 2301 "lex.fs" + ) + | 106 -> ( +# 579 "..\lex.fsl" + checkExprOp lexbuf; INFIX_AT_HAT_OP(lexeme lexbuf) +# 2306 "lex.fs" + ) + | 107 -> ( +# 580 "..\lex.fsl" + checkExprOp lexbuf; INFIX_COMPARE_OP(lexeme lexbuf) +# 2311 "lex.fs" + ) + | 108 -> ( +# 581 "..\lex.fsl" + checkExprOp lexbuf; INFIX_AMP_OP(lexeme lexbuf) +# 2316 "lex.fs" + ) + | 109 -> ( +# 582 "..\lex.fsl" + checkExprOp lexbuf; INFIX_BAR_OP(lexeme lexbuf) +# 2321 "lex.fs" + ) + | 110 -> ( +# 583 "..\lex.fsl" + checkExprOp lexbuf; PREFIX_OP(lexeme lexbuf) +# 2326 "lex.fs" + ) + | 111 -> ( +# 585 "..\lex.fsl" + FUNKY_OPERATOR_NAME(lexeme lexbuf) +# 2331 "lex.fs" + ) + | 112 -> ( +# 589 "..\lex.fsl" + if args.lightSyntaxStatus.ExplicitlySet && args.lightSyntaxStatus.WarnOnMultipleTokens then + warning(Error((0,"#light should only occur as the first non-comment text in an F# source file"),lexbuf.LexemeRange)); + // TODO unreachable error above, I think? - brianmcn + args.lightSyntaxStatus.Status <- true; + if not skip then (HASH_LIGHT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 2340 "lex.fs" + ) + | 113 -> ( +# 596 "..\lex.fsl" + args.lightSyntaxStatus.Status <- false; + mlCompatWarning (FSComp.SR.lexIndentOffForML()) lexbuf.LexemeRange; + if not skip then (HASH_LIGHT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 2347 "lex.fs" + ) + | 114 -> ( +# 601 "..\lex.fsl" + let m = lexbuf.LexemeRange + let lexed = lexeme lexbuf + let id = extractIdentFromHashIf lexed + args.ifdefStack := (IfDefIf,m) :: !(args.ifdefStack); + + // Get the token; make sure it starts at zero position & return + let cont, f = + ( if List.mem id args.defines then (LexCont.EndLine(LexerEndlineContinuation.Token(!args.ifdefStack)), endline (LexerEndlineContinuation.Token !args.ifdefStack) args skip) + else (LexCont.EndLine(LexerEndlineContinuation.Skip(!args.ifdefStack,0,m)), endline (LexerEndlineContinuation.Skip(!args.ifdefStack,0,m)) args skip) ) + let tok = shouldStartLine args lexbuf m (FSComp.SR.lexHashIfMustBeFirst()) (HASH_IF(m,lexed,cont)) + if not skip then tok else f lexbuf +# 2362 "lex.fs" + ) + | 115 -> ( +# 614 "..\lex.fsl" + let lexed = (lexeme lexbuf) + match !(args.ifdefStack) with + | [] -> LEX_FAILURE (FSComp.SR.lexHashElseNoMatchingIf()) + | (IfDefElse,_) :: _rest -> LEX_FAILURE (FSComp.SR.lexHashEndifRequiredForElse()) + | (IfDefIf,_) :: rest -> + let m = lexbuf.LexemeRange + args.ifdefStack := (IfDefElse,m) :: rest; + let tok = HASH_ELSE(m,lexed, LexCont.EndLine(LexerEndlineContinuation.Skip(!args.ifdefStack,0,m))) + let tok = shouldStartLine args lexbuf m (FSComp.SR.lexHashElseMustBeFirst()) tok + if not skip then tok else endline (LexerEndlineContinuation.Skip(!args.ifdefStack,0,m)) args skip lexbuf +# 2376 "lex.fs" + ) + | 116 -> ( +# 626 "..\lex.fsl" + let lexed = (lexeme lexbuf) + let m = lexbuf.LexemeRange + match !(args.ifdefStack) with + | []-> LEX_FAILURE (FSComp.SR.lexHashEndingNoMatchingIf()) + | _ :: rest -> + args.ifdefStack := rest; + let tok = HASH_ENDIF(m,lexed,LexCont.EndLine(LexerEndlineContinuation.Token(!args.ifdefStack))) + let tok = shouldStartLine args lexbuf m (FSComp.SR.lexHashEndifMustBeFirst()) tok + if not skip then tok else endline (LexerEndlineContinuation.Token(!args.ifdefStack)) args skip lexbuf +# 2389 "lex.fs" + ) + | 117 -> ( +# 637 "..\lex.fsl" + let tok = fail args lexbuf (FSComp.SR.lexHashIfMustHaveIdent()) (WHITESPACE (LexCont.Token !args.ifdefStack)) + if not skip then tok else token args skip lexbuf +# 2395 "lex.fs" + ) + | 118 -> ( +# 642 "..\lex.fsl" + unexpectedChar lexbuf +# 2400 "lex.fs" + ) + | 119 -> ( +# 644 "..\lex.fsl" + EOF (LexCont.Token !args.ifdefStack) +# 2405 "lex.fs" + ) + | _ -> failwith "token" +(* Rule ifdefSkip *) +and _fslex_ifdefSkip n m args skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 650 "..\lex.fsl" + let m = lexbuf.LexemeRange + let _id = extractIdentFromHashIf (lexeme lexbuf) + + // If #if is the first thing on the line then increase depth, otherwise skip, because it is invalid (e.g. "(**) #if ...") + if (m.StartColumn <> 0) then + if not skip then (INACTIVECODE (LexCont.IfDefSkip(!args.ifdefStack,n,m))) else ifdefSkip n m args skip lexbuf + else + let tok = INACTIVECODE(LexCont.EndLine(LexerEndlineContinuation.Skip(!args.ifdefStack,n+1,m))) + if not skip then tok else endline (LexerEndlineContinuation.Skip(!args.ifdefStack,n+1,m)) args skip lexbuf +# 2422 "lex.fs" + ) + | 1 -> ( +# 661 "..\lex.fsl" + let lexed = (lexeme lexbuf) + let m = lexbuf.LexemeRange + + // If #else is the first thing on the line then process it, otherwise ignore, because it is invalid (e.g. "(**) #else ...") + if (m.StartColumn <> 0) then + if not skip then (INACTIVECODE (LexCont.IfDefSkip(!args.ifdefStack,n,m))) else ifdefSkip n m args skip lexbuf + elif n = 0 then + match !(args.ifdefStack) with + | []-> LEX_FAILURE (FSComp.SR.lexHashElseNoMatchingIf()) + | (IfDefElse,_) :: _rest -> LEX_FAILURE (FSComp.SR.lexHashEndifRequiredForElse()) + | (IfDefIf,_) :: rest -> + let m = lexbuf.LexemeRange + args.ifdefStack := (IfDefElse,m) :: rest; + if not skip then (HASH_ELSE(m,lexed,LexCont.EndLine(LexerEndlineContinuation.Token(!args.ifdefStack)))) else endline (LexerEndlineContinuation.Token(!args.ifdefStack)) args skip lexbuf + else + if not skip then (INACTIVECODE(LexCont.EndLine(LexerEndlineContinuation.Skip(!args.ifdefStack,n,m)))) else endline (LexerEndlineContinuation.Skip(!args.ifdefStack,n,m)) args skip lexbuf +# 2442 "lex.fs" + ) + | 2 -> ( +# 679 "..\lex.fsl" + let lexed = lexeme lexbuf + let m = lexbuf.LexemeRange + + // If #endif is the first thing on the line then process it, otherwise ignore, because it is invalid (e.g. "(**) #endif ...") + if (m.StartColumn <> 0) then + if not skip then (INACTIVECODE (LexCont.IfDefSkip(!args.ifdefStack,n,m))) else ifdefSkip n m args skip lexbuf + elif n = 0 then + match !(args.ifdefStack) with + | [] -> LEX_FAILURE (FSComp.SR.lexHashEndingNoMatchingIf()) + | _ :: rest -> + args.ifdefStack := rest; + if not skip then (HASH_ENDIF(m,lexed,LexCont.EndLine(LexerEndlineContinuation.Token(!args.ifdefStack)))) else endline (LexerEndlineContinuation.Token(!args.ifdefStack)) args skip lexbuf + else + let tok = INACTIVECODE(LexCont.EndLine(LexerEndlineContinuation.Skip(!args.ifdefStack,n-1,m))) + let tok = shouldStartLine args lexbuf m (FSComp.SR.lexWrongNestedHashEndif()) tok + if not skip then tok else endline (LexerEndlineContinuation.Skip(!args.ifdefStack,(n-1),m)) args skip lexbuf +# 2462 "lex.fs" + ) + | 3 -> ( +# 697 "..\lex.fsl" + newline lexbuf; ifdefSkip n m args skip lexbuf +# 2467 "lex.fs" + ) + | 4 -> ( +# 703 "..\lex.fsl" + // This tries to be nice and get tokens as 'words' because VS uses this when selecting stuff + if not skip then (INACTIVECODE (LexCont.IfDefSkip(!args.ifdefStack,n,m))) else ifdefSkip n m args skip lexbuf +# 2473 "lex.fs" + ) + | 5 -> ( +# 706 "..\lex.fsl" + EOF (LexCont.IfDefSkip(!args.ifdefStack,n,m)) +# 2478 "lex.fs" + ) + | _ -> failwith "ifdefSkip" +(* Rule endline *) +and _fslex_endline cont args skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 712 "..\lex.fsl" + newline lexbuf; + match cont with + | LexerEndlineContinuation.Token(ifdefStack) -> if not skip then (WHITESPACE(LexCont.Token ifdefStack)) else token args skip lexbuf + | LexerEndlineContinuation.Skip(ifdefStack, n, m) -> if not skip then (INACTIVECODE (LexCont.IfDefSkip(ifdefStack,n,m))) else ifdefSkip n m args skip lexbuf + +# 2491 "lex.fs" + ) + | 1 -> ( +# 718 "..\lex.fsl" + match cont with + | LexerEndlineContinuation.Token(ifdefStack) -> (EOF(LexCont.Token ifdefStack)) + | LexerEndlineContinuation.Skip(ifdefStack, n, m) -> (EOF(LexCont.IfDefSkip(ifdefStack,n,m))) + +# 2499 "lex.fs" + ) + | 2 -> ( +# 724 "..\lex.fsl" + let tok = fail args lexbuf (FSComp.SR.lexExpectedSingleLineComment()) (WHITESPACE (LexCont.Token !args.ifdefStack)) + if not skip then tok else token args skip lexbuf +# 2505 "lex.fs" + ) + | _ -> failwith "endline" +(* Rule string *) +and _fslex_string sargs skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 729 "..\lex.fsl" + let (_buf,_fin,m,args) = sargs + newline lexbuf; + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2516 "lex.fs" + ) + | 1 -> ( +# 734 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addByteChar buf (escape (lexeme lexbuf).[1]); + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2523 "lex.fs" + ) + | 2 -> ( +# 739 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + let s = lexeme lexbuf + addByteChar buf (trigraph s.[1] s.[2] s.[3]); + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2531 "lex.fs" + ) + | 3 -> ( +# 745 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeChar buf (int (hexGraphShort (lexemeTrimLeft lexbuf 2))); + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2538 "lex.fs" + ) + | 4 -> ( +# 750 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeChar buf (int (unicodeGraphShort (lexemeTrimLeft lexbuf 2))); + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2545 "lex.fs" + ) + | 5 -> ( +# 755 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + let hi,lo = unicodeGraphLong (lexemeTrimLeft lexbuf 2) + (match hi with | None -> () | Some c -> addUnicodeChar buf (int c)); + addUnicodeChar buf (int lo); + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2554 "lex.fs" + ) + | 6 -> ( +# 762 "..\lex.fsl" + let (buf,fin,_m,_args) = sargs + let m2 = lexbuf.LexemeRange + callStringFinisher fin buf m2 false +# 2561 "lex.fs" + ) + | 7 -> ( +# 767 "..\lex.fsl" + let (buf,fin,_m,_args) = sargs + let m2 = lexbuf.LexemeRange + callStringFinisher fin buf m2 true +# 2568 "lex.fs" + ) + | 8 -> ( +# 772 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + newline lexbuf; + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2576 "lex.fs" + ) + | 9 -> ( +# 778 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2583 "lex.fs" + ) + | 10 -> ( +# 784 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2590 "lex.fs" + ) + | 11 -> ( +# 789 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2597 "lex.fs" + ) + | 12 -> ( +# 794 "..\lex.fsl" + let (_buf,_fin,m,args) = sargs + EOF (LexCont.String(!args.ifdefStack,m)) +# 2603 "lex.fs" + ) + | 13 -> ( +# 798 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.String(!args.ifdefStack,m))) else string sargs skip lexbuf +# 2610 "lex.fs" + ) + | _ -> failwith "string" +(* Rule verbatimString *) +and _fslex_verbatimString sargs skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 804 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addByteChar buf '\"'; + if not skip then (STRING_TEXT (LexCont.VerbatimString(!args.ifdefStack,m))) else verbatimString sargs skip lexbuf +# 2621 "lex.fs" + ) + | 1 -> ( +# 809 "..\lex.fsl" + let (buf,fin,_m,_args) = sargs + let m2 = lexbuf.LexemeRange + callStringFinisher fin buf m2 false +# 2628 "lex.fs" + ) + | 2 -> ( +# 814 "..\lex.fsl" + let (buf,fin,_m,_args) = sargs + let m2 = lexbuf.LexemeRange + callStringFinisher fin buf m2 true +# 2635 "lex.fs" + ) + | 3 -> ( +# 819 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + newline lexbuf; + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.VerbatimString(!args.ifdefStack,m))) else verbatimString sargs skip lexbuf +# 2643 "lex.fs" + ) + | 4 -> ( +# 825 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.VerbatimString(!args.ifdefStack,m))) else verbatimString sargs skip lexbuf +# 2650 "lex.fs" + ) + | 5 -> ( +# 831 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.VerbatimString(!args.ifdefStack,m))) else verbatimString sargs skip lexbuf +# 2657 "lex.fs" + ) + | 6 -> ( +# 836 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.VerbatimString(!args.ifdefStack,m))) else verbatimString sargs skip lexbuf +# 2664 "lex.fs" + ) + | 7 -> ( +# 841 "..\lex.fsl" + let (_buf,_fin,m,args) = sargs + EOF (LexCont.VerbatimString(!args.ifdefStack,m)) +# 2670 "lex.fs" + ) + | 8 -> ( +# 845 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.VerbatimString(!args.ifdefStack,m))) else verbatimString sargs skip lexbuf +# 2677 "lex.fs" + ) + | _ -> failwith "verbatimString" +(* Rule tripleQuoteString *) +and _fslex_tripleQuoteString sargs skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 851 "..\lex.fsl" + let (buf,fin,_m,_args) = sargs + let m2 = lexbuf.LexemeRange + callStringFinisher fin buf m2 false +# 2688 "lex.fs" + ) + | 1 -> ( +# 856 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + newline lexbuf; + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.TripleQuoteString(!args.ifdefStack,m))) else tripleQuoteString sargs skip lexbuf +# 2696 "lex.fs" + ) + | 2 -> ( +# 863 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.TripleQuoteString(!args.ifdefStack,m))) else tripleQuoteString sargs skip lexbuf +# 2703 "lex.fs" + ) + | 3 -> ( +# 869 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.TripleQuoteString(!args.ifdefStack,m))) else tripleQuoteString sargs skip lexbuf +# 2710 "lex.fs" + ) + | 4 -> ( +# 874 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.TripleQuoteString(!args.ifdefStack,m))) else tripleQuoteString sargs skip lexbuf +# 2717 "lex.fs" + ) + | 5 -> ( +# 879 "..\lex.fsl" + let (_buf,_fin,m,args) = sargs + EOF (LexCont.TripleQuoteString(!args.ifdefStack,m)) +# 2723 "lex.fs" + ) + | 6 -> ( +# 883 "..\lex.fsl" + let (buf,_fin,m,args) = sargs + addUnicodeString buf (lexeme lexbuf); + if not skip then (STRING_TEXT (LexCont.TripleQuoteString(!args.ifdefStack,m))) else tripleQuoteString sargs skip lexbuf +# 2730 "lex.fs" + ) + | _ -> failwith "tripleQuoteString" +(* Rule singleLineComment *) +and _fslex_singleLineComment cargs skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 890 "..\lex.fsl" + let buff,_n,_m,args = cargs + trySaveXmlDoc lexbuf buff; + newline lexbuf; + // Saves the documentation (if we're collecting any) into a buffer-local variable. + if not skip then (LINE_COMMENT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 2743 "lex.fs" + ) + | 1 -> ( +# 897 "..\lex.fsl" + let _, _n,_m,args = cargs + // NOTE: it is legal to end a file with this comment, so we'll return EOF as a token + EOF (LexCont.Token !args.ifdefStack) +# 2750 "lex.fs" + ) + | 2 -> ( +# 903 "..\lex.fsl" + let buff,n,m,args = cargs + // Append the current token to the XML documentation if we're collecting it + tryAppendXmlDoc buff (lexeme lexbuf); + if not skip then (LINE_COMMENT (LexCont.SingleLineComment(!args.ifdefStack,n,m))) else singleLineComment (buff,n,m,args) skip lexbuf +# 2758 "lex.fs" + ) + | 3 -> ( +# 909 "..\lex.fsl" + let _, _n,_m,args = cargs + if not skip then (LINE_COMMENT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 2764 "lex.fs" + ) + | _ -> failwith "singleLineComment" +(* Rule comment *) +and _fslex_comment cargs skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 915 "..\lex.fsl" + let n,m,args = cargs + if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,n,m))) else comment (n,m,args) skip lexbuf +# 2774 "lex.fs" + ) + | 1 -> ( +# 919 "..\lex.fsl" + let n,m,args = cargs + if not skip then (COMMENT (LexCont.StringInComment(!args.ifdefStack,n,m))) else stringInComment n m args skip lexbuf +# 2780 "lex.fs" + ) + | 2 -> ( +# 923 "..\lex.fsl" + let n,m,args = cargs + if not skip then (COMMENT (LexCont.TripleQuoteStringInComment(!args.ifdefStack,n,m))) else tripleQuoteStringInComment n m args skip lexbuf +# 2786 "lex.fs" + ) + | 3 -> ( +# 927 "..\lex.fsl" + let n,m,args = cargs + if not skip then (COMMENT (LexCont.VerbatimStringInComment(!args.ifdefStack,n,m))) else verbatimStringInComment n m args skip lexbuf +# 2792 "lex.fs" + ) + | 4 -> ( +# 931 "..\lex.fsl" + let n,m,args = cargs + if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,n,m))) else comment cargs skip lexbuf +# 2798 "lex.fs" + ) + | 5 -> ( +# 935 "..\lex.fsl" + let n,m,args = cargs + if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,n+1,m))) else comment (n+1,m,args) skip lexbuf +# 2804 "lex.fs" + ) + | 6 -> ( +# 939 "..\lex.fsl" + let n,m,args = cargs + newline lexbuf; + if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,n,m))) else comment cargs skip lexbuf +# 2811 "lex.fs" + ) + | 7 -> ( +# 943 "..\lex.fsl" + + let n,m,args = cargs + if n > 1 then if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,n-1,m))) else comment (n-1,m,args) skip lexbuf + else if not skip then (COMMENT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 2819 "lex.fs" + ) + | 8 -> ( +# 950 "..\lex.fsl" + let n,m,args = cargs + if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,n,m))) else comment cargs skip lexbuf +# 2825 "lex.fs" + ) + | 9 -> ( +# 954 "..\lex.fsl" + let n,m,args = cargs + EOF (LexCont.Comment(!args.ifdefStack,n,m)) +# 2831 "lex.fs" + ) + | 10 -> ( +# 958 "..\lex.fsl" + let n,m,args = cargs + if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,n,m))) else comment (n,m,args) skip lexbuf +# 2837 "lex.fs" + ) + | _ -> failwith "comment" +(* Rule stringInComment *) +and _fslex_stringInComment n m args skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 964 "..\lex.fsl" + newline lexbuf; + if not skip then (COMMENT (LexCont.StringInComment(!args.ifdefStack,n,m))) else stringInComment n m args skip lexbuf +# 2847 "lex.fs" + ) + | 1 -> ( +# 976 "..\lex.fsl" + if not skip then (COMMENT (LexCont.StringInComment(!args.ifdefStack,n,m))) else stringInComment n m args skip lexbuf +# 2852 "lex.fs" + ) + | 2 -> ( +# 980 "..\lex.fsl" + if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,n,m))) else comment (n,m,args) skip lexbuf +# 2857 "lex.fs" + ) + | 3 -> ( +# 983 "..\lex.fsl" + newline lexbuf; + if not skip then (COMMENT (LexCont.StringInComment(!args.ifdefStack,n,m))) else stringInComment n m args skip lexbuf +# 2863 "lex.fs" + ) + | 4 -> ( +# 987 "..\lex.fsl" + EOF (LexCont.StringInComment(!args.ifdefStack,n,m)) +# 2868 "lex.fs" + ) + | 5 -> ( +# 991 "..\lex.fsl" + if not skip then (COMMENT (LexCont.StringInComment(!args.ifdefStack,n,m))) else stringInComment n m args skip lexbuf +# 2873 "lex.fs" + ) + | _ -> failwith "stringInComment" +(* Rule verbatimStringInComment *) +and _fslex_verbatimStringInComment n m args skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 996 "..\lex.fsl" + if not skip then (COMMENT (LexCont.VerbatimStringInComment(!args.ifdefStack,n,m))) else verbatimStringInComment n m args skip lexbuf +# 2882 "lex.fs" + ) + | 1 -> ( +# 999 "..\lex.fsl" + if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,n,m))) else comment (n,m,args) skip lexbuf +# 2887 "lex.fs" + ) + | 2 -> ( +# 1005 "..\lex.fsl" + if not skip then (COMMENT (LexCont.VerbatimStringInComment(!args.ifdefStack,n,m))) else verbatimStringInComment n m args skip lexbuf +# 2892 "lex.fs" + ) + | 3 -> ( +# 1008 "..\lex.fsl" + newline lexbuf; + if not skip then (COMMENT (LexCont.VerbatimStringInComment(!args.ifdefStack,n,m))) else verbatimStringInComment n m args skip lexbuf +# 2898 "lex.fs" + ) + | 4 -> ( +# 1012 "..\lex.fsl" + EOF (LexCont.VerbatimStringInComment(!args.ifdefStack,n,m)) +# 2903 "lex.fs" + ) + | 5 -> ( +# 1016 "..\lex.fsl" + if not skip then (COMMENT (LexCont.VerbatimStringInComment(!args.ifdefStack,n,m))) else verbatimStringInComment n m args skip lexbuf +# 2908 "lex.fs" + ) + | _ -> failwith "verbatimStringInComment" +(* Rule tripleQuoteStringInComment *) +and _fslex_tripleQuoteStringInComment n m args skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 1021 "..\lex.fsl" + if not skip then (COMMENT (LexCont.Comment(!args.ifdefStack,n,m))) else comment (n,m,args) skip lexbuf +# 2917 "lex.fs" + ) + | 1 -> ( +# 1027 "..\lex.fsl" + if not skip then (COMMENT (LexCont.TripleQuoteStringInComment(!args.ifdefStack,n,m))) else tripleQuoteStringInComment n m args skip lexbuf +# 2922 "lex.fs" + ) + | 2 -> ( +# 1030 "..\lex.fsl" + newline lexbuf; + if not skip then (COMMENT (LexCont.TripleQuoteStringInComment(!args.ifdefStack,n,m))) else tripleQuoteStringInComment n m args skip lexbuf +# 2928 "lex.fs" + ) + | 3 -> ( +# 1034 "..\lex.fsl" + EOF (LexCont.TripleQuoteStringInComment(!args.ifdefStack,n,m)) +# 2933 "lex.fs" + ) + | 4 -> ( +# 1038 "..\lex.fsl" + if not skip then (COMMENT (LexCont.TripleQuoteStringInComment(!args.ifdefStack,n,m))) else tripleQuoteStringInComment n m args skip lexbuf +# 2938 "lex.fs" + ) + | _ -> failwith "tripleQuoteStringInComment" +(* Rule mlOnly *) +and _fslex_mlOnly m args skip _fslex_state lexbuf = + match _fslex_tables.Interpret(_fslex_state,lexbuf) with + | 0 -> ( +# 1043 "..\lex.fsl" + let buf = ByteBuffer.Create 100 + let m2 = lexbuf.LexemeRange + let _ = string (buf,defaultStringFinisher,m2,args) skip lexbuf + if not skip then (COMMENT (LexCont.MLOnly(!args.ifdefStack,m))) else mlOnly m args skip lexbuf +# 2950 "lex.fs" + ) + | 1 -> ( +# 1048 "..\lex.fsl" + newline lexbuf; if not skip then (COMMENT (LexCont.MLOnly(!args.ifdefStack,m))) else mlOnly m args skip lexbuf +# 2955 "lex.fs" + ) + | 2 -> ( +# 1050 "..\lex.fsl" + if not skip then (COMMENT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 2960 "lex.fs" + ) + | 3 -> ( +# 1052 "..\lex.fsl" + if not skip then (COMMENT (LexCont.Token !args.ifdefStack)) else token args skip lexbuf +# 2965 "lex.fs" + ) + | 4 -> ( +# 1054 "..\lex.fsl" + if not skip then (COMMENT (LexCont.MLOnly(!args.ifdefStack,m))) else mlOnly m args skip lexbuf +# 2970 "lex.fs" + ) + | 5 -> ( +# 1056 "..\lex.fsl" + EOF (LexCont.MLOnly(!args.ifdefStack,m)) +# 2975 "lex.fs" + ) + | 6 -> ( +# 1059 "..\lex.fsl" + if not skip then (COMMENT (LexCont.MLOnly(!args.ifdefStack,m))) else mlOnly m args skip lexbuf +# 2980 "lex.fs" + ) + | _ -> failwith "mlOnly" + +# 1060 "..\lex.fsl" + +# 3000000 "lex.fs" diff --git a/src/fsharp/FSharp.Compiler-proto/pars.fs b/src/fsharp/FSharp.Compiler-proto/pars.fs new file mode 100644 index 0000000..59bf646 --- /dev/null +++ b/src/fsharp/FSharp.Compiler-proto/pars.fs @@ -0,0 +1,15742 @@ +// Implementation file for parser generated by fsyacc +module internal Microsoft.FSharp.Compiler.Parser +#nowarn "64";; // turn off warnings that type variables used in production annotations are instantiated to concrete type +open Microsoft.FSharp.Compiler +open Internal.Utilities.Text.Lexing +open Internal.Utilities.Text.Parsing.ParseHelpers +# 1 "..\pars.fsy" + +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +#nowarn "1182" // generated code has lots of unused "parseState" + +open Internal.Utilities + +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library +open Microsoft.FSharp.Compiler +open Internal.Utilities.Text.Parsing + +open System +open Microsoft.FSharp.Compiler.Range +open Microsoft.FSharp.Compiler.Ast +open Microsoft.FSharp.Compiler.Lib +open Microsoft.FSharp.Compiler.PrettyNaming +open Microsoft.FSharp.Compiler.ErrorLogger + +#if DEBUG +let debugPrint(s) = + if Internal.Utilities.Text.Parsing.Flags.debug then + printfn "\n%s" s +#else +let debugPrint(s) = ignore s +#endif + +let exprFromParseError (e:SynExpr) = SynExpr.FromParseError(e,e.Range) +let patFromParseError (e:SynPat) = SynPat.FromParseError(e, e.Range) + +let mkSynOptionalExpr m xopt = + match xopt with + | None -> mkSynLidGet m Ast.FSharpLib.CorePath "None" + | Some x -> SynExpr.App(ExprAtomicFlag.NonAtomic, false, mkSynLidGet m Ast.FSharpLib.CorePath "Some",x,m) + +// record bindings returned by the recdExprBindings rule has shape: +// (binding, separator-before-this-binding) +// this function converts arguments from form +// binding1 (binding2*sep1, binding3*sep2...) sepN +// to form +// binding1*sep1, binding2*sep2 +let rebindRanges first fields lastSep = + let rec run (name, value) l acc = + match l with + | [] -> List.rev ((name, value, lastSep)::acc) + | (f, m)::xs -> run f xs ((name, value, m)::acc) + run first fields [] + +let mkUnderscoreRecdField m = LongIdentWithDots([ident("_", m)], []), false +let mkRecdField lidwd = lidwd, true + +let mkSynDoBinding (vis,strict,expr,m) = + if isSome vis then errorR(Error(FSComp.SR.parsDoCannotHaveVisibilityDeclarations(),m)); + Binding (None, + (if strict then DoBinding else StandaloneExpression), + false,false,[],PreXmlDoc.Empty,SynInfo.emptySynValData, + (if strict then SynPat.Const(SynConst.Unit,m) else SynPat.Wild m), + None,expr,m,NoSequencePointAtDoBinding) + +let mkSynDoDecl (e: SynExpr) = + let spExpr = if IsControlFlowExpression e then NoSequencePointAtDoBinding else SequencePointAtBinding e.Range in + SynModuleDecl.DoExpr(spExpr, e, e.Range) + +let addAttribs attrs p = SynPat.Attrib(p,attrs,p.Range) + + +// This function is called by the generated parser code. Returning initiates error recovery +// It must be called precisely "parse_error_rich" +let parse_error_rich = Some (fun (ctxt: ParseErrorContext<_>) -> + errorR(SyntaxError(box ctxt, ctxt.ParseState.LexBuffer.LexemeRange))) + +let reportParseErrorAt m s = errorR(Error(s,m)) + +let unionRangeWithPos (r:range) p = + let r2 = mkRange r.FileName p p + unionRanges r r2 + +let raiseParseErrorAt m s = + reportParseErrorAt m s; + // This initiates error recovery + raise RecoverableParseError + +let checkEndOfFileError t = + match t with + | LexCont.IfDefSkip(_,_,m) -> reportParseErrorAt m (FSComp.SR.parsEofInHashIf()) + | LexCont.String (_,m) -> reportParseErrorAt m (FSComp.SR.parsEofInString()) + | LexCont.TripleQuoteString (_,m) -> reportParseErrorAt m (FSComp.SR.parsEofInTripleQuoteString()) + | LexCont.VerbatimString (_,m) -> reportParseErrorAt m (FSComp.SR.parsEofInVerbatimString()) + | LexCont.Comment (_,_,m) -> reportParseErrorAt m (FSComp.SR.parsEofInComment()) + | LexCont.SingleLineComment (_,_,m) -> reportParseErrorAt m (FSComp.SR.parsEofInComment()) + | LexCont.StringInComment (_,_,m) -> reportParseErrorAt m (FSComp.SR.parsEofInStringInComment()) + | LexCont.VerbatimStringInComment (_,_,m) -> reportParseErrorAt m (FSComp.SR.parsEofInVerbatimStringInComment()) + | LexCont.TripleQuoteStringInComment (_,_,m) -> reportParseErrorAt m (FSComp.SR.parsEofInTripleQuoteStringInComment()) + | LexCont.MLOnly (_,m) -> reportParseErrorAt m (FSComp.SR.parsEofInIfOcaml()) + | LexCont.EndLine(LexerEndlineContinuation.Skip(_,_,m)) -> reportParseErrorAt m (FSComp.SR.parsEofInDirective()) + | LexCont.EndLine(LexerEndlineContinuation.Token(stack)) + | LexCont.Token(stack) -> + match stack with + | [] -> () + | (_,m) :: _ -> reportParseErrorAt m (FSComp.SR.parsNoHashEndIfFound()) + +// BindingSetPreAttrs(letRange, isRec, isUse, builderFunction, wholeRange) +type BindingSet = BindingSetPreAttrs of range * bool * bool * (SynAttributes -> SynAccess option -> SynAttributes * SynBinding list) * range + +let mkClassMemberLocalBindings(isStatic,initialRangeOpt,attrs,vis,BindingSetPreAttrs(_,isRec,isUse,declsPreAttrs,bindingSetRange)) = + let ignoredFreeAttrs,decls = declsPreAttrs attrs vis + let wholeRange = + match initialRangeOpt with + | None -> bindingSetRange + | Some m -> unionRanges m bindingSetRange + if nonNil ignoredFreeAttrs then warning(Error(FSComp.SR.parsAttributesIgnored(),wholeRange)); + if isUse then errorR(Error(FSComp.SR.parsUseBindingsIllegalInImplicitClassConstructors(),wholeRange)); + SynMemberDefn.LetBindings (decls,isStatic,isRec,wholeRange) + +let mkLocalBindings (mWhole,BindingSetPreAttrs(_,isRec,isUse,declsPreAttrs,_),body) = + let ignoredFreeAttrs,decls = declsPreAttrs [] None + if nonNil ignoredFreeAttrs then warning(Error(FSComp.SR.parsAttributesIgnored(),mWhole)); + SynExpr.LetOrUse (isRec,isUse,decls,body,mWhole) + +let mkDefnBindings (mWhole,BindingSetPreAttrs(_,isRec,isUse,declsPreAttrs,_bindingSetRange),attrs,vis,attrsm) = + if isUse then warning(Error(FSComp.SR.parsUseBindingsIllegalInModules(),mWhole)); + let freeAttrs,decls = declsPreAttrs attrs vis + let letDecls = [ SynModuleDecl.Let (isRec,decls,mWhole) ] + let attrDecls = if nonNil freeAttrs then [ SynModuleDecl.Attributes (freeAttrs,attrsm) ] else [] + attrDecls @ letDecls + +let idOfPat m p = + match p with + | SynPat.Named (SynPat.Wild _,id,false,_,_) -> id + | SynPat.LongIdent(LongIdentWithDots([id],_),_,_,_,_,_) -> id + | _ -> raiseParseErrorAt m (FSComp.SR.parsIntegerForLoopRequiresSimpleIdentifier()) + +let checkForMultipleAugmentations m a1 a2 = + if nonNil a1 && nonNil a2 then raiseParseErrorAt m (FSComp.SR.parsOnlyOneWithAugmentationAllowed()); + a1 @ a2 + +let grabXmlDoc(parseState:IParseState,elemIdx) = + LexbufLocalXmlDocStore.GrabXmlDocBeforeMarker(parseState.LexBuffer,rhs parseState elemIdx) + +let unionRangeWithListBy projectRangeFromThing m listOfThing = + (m, listOfThing) ||> List.fold (fun m thing -> unionRanges m (projectRangeFromThing thing)) + +let rangeOfNonNilAttrs(attrs:SynAttributes) = + (attrs.Head.Range,attrs.Tail) ||> unionRangeWithListBy (fun a -> a.Range) + +let rangeOfLongIdent(lid:LongIdent) = + System.Diagnostics.Debug.Assert(not lid.IsEmpty, "the parser should never produce a long-id that is the empty list") + (lid.Head.idRange,lid) ||> unionRangeWithListBy (fun id -> id.idRange) + + +# 169 "pars.fs" +// This type is the type of tokens accepted by the parser +type token = + | HASH_IF of (range * string * Ast.LexerWhitespaceContinuation) + | HASH_ELSE of (range * string * Ast.LexerWhitespaceContinuation) + | HASH_ENDIF of (range * string * Ast.LexerWhitespaceContinuation) + | COMMENT of (Ast.LexerWhitespaceContinuation) + | WHITESPACE of (Ast.LexerWhitespaceContinuation) + | HASH_LINE of (Ast.LexerWhitespaceContinuation) + | HASH_LIGHT of (Ast.LexerWhitespaceContinuation) + | INACTIVECODE of (Ast.LexerWhitespaceContinuation) + | LINE_COMMENT of (Ast.LexerWhitespaceContinuation) + | STRING_TEXT of (Ast.LexerWhitespaceContinuation) + | EOF of (Ast.LexerWhitespaceContinuation) + | LEX_FAILURE of (string) + | ODUMMY of (token) + | OINTERFACE_MEMBER + | OBLOCKEND + | OBLOCKEND_COMING_SOON + | OBLOCKEND_IS_HERE + | ORIGHT_BLOCK_END + | ODECLEND + | OEND + | OBLOCKSEP + | OBLOCKBEGIN + | ORESET + | OFUN + | OFUNCTION + | OWITH + | OELSE + | OTHEN + | ODO_BANG + | ODO + | OBINDER of (string) + | OLET of (bool) + | HIGH_PRECEDENCE_TYAPP + | HIGH_PRECEDENCE_PAREN_APP + | HIGH_PRECEDENCE_BRACK_APP + | TYPE_COMING_SOON + | TYPE_IS_HERE + | MODULE_COMING_SOON + | MODULE_IS_HERE + | EXTERN + | VOID + | PUBLIC + | PRIVATE + | INTERNAL + | GLOBAL + | STATIC + | MEMBER + | CLASS + | ABSTRACT + | OVERRIDE + | DEFAULT + | CONSTRUCTOR + | INHERIT + | GREATER_RBRACK + | STRUCT + | SIG + | BAR + | RBRACK + | RBRACE + | RBRACE_COMING_SOON + | RBRACE_IS_HERE + | MINUS + | DOLLAR + | LBRACE_LESS + | BAR_RBRACK + | GREATER_RBRACE + | UNDERSCORE + | SEMICOLON_SEMICOLON + | LARROW + | EQUALS + | LBRACK + | LBRACK_BAR + | LBRACK_LESS + | LBRACE + | QMARK + | QMARK_QMARK + | DOT + | COLON + | COLON_COLON + | COLON_GREATER + | COLON_QMARK_GREATER + | COLON_QMARK + | COLON_EQUALS + | SEMICOLON + | WHEN + | WHILE + | WITH + | HASH + | AMP + | AMP_AMP + | QUOTE + | LPAREN + | RPAREN + | RPAREN_COMING_SOON + | RPAREN_IS_HERE + | STAR + | COMMA + | RARROW + | GREATER_BAR_RBRACK + | LPAREN_STAR_RPAREN + | OPEN + | OR + | REC + | THEN + | TO + | TRUE + | TRY + | TYPE + | VAL + | INLINE + | INTERFACE + | INSTANCE + | CONST + | LAZY + | OLAZY + | MATCH + | MUTABLE + | NEW + | OF + | EXCEPTION + | FALSE + | FOR + | FUN + | FUNCTION + | IF + | IN + | JOIN_IN + | FINALLY + | DO_BANG + | AND + | AS + | ASSERT + | OASSERT + | ASR + | BEGIN + | DO + | DONE + | DOWNTO + | ELSE + | ELIF + | END + | DOT_DOT + | BAR_BAR + | UPCAST + | DOWNCAST + | NULL + | RESERVED + | MODULE + | NAMESPACE + | DELEGATE + | CONSTRAINT + | BASE + | LQUOTE of (string * bool) + | RQUOTE of (string * bool) + | RQUOTE_DOT of (string * bool) + | PERCENT_OP of (string) + | BINDER of (string) + | LESS of (bool) + | GREATER of (bool) + | LET of (bool) + | YIELD of (bool) + | YIELD_BANG of (bool) + | BIGNUM of ((string * string)) + | DECIMAL of (System.Decimal) + | CHAR of (char) + | IEEE64 of (double) + | IEEE32 of (single) + | NATIVEINT of (int64) + | UNATIVEINT of (uint64) + | UINT64 of (uint64) + | UINT32 of (uint32) + | UINT16 of (uint16) + | UINT8 of (byte) + | INT64 of (int64 * bool) + | INT32 of (int32 * bool) + | INT32_DOT_DOT of (int32 * bool) + | INT16 of (int16 * bool) + | INT8 of (sbyte * bool) + | FUNKY_OPERATOR_NAME of (string) + | ADJACENT_PREFIX_OP of (string) + | PLUS_MINUS_OP of (string) + | INFIX_AMP_OP of (string) + | INFIX_STAR_DIV_MOD_OP of (string) + | PREFIX_OP of (string) + | INFIX_BAR_OP of (string) + | INFIX_AT_HAT_OP of (string) + | INFIX_COMPARE_OP of (string) + | INFIX_STAR_STAR_OP of (string) + | IDENT of (string) + | KEYWORD_STRING of (string) + | STRING of (string) + | BYTEARRAY of (byte[]) +// This type is used to give symbolic names to token indexes, useful for error messages +type tokenId = + | TOKEN_HASH_IF + | TOKEN_HASH_ELSE + | TOKEN_HASH_ENDIF + | TOKEN_COMMENT + | TOKEN_WHITESPACE + | TOKEN_HASH_LINE + | TOKEN_HASH_LIGHT + | TOKEN_INACTIVECODE + | TOKEN_LINE_COMMENT + | TOKEN_STRING_TEXT + | TOKEN_EOF + | TOKEN_LEX_FAILURE + | TOKEN_ODUMMY + | TOKEN_OINTERFACE_MEMBER + | TOKEN_OBLOCKEND + | TOKEN_OBLOCKEND_COMING_SOON + | TOKEN_OBLOCKEND_IS_HERE + | TOKEN_ORIGHT_BLOCK_END + | TOKEN_ODECLEND + | TOKEN_OEND + | TOKEN_OBLOCKSEP + | TOKEN_OBLOCKBEGIN + | TOKEN_ORESET + | TOKEN_OFUN + | TOKEN_OFUNCTION + | TOKEN_OWITH + | TOKEN_OELSE + | TOKEN_OTHEN + | TOKEN_ODO_BANG + | TOKEN_ODO + | TOKEN_OBINDER + | TOKEN_OLET + | TOKEN_HIGH_PRECEDENCE_TYAPP + | TOKEN_HIGH_PRECEDENCE_PAREN_APP + | TOKEN_HIGH_PRECEDENCE_BRACK_APP + | TOKEN_TYPE_COMING_SOON + | TOKEN_TYPE_IS_HERE + | TOKEN_MODULE_COMING_SOON + | TOKEN_MODULE_IS_HERE + | TOKEN_EXTERN + | TOKEN_VOID + | TOKEN_PUBLIC + | TOKEN_PRIVATE + | TOKEN_INTERNAL + | TOKEN_GLOBAL + | TOKEN_STATIC + | TOKEN_MEMBER + | TOKEN_CLASS + | TOKEN_ABSTRACT + | TOKEN_OVERRIDE + | TOKEN_DEFAULT + | TOKEN_CONSTRUCTOR + | TOKEN_INHERIT + | TOKEN_GREATER_RBRACK + | TOKEN_STRUCT + | TOKEN_SIG + | TOKEN_BAR + | TOKEN_RBRACK + | TOKEN_RBRACE + | TOKEN_RBRACE_COMING_SOON + | TOKEN_RBRACE_IS_HERE + | TOKEN_MINUS + | TOKEN_DOLLAR + | TOKEN_LBRACE_LESS + | TOKEN_BAR_RBRACK + | TOKEN_GREATER_RBRACE + | TOKEN_UNDERSCORE + | TOKEN_SEMICOLON_SEMICOLON + | TOKEN_LARROW + | TOKEN_EQUALS + | TOKEN_LBRACK + | TOKEN_LBRACK_BAR + | TOKEN_LBRACK_LESS + | TOKEN_LBRACE + | TOKEN_QMARK + | TOKEN_QMARK_QMARK + | TOKEN_DOT + | TOKEN_COLON + | TOKEN_COLON_COLON + | TOKEN_COLON_GREATER + | TOKEN_COLON_QMARK_GREATER + | TOKEN_COLON_QMARK + | TOKEN_COLON_EQUALS + | TOKEN_SEMICOLON + | TOKEN_WHEN + | TOKEN_WHILE + | TOKEN_WITH + | TOKEN_HASH + | TOKEN_AMP + | TOKEN_AMP_AMP + | TOKEN_QUOTE + | TOKEN_LPAREN + | TOKEN_RPAREN + | TOKEN_RPAREN_COMING_SOON + | TOKEN_RPAREN_IS_HERE + | TOKEN_STAR + | TOKEN_COMMA + | TOKEN_RARROW + | TOKEN_GREATER_BAR_RBRACK + | TOKEN_LPAREN_STAR_RPAREN + | TOKEN_OPEN + | TOKEN_OR + | TOKEN_REC + | TOKEN_THEN + | TOKEN_TO + | TOKEN_TRUE + | TOKEN_TRY + | TOKEN_TYPE + | TOKEN_VAL + | TOKEN_INLINE + | TOKEN_INTERFACE + | TOKEN_INSTANCE + | TOKEN_CONST + | TOKEN_LAZY + | TOKEN_OLAZY + | TOKEN_MATCH + | TOKEN_MUTABLE + | TOKEN_NEW + | TOKEN_OF + | TOKEN_EXCEPTION + | TOKEN_FALSE + | TOKEN_FOR + | TOKEN_FUN + | TOKEN_FUNCTION + | TOKEN_IF + | TOKEN_IN + | TOKEN_JOIN_IN + | TOKEN_FINALLY + | TOKEN_DO_BANG + | TOKEN_AND + | TOKEN_AS + | TOKEN_ASSERT + | TOKEN_OASSERT + | TOKEN_ASR + | TOKEN_BEGIN + | TOKEN_DO + | TOKEN_DONE + | TOKEN_DOWNTO + | TOKEN_ELSE + | TOKEN_ELIF + | TOKEN_END + | TOKEN_DOT_DOT + | TOKEN_BAR_BAR + | TOKEN_UPCAST + | TOKEN_DOWNCAST + | TOKEN_NULL + | TOKEN_RESERVED + | TOKEN_MODULE + | TOKEN_NAMESPACE + | TOKEN_DELEGATE + | TOKEN_CONSTRAINT + | TOKEN_BASE + | TOKEN_LQUOTE + | TOKEN_RQUOTE + | TOKEN_RQUOTE_DOT + | TOKEN_PERCENT_OP + | TOKEN_BINDER + | TOKEN_LESS + | TOKEN_GREATER + | TOKEN_LET + | TOKEN_YIELD + | TOKEN_YIELD_BANG + | TOKEN_BIGNUM + | TOKEN_DECIMAL + | TOKEN_CHAR + | TOKEN_IEEE64 + | TOKEN_IEEE32 + | TOKEN_NATIVEINT + | TOKEN_UNATIVEINT + | TOKEN_UINT64 + | TOKEN_UINT32 + | TOKEN_UINT16 + | TOKEN_UINT8 + | TOKEN_INT64 + | TOKEN_INT32 + | TOKEN_INT32_DOT_DOT + | TOKEN_INT16 + | TOKEN_INT8 + | TOKEN_FUNKY_OPERATOR_NAME + | TOKEN_ADJACENT_PREFIX_OP + | TOKEN_PLUS_MINUS_OP + | TOKEN_INFIX_AMP_OP + | TOKEN_INFIX_STAR_DIV_MOD_OP + | TOKEN_PREFIX_OP + | TOKEN_INFIX_BAR_OP + | TOKEN_INFIX_AT_HAT_OP + | TOKEN_INFIX_COMPARE_OP + | TOKEN_INFIX_STAR_STAR_OP + | TOKEN_IDENT + | TOKEN_KEYWORD_STRING + | TOKEN_STRING + | TOKEN_BYTEARRAY + | TOKEN_end_of_input + | TOKEN_error +// This type is used to give symbolic names to token indexes, useful for error messages +type nonTerminalId = + | NONTERM__startsignatureFile + | NONTERM__startimplementationFile + | NONTERM__startinteraction + | NONTERM_interaction + | NONTERM_hashDirective + | NONTERM_stringOrKeywordString + | NONTERM_hashDirectiveArg + | NONTERM_hashDirectiveArgs + | NONTERM_interactiveTerminator + | NONTERM_interactiveItemsTerminator + | NONTERM_interactiveModuleDefns + | NONTERM_interactiveExpr + | NONTERM_interactiveHash + | NONTERM_signatureFile + | NONTERM_implementationFile + | NONTERM_moduleIntro + | NONTERM_namespaceIntro + | NONTERM_fileNamespaceSpecs + | NONTERM_fileNamespaceSpecList + | NONTERM_fileNamespaceSpec + | NONTERM_fileNamespaceImpls + | NONTERM_fileNamespaceImplList + | NONTERM_fileNamespaceImpl + | NONTERM_fileModuleSpec + | NONTERM_fileModuleImpl + | NONTERM_moduleSpfnsPossiblyEmptyBlock + | NONTERM_moduleSpfnsPossiblyEmpty + | NONTERM_moduleSpfns + | NONTERM_moduleDefnsOrExprPossiblyEmptyOrBlock + | NONTERM_moduleDefnsOrExprPossiblyEmpty + | NONTERM_moduleDefnsOrExpr + | NONTERM_moduleDefns + | NONTERM_moduleDefnOrDirective + | NONTERM_moduleDefn + | NONTERM_namedModuleAbbrevBlock + | NONTERM_namedModuleDefnBlock + | NONTERM_wrappedNamedModuleDefn + | NONTERM_opt_signature + | NONTERM_tyconDefnAugmentation + | NONTERM_moduleSpfn + | NONTERM_valSpfn + | NONTERM_opt_literalValue + | NONTERM_moduleSpecBlock + | NONTERM_opt_attributes + | NONTERM_attributes + | NONTERM_attributeList + | NONTERM_attributeListElements + | NONTERM_attribute + | NONTERM_attributeTarget + | NONTERM_tyconSpfns + | NONTERM_tyconSpfnList + | NONTERM_tyconSpfn + | NONTERM_tyconSpfnRhsBlock + | NONTERM_tyconSpfnRhs + | NONTERM_tyconClassSpfn + | NONTERM_classSpfnBlockKindUnspecified + | NONTERM_classSpfnBlock + | NONTERM_classSpfnMembers + | NONTERM_classSpfnMembersAtLeastOne + | NONTERM_memberFlags + | NONTERM_memberSpecFlags + | NONTERM_classMemberSpfnGetSet + | NONTERM_classMemberSpfnGetSetElements + | NONTERM_classMemberSpfn + | NONTERM_typeNameInfo + | NONTERM_tyconDefnList + | NONTERM_tyconDefn + | NONTERM_tyconDefnRhsBlock + | NONTERM_tyconDefnRhs + | NONTERM_tyconClassDefn + | NONTERM_classDefnBlockKindUnspecified + | NONTERM_classDefnBlock + | NONTERM_classDefnMembers + | NONTERM_classDefnMembersAtLeastOne + | NONTERM_classDefnMemberGetSet + | NONTERM_classDefnMemberGetSetElements + | NONTERM_classDefnMemberGetSetElement + | NONTERM_memberCore + | NONTERM_abstractMemberFlags + | NONTERM_classDefnMember + | NONTERM_valDefnDecl + | NONTERM_autoPropsDefnDecl + | NONTERM_opt_typ + | NONTERM_atomicPatternLongIdent + | NONTERM_opt_access + | NONTERM_access + | NONTERM_opt_declVisibility + | NONTERM_opt_interfaceImplDefn + | NONTERM_opt_classDefn + | NONTERM_opt_classSpfn + | NONTERM_inheritsDefn + | NONTERM_optAsSpec + | NONTERM_asSpec + | NONTERM_optBaseSpec + | NONTERM_baseSpec + | NONTERM_objectImplementationBlock + | NONTERM_objectImplementationMembers + | NONTERM_objectImplementationMember + | NONTERM_memberOrOverride + | NONTERM_tyconDefnOrSpfnSimpleRepr + | NONTERM_braceFieldDeclList + | NONTERM_inlineAssemblyTyconRepr + | NONTERM_classOrInterfaceOrStruct + | NONTERM_interfaceMember + | NONTERM_tyconNameAndTyparDecls + | NONTERM_prefixTyparDecls + | NONTERM_prefixTyparDeclList + | NONTERM_typarDecl + | NONTERM_postfixTyparDecls + | NONTERM_explicitValTyparDeclsCore + | NONTERM_explicitValTyparDecls + | NONTERM_opt_explicitValTyparDecls + | NONTERM_opt_explicitValTyparDecls2 + | NONTERM_opt_typeConstraints + | NONTERM_typeConstraints + | NONTERM_typeConstraint + | NONTERM_typarAlts + | NONTERM_unionRepr + | NONTERM_barAndgrabXmlDoc + | NONTERM_attrUnionCaseDecls + | NONTERM_attrUnionCaseDecl + | NONTERM_unionCaseName + | NONTERM_firstUnionCaseDeclOfMany + | NONTERM_firstUnionCaseDecl + | NONTERM_unionCaseRepr + | NONTERM_recdFieldDeclList + | NONTERM_recdFieldDecl + | NONTERM_fieldDecl + | NONTERM_exconDefn + | NONTERM_exconSpfn + | NONTERM_exceptionAndGrabDoc + | NONTERM_exconCore + | NONTERM_exconIntro + | NONTERM_exconRepr + | NONTERM_openDecl + | NONTERM_defnBindings + | NONTERM_doBinding + | NONTERM_hardwhiteLetBindings + | NONTERM_hardwhiteDoBinding + | NONTERM_classDefnBindings + | NONTERM_hardwhiteDefnBindingsTerminator + | NONTERM_cPrototype + | NONTERM_cArgs + | NONTERM_cMoreArgs + | NONTERM_cArg + | NONTERM_cType + | NONTERM_cRetType + | NONTERM_localBindings + | NONTERM_moreLocalBindings + | NONTERM_attr_localBinding + | NONTERM_localBinding + | NONTERM_typedExprWithStaticOptimizationsBlock + | NONTERM_typedExprWithStaticOptimizations + | NONTERM_opt_staticOptimizations + | NONTERM_staticOptimization + | NONTERM_staticOptimizationConditions + | NONTERM_staticOptimizationCondition + | NONTERM_rawConstant + | NONTERM_constant + | NONTERM_bindingPattern + | NONTERM_simplePattern + | NONTERM_simplePatternCommaList + | NONTERM_simplePatterns + | NONTERM_headBindingPattern + | NONTERM_tuplePatternElements + | NONTERM_conjPatternElements + | NONTERM_constrPattern + | NONTERM_atomicPatterns + | NONTERM_atomicPattern + | NONTERM_parenPatternBody + | NONTERM_parenPattern + | NONTERM_tupleParenPatternElements + | NONTERM_conjParenPatternElements + | NONTERM_recordPatternElements + | NONTERM_recordPatternElementsAux + | NONTERM_recordPatternElement + | NONTERM_listPatternElements + | NONTERM_typedSeqExprBlock + | NONTERM_declExprBlock + | NONTERM_typedSeqExprBlockR + | NONTERM_typedSeqExpr + | NONTERM_seqExpr + | NONTERM_recover + | NONTERM_declExpr + | NONTERM_dynamicArg + | NONTERM_withClauses + | NONTERM_withPatternClauses + | NONTERM_patternAndGuard + | NONTERM_patternClauses + | NONTERM_patternGuard + | NONTERM_patternResult + | NONTERM_ifExprCases + | NONTERM_ifExprThen + | NONTERM_ifExprElifs + | NONTERM_tupleExpr + | NONTERM_minusExpr + | NONTERM_appExpr + | NONTERM_argExpr + | NONTERM_atomicExpr + | NONTERM_atomicExprQualification + | NONTERM_optRange + | NONTERM_atomicExprAfterType + | NONTERM_beginEndExpr + | NONTERM_quoteExpr + | NONTERM_arrayExpr + | NONTERM_parenExpr + | NONTERM_parenExprBody + | NONTERM_staticallyKnownHeadTypars + | NONTERM_staticallyKnownHeadTyparAlts + | NONTERM_braceExpr + | NONTERM_braceExprBody + | NONTERM_listExprElements + | NONTERM_monadicExprInitial + | NONTERM_rangeSequenceExpr + | NONTERM_monadicSingleLineQualifiersThenArrowThenExprR + | NONTERM_forLoopBinder + | NONTERM_forLoopRange + | NONTERM_inlineAssemblyExpr + | NONTERM_opt_curriedArgExprs + | NONTERM_opt_atomicExprAfterType + | NONTERM_opt_inlineAssemblyTypeArg + | NONTERM_opt_inlineAssemblyReturnTypes + | NONTERM_recdExpr + | NONTERM_opt_seps_recd + | NONTERM_seps_recd + | NONTERM_pathOrUnderscore + | NONTERM_recdExprBindings + | NONTERM_recdBinding + | NONTERM_objExpr + | NONTERM_objExprBaseCall + | NONTERM_opt_objExprBindings + | NONTERM_objExprBindings + | NONTERM_objExprInterfaces + | NONTERM_opt_objExprInterfaces + | NONTERM_objExprInterface + | NONTERM_forLoopDirection + | NONTERM_anonLambdaExpr + | NONTERM_anonMatchingExpr + | NONTERM_typeWithTypeConstraints + | NONTERM_topTypeWithTypeConstraints + | NONTERM_opt_topReturnTypeWithTypeConstraints + | NONTERM_topType + | NONTERM_topTupleType + | NONTERM_topTupleTypeElements + | NONTERM_topAppType + | NONTERM_typ + | NONTERM_tupleType + | NONTERM_tupleOrQuotTypeElements + | NONTERM_tupleTypeElements + | NONTERM_appTypeCon + | NONTERM_appTypeConPower + | NONTERM_appType + | NONTERM_arrayTypeSuffix + | NONTERM_appTypePrefixArguments + | NONTERM_typeArgListElements + | NONTERM_powerType + | NONTERM_appTypeNonAtomicDeprecated + | NONTERM_powerTypeNonAtomicDeprecated + | NONTERM_atomType + | NONTERM_typeArgsNoHpaDeprecated + | NONTERM_typeArgsActual + | NONTERM_typeArgActual + | NONTERM_typeArgActualOrDummyIfEmpty + | NONTERM_dummyTypeArg + | NONTERM_measureTypeArg + | NONTERM_measureTypeAtom + | NONTERM_measureTypePower + | NONTERM_measureTypeSeq + | NONTERM_measureTypeExpr + | NONTERM_typar + | NONTERM_staticallyKnownHeadTypar + | NONTERM_ident + | NONTERM_path + | NONTERM_opName + | NONTERM_operatorName + | NONTERM_barName + | NONTERM_barNames + | NONTERM_identOrOp + | NONTERM_pathOp + | NONTERM_nameop + | NONTERM_topSeparator + | NONTERM_topSeparators + | NONTERM_interactiveSeparator + | NONTERM_interactiveSeparators + | NONTERM_opt_interactiveSeparators + | NONTERM_opt_topSeparators + | NONTERM_seps + | NONTERM_declEnd + | NONTERM_opt_declEnd + | NONTERM_opt_ODECLEND + | NONTERM_deprecated_opt_equals + | NONTERM_opt_OBLOCKSEP + | NONTERM_opt_seps + | NONTERM_opt_rec + | NONTERM_opt_bar + | NONTERM_opt_inline + | NONTERM_opt_mutable + | NONTERM_doToken + | NONTERM_doneDeclEnd + | NONTERM_structOrBegin + | NONTERM_sigOrBegin + | NONTERM_colonOrEquals + | NONTERM_opt_HASH + | NONTERM_opt_HIGH_PRECEDENCE_APP + | NONTERM_opt_HIGH_PRECEDENCE_TYAPP + | NONTERM_type_keyword + | NONTERM_module_keyword + | NONTERM_rbrace + | NONTERM_rparen + | NONTERM_oblockend + | NONTERM_ends_other_than_rparen_coming_soon_or_recover + | NONTERM_ends_coming_soon_or_recover + +// This function maps tokens to integers indexes +let tagOfToken (t:token) = + match t with + | HASH_IF _ -> 0 + | HASH_ELSE _ -> 1 + | HASH_ENDIF _ -> 2 + | COMMENT _ -> 3 + | WHITESPACE _ -> 4 + | HASH_LINE _ -> 5 + | HASH_LIGHT _ -> 6 + | INACTIVECODE _ -> 7 + | LINE_COMMENT _ -> 8 + | STRING_TEXT _ -> 9 + | EOF _ -> 10 + | LEX_FAILURE _ -> 11 + | ODUMMY _ -> 12 + | OINTERFACE_MEMBER -> 13 + | OBLOCKEND -> 14 + | OBLOCKEND_COMING_SOON -> 15 + | OBLOCKEND_IS_HERE -> 16 + | ORIGHT_BLOCK_END -> 17 + | ODECLEND -> 18 + | OEND -> 19 + | OBLOCKSEP -> 20 + | OBLOCKBEGIN -> 21 + | ORESET -> 22 + | OFUN -> 23 + | OFUNCTION -> 24 + | OWITH -> 25 + | OELSE -> 26 + | OTHEN -> 27 + | ODO_BANG -> 28 + | ODO -> 29 + | OBINDER _ -> 30 + | OLET _ -> 31 + | HIGH_PRECEDENCE_TYAPP -> 32 + | HIGH_PRECEDENCE_PAREN_APP -> 33 + | HIGH_PRECEDENCE_BRACK_APP -> 34 + | TYPE_COMING_SOON -> 35 + | TYPE_IS_HERE -> 36 + | MODULE_COMING_SOON -> 37 + | MODULE_IS_HERE -> 38 + | EXTERN -> 39 + | VOID -> 40 + | PUBLIC -> 41 + | PRIVATE -> 42 + | INTERNAL -> 43 + | GLOBAL -> 44 + | STATIC -> 45 + | MEMBER -> 46 + | CLASS -> 47 + | ABSTRACT -> 48 + | OVERRIDE -> 49 + | DEFAULT -> 50 + | CONSTRUCTOR -> 51 + | INHERIT -> 52 + | GREATER_RBRACK -> 53 + | STRUCT -> 54 + | SIG -> 55 + | BAR -> 56 + | RBRACK -> 57 + | RBRACE -> 58 + | RBRACE_COMING_SOON -> 59 + | RBRACE_IS_HERE -> 60 + | MINUS -> 61 + | DOLLAR -> 62 + | LBRACE_LESS -> 63 + | BAR_RBRACK -> 64 + | GREATER_RBRACE -> 65 + | UNDERSCORE -> 66 + | SEMICOLON_SEMICOLON -> 67 + | LARROW -> 68 + | EQUALS -> 69 + | LBRACK -> 70 + | LBRACK_BAR -> 71 + | LBRACK_LESS -> 72 + | LBRACE -> 73 + | QMARK -> 74 + | QMARK_QMARK -> 75 + | DOT -> 76 + | COLON -> 77 + | COLON_COLON -> 78 + | COLON_GREATER -> 79 + | COLON_QMARK_GREATER -> 80 + | COLON_QMARK -> 81 + | COLON_EQUALS -> 82 + | SEMICOLON -> 83 + | WHEN -> 84 + | WHILE -> 85 + | WITH -> 86 + | HASH -> 87 + | AMP -> 88 + | AMP_AMP -> 89 + | QUOTE -> 90 + | LPAREN -> 91 + | RPAREN -> 92 + | RPAREN_COMING_SOON -> 93 + | RPAREN_IS_HERE -> 94 + | STAR -> 95 + | COMMA -> 96 + | RARROW -> 97 + | GREATER_BAR_RBRACK -> 98 + | LPAREN_STAR_RPAREN -> 99 + | OPEN -> 100 + | OR -> 101 + | REC -> 102 + | THEN -> 103 + | TO -> 104 + | TRUE -> 105 + | TRY -> 106 + | TYPE -> 107 + | VAL -> 108 + | INLINE -> 109 + | INTERFACE -> 110 + | INSTANCE -> 111 + | CONST -> 112 + | LAZY -> 113 + | OLAZY -> 114 + | MATCH -> 115 + | MUTABLE -> 116 + | NEW -> 117 + | OF -> 118 + | EXCEPTION -> 119 + | FALSE -> 120 + | FOR -> 121 + | FUN -> 122 + | FUNCTION -> 123 + | IF -> 124 + | IN -> 125 + | JOIN_IN -> 126 + | FINALLY -> 127 + | DO_BANG -> 128 + | AND -> 129 + | AS -> 130 + | ASSERT -> 131 + | OASSERT -> 132 + | ASR -> 133 + | BEGIN -> 134 + | DO -> 135 + | DONE -> 136 + | DOWNTO -> 137 + | ELSE -> 138 + | ELIF -> 139 + | END -> 140 + | DOT_DOT -> 141 + | BAR_BAR -> 142 + | UPCAST -> 143 + | DOWNCAST -> 144 + | NULL -> 145 + | RESERVED -> 146 + | MODULE -> 147 + | NAMESPACE -> 148 + | DELEGATE -> 149 + | CONSTRAINT -> 150 + | BASE -> 151 + | LQUOTE _ -> 152 + | RQUOTE _ -> 153 + | RQUOTE_DOT _ -> 154 + | PERCENT_OP _ -> 155 + | BINDER _ -> 156 + | LESS _ -> 157 + | GREATER _ -> 158 + | LET _ -> 159 + | YIELD _ -> 160 + | YIELD_BANG _ -> 161 + | BIGNUM _ -> 162 + | DECIMAL _ -> 163 + | CHAR _ -> 164 + | IEEE64 _ -> 165 + | IEEE32 _ -> 166 + | NATIVEINT _ -> 167 + | UNATIVEINT _ -> 168 + | UINT64 _ -> 169 + | UINT32 _ -> 170 + | UINT16 _ -> 171 + | UINT8 _ -> 172 + | INT64 _ -> 173 + | INT32 _ -> 174 + | INT32_DOT_DOT _ -> 175 + | INT16 _ -> 176 + | INT8 _ -> 177 + | FUNKY_OPERATOR_NAME _ -> 178 + | ADJACENT_PREFIX_OP _ -> 179 + | PLUS_MINUS_OP _ -> 180 + | INFIX_AMP_OP _ -> 181 + | INFIX_STAR_DIV_MOD_OP _ -> 182 + | PREFIX_OP _ -> 183 + | INFIX_BAR_OP _ -> 184 + | INFIX_AT_HAT_OP _ -> 185 + | INFIX_COMPARE_OP _ -> 186 + | INFIX_STAR_STAR_OP _ -> 187 + | IDENT _ -> 188 + | KEYWORD_STRING _ -> 189 + | STRING _ -> 190 + | BYTEARRAY _ -> 191 + +// This function maps integers indexes to symbolic token ids +let tokenTagToTokenId (tokenIdx:int) = + match tokenIdx with + | 0 -> TOKEN_HASH_IF + | 1 -> TOKEN_HASH_ELSE + | 2 -> TOKEN_HASH_ENDIF + | 3 -> TOKEN_COMMENT + | 4 -> TOKEN_WHITESPACE + | 5 -> TOKEN_HASH_LINE + | 6 -> TOKEN_HASH_LIGHT + | 7 -> TOKEN_INACTIVECODE + | 8 -> TOKEN_LINE_COMMENT + | 9 -> TOKEN_STRING_TEXT + | 10 -> TOKEN_EOF + | 11 -> TOKEN_LEX_FAILURE + | 12 -> TOKEN_ODUMMY + | 13 -> TOKEN_OINTERFACE_MEMBER + | 14 -> TOKEN_OBLOCKEND + | 15 -> TOKEN_OBLOCKEND_COMING_SOON + | 16 -> TOKEN_OBLOCKEND_IS_HERE + | 17 -> TOKEN_ORIGHT_BLOCK_END + | 18 -> TOKEN_ODECLEND + | 19 -> TOKEN_OEND + | 20 -> TOKEN_OBLOCKSEP + | 21 -> TOKEN_OBLOCKBEGIN + | 22 -> TOKEN_ORESET + | 23 -> TOKEN_OFUN + | 24 -> TOKEN_OFUNCTION + | 25 -> TOKEN_OWITH + | 26 -> TOKEN_OELSE + | 27 -> TOKEN_OTHEN + | 28 -> TOKEN_ODO_BANG + | 29 -> TOKEN_ODO + | 30 -> TOKEN_OBINDER + | 31 -> TOKEN_OLET + | 32 -> TOKEN_HIGH_PRECEDENCE_TYAPP + | 33 -> TOKEN_HIGH_PRECEDENCE_PAREN_APP + | 34 -> TOKEN_HIGH_PRECEDENCE_BRACK_APP + | 35 -> TOKEN_TYPE_COMING_SOON + | 36 -> TOKEN_TYPE_IS_HERE + | 37 -> TOKEN_MODULE_COMING_SOON + | 38 -> TOKEN_MODULE_IS_HERE + | 39 -> TOKEN_EXTERN + | 40 -> TOKEN_VOID + | 41 -> TOKEN_PUBLIC + | 42 -> TOKEN_PRIVATE + | 43 -> TOKEN_INTERNAL + | 44 -> TOKEN_GLOBAL + | 45 -> TOKEN_STATIC + | 46 -> TOKEN_MEMBER + | 47 -> TOKEN_CLASS + | 48 -> TOKEN_ABSTRACT + | 49 -> TOKEN_OVERRIDE + | 50 -> TOKEN_DEFAULT + | 51 -> TOKEN_CONSTRUCTOR + | 52 -> TOKEN_INHERIT + | 53 -> TOKEN_GREATER_RBRACK + | 54 -> TOKEN_STRUCT + | 55 -> TOKEN_SIG + | 56 -> TOKEN_BAR + | 57 -> TOKEN_RBRACK + | 58 -> TOKEN_RBRACE + | 59 -> TOKEN_RBRACE_COMING_SOON + | 60 -> TOKEN_RBRACE_IS_HERE + | 61 -> TOKEN_MINUS + | 62 -> TOKEN_DOLLAR + | 63 -> TOKEN_LBRACE_LESS + | 64 -> TOKEN_BAR_RBRACK + | 65 -> TOKEN_GREATER_RBRACE + | 66 -> TOKEN_UNDERSCORE + | 67 -> TOKEN_SEMICOLON_SEMICOLON + | 68 -> TOKEN_LARROW + | 69 -> TOKEN_EQUALS + | 70 -> TOKEN_LBRACK + | 71 -> TOKEN_LBRACK_BAR + | 72 -> TOKEN_LBRACK_LESS + | 73 -> TOKEN_LBRACE + | 74 -> TOKEN_QMARK + | 75 -> TOKEN_QMARK_QMARK + | 76 -> TOKEN_DOT + | 77 -> TOKEN_COLON + | 78 -> TOKEN_COLON_COLON + | 79 -> TOKEN_COLON_GREATER + | 80 -> TOKEN_COLON_QMARK_GREATER + | 81 -> TOKEN_COLON_QMARK + | 82 -> TOKEN_COLON_EQUALS + | 83 -> TOKEN_SEMICOLON + | 84 -> TOKEN_WHEN + | 85 -> TOKEN_WHILE + | 86 -> TOKEN_WITH + | 87 -> TOKEN_HASH + | 88 -> TOKEN_AMP + | 89 -> TOKEN_AMP_AMP + | 90 -> TOKEN_QUOTE + | 91 -> TOKEN_LPAREN + | 92 -> TOKEN_RPAREN + | 93 -> TOKEN_RPAREN_COMING_SOON + | 94 -> TOKEN_RPAREN_IS_HERE + | 95 -> TOKEN_STAR + | 96 -> TOKEN_COMMA + | 97 -> TOKEN_RARROW + | 98 -> TOKEN_GREATER_BAR_RBRACK + | 99 -> TOKEN_LPAREN_STAR_RPAREN + | 100 -> TOKEN_OPEN + | 101 -> TOKEN_OR + | 102 -> TOKEN_REC + | 103 -> TOKEN_THEN + | 104 -> TOKEN_TO + | 105 -> TOKEN_TRUE + | 106 -> TOKEN_TRY + | 107 -> TOKEN_TYPE + | 108 -> TOKEN_VAL + | 109 -> TOKEN_INLINE + | 110 -> TOKEN_INTERFACE + | 111 -> TOKEN_INSTANCE + | 112 -> TOKEN_CONST + | 113 -> TOKEN_LAZY + | 114 -> TOKEN_OLAZY + | 115 -> TOKEN_MATCH + | 116 -> TOKEN_MUTABLE + | 117 -> TOKEN_NEW + | 118 -> TOKEN_OF + | 119 -> TOKEN_EXCEPTION + | 120 -> TOKEN_FALSE + | 121 -> TOKEN_FOR + | 122 -> TOKEN_FUN + | 123 -> TOKEN_FUNCTION + | 124 -> TOKEN_IF + | 125 -> TOKEN_IN + | 126 -> TOKEN_JOIN_IN + | 127 -> TOKEN_FINALLY + | 128 -> TOKEN_DO_BANG + | 129 -> TOKEN_AND + | 130 -> TOKEN_AS + | 131 -> TOKEN_ASSERT + | 132 -> TOKEN_OASSERT + | 133 -> TOKEN_ASR + | 134 -> TOKEN_BEGIN + | 135 -> TOKEN_DO + | 136 -> TOKEN_DONE + | 137 -> TOKEN_DOWNTO + | 138 -> TOKEN_ELSE + | 139 -> TOKEN_ELIF + | 140 -> TOKEN_END + | 141 -> TOKEN_DOT_DOT + | 142 -> TOKEN_BAR_BAR + | 143 -> TOKEN_UPCAST + | 144 -> TOKEN_DOWNCAST + | 145 -> TOKEN_NULL + | 146 -> TOKEN_RESERVED + | 147 -> TOKEN_MODULE + | 148 -> TOKEN_NAMESPACE + | 149 -> TOKEN_DELEGATE + | 150 -> TOKEN_CONSTRAINT + | 151 -> TOKEN_BASE + | 152 -> TOKEN_LQUOTE + | 153 -> TOKEN_RQUOTE + | 154 -> TOKEN_RQUOTE_DOT + | 155 -> TOKEN_PERCENT_OP + | 156 -> TOKEN_BINDER + | 157 -> TOKEN_LESS + | 158 -> TOKEN_GREATER + | 159 -> TOKEN_LET + | 160 -> TOKEN_YIELD + | 161 -> TOKEN_YIELD_BANG + | 162 -> TOKEN_BIGNUM + | 163 -> TOKEN_DECIMAL + | 164 -> TOKEN_CHAR + | 165 -> TOKEN_IEEE64 + | 166 -> TOKEN_IEEE32 + | 167 -> TOKEN_NATIVEINT + | 168 -> TOKEN_UNATIVEINT + | 169 -> TOKEN_UINT64 + | 170 -> TOKEN_UINT32 + | 171 -> TOKEN_UINT16 + | 172 -> TOKEN_UINT8 + | 173 -> TOKEN_INT64 + | 174 -> TOKEN_INT32 + | 175 -> TOKEN_INT32_DOT_DOT + | 176 -> TOKEN_INT16 + | 177 -> TOKEN_INT8 + | 178 -> TOKEN_FUNKY_OPERATOR_NAME + | 179 -> TOKEN_ADJACENT_PREFIX_OP + | 180 -> TOKEN_PLUS_MINUS_OP + | 181 -> TOKEN_INFIX_AMP_OP + | 182 -> TOKEN_INFIX_STAR_DIV_MOD_OP + | 183 -> TOKEN_PREFIX_OP + | 184 -> TOKEN_INFIX_BAR_OP + | 185 -> TOKEN_INFIX_AT_HAT_OP + | 186 -> TOKEN_INFIX_COMPARE_OP + | 187 -> TOKEN_INFIX_STAR_STAR_OP + | 188 -> TOKEN_IDENT + | 189 -> TOKEN_KEYWORD_STRING + | 190 -> TOKEN_STRING + | 191 -> TOKEN_BYTEARRAY + | 194 -> TOKEN_end_of_input + | 192 -> TOKEN_error + | _ -> failwith "tokenTagToTokenId: bad token" + +/// This function maps production indexes returned in syntax errors to strings representing the non terminal that would be produced by that production +let prodIdxToNonTerminal (prodIdx:int) = + match prodIdx with + | 0 -> NONTERM__startsignatureFile + | 1 -> NONTERM__startimplementationFile + | 2 -> NONTERM__startinteraction + | 3 -> NONTERM_interaction + | 4 -> NONTERM_interaction + | 5 -> NONTERM_interaction + | 6 -> NONTERM_hashDirective + | 7 -> NONTERM_stringOrKeywordString + | 8 -> NONTERM_stringOrKeywordString + | 9 -> NONTERM_hashDirectiveArg + | 10 -> NONTERM_hashDirectiveArgs + | 11 -> NONTERM_hashDirectiveArgs + | 12 -> NONTERM_interactiveTerminator + | 13 -> NONTERM_interactiveTerminator + | 14 -> NONTERM_interactiveItemsTerminator + | 15 -> NONTERM_interactiveItemsTerminator + | 16 -> NONTERM_interactiveItemsTerminator + | 17 -> NONTERM_interactiveItemsTerminator + | 18 -> NONTERM_interactiveItemsTerminator + | 19 -> NONTERM_interactiveItemsTerminator + | 20 -> NONTERM_interactiveItemsTerminator + | 21 -> NONTERM_interactiveModuleDefns + | 22 -> NONTERM_interactiveModuleDefns + | 23 -> NONTERM_interactiveExpr + | 24 -> NONTERM_interactiveHash + | 25 -> NONTERM_signatureFile + | 26 -> NONTERM_signatureFile + | 27 -> NONTERM_signatureFile + | 28 -> NONTERM_implementationFile + | 29 -> NONTERM_implementationFile + | 30 -> NONTERM_implementationFile + | 31 -> NONTERM_moduleIntro + | 32 -> NONTERM_namespaceIntro + | 33 -> NONTERM_fileNamespaceSpecs + | 34 -> NONTERM_fileNamespaceSpecs + | 35 -> NONTERM_fileNamespaceSpecList + | 36 -> NONTERM_fileNamespaceSpecList + | 37 -> NONTERM_fileNamespaceSpec + | 38 -> NONTERM_fileNamespaceImpls + | 39 -> NONTERM_fileNamespaceImpls + | 40 -> NONTERM_fileNamespaceImplList + | 41 -> NONTERM_fileNamespaceImplList + | 42 -> NONTERM_fileNamespaceImpl + | 43 -> NONTERM_fileModuleSpec + | 44 -> NONTERM_fileModuleSpec + | 45 -> NONTERM_fileModuleImpl + | 46 -> NONTERM_fileModuleImpl + | 47 -> NONTERM_moduleSpfnsPossiblyEmptyBlock + | 48 -> NONTERM_moduleSpfnsPossiblyEmptyBlock + | 49 -> NONTERM_moduleSpfnsPossiblyEmptyBlock + | 50 -> NONTERM_moduleSpfnsPossiblyEmptyBlock + | 51 -> NONTERM_moduleSpfnsPossiblyEmpty + | 52 -> NONTERM_moduleSpfnsPossiblyEmpty + | 53 -> NONTERM_moduleSpfnsPossiblyEmpty + | 54 -> NONTERM_moduleSpfns + | 55 -> NONTERM_moduleSpfns + | 56 -> NONTERM_moduleSpfns + | 57 -> NONTERM_moduleDefnsOrExprPossiblyEmptyOrBlock + | 58 -> NONTERM_moduleDefnsOrExprPossiblyEmptyOrBlock + | 59 -> NONTERM_moduleDefnsOrExprPossiblyEmptyOrBlock + | 60 -> NONTERM_moduleDefnsOrExprPossiblyEmptyOrBlock + | 61 -> NONTERM_moduleDefnsOrExprPossiblyEmpty + | 62 -> NONTERM_moduleDefnsOrExprPossiblyEmpty + | 63 -> NONTERM_moduleDefnsOrExpr + | 64 -> NONTERM_moduleDefnsOrExpr + | 65 -> NONTERM_moduleDefnsOrExpr + | 66 -> NONTERM_moduleDefnsOrExpr + | 67 -> NONTERM_moduleDefnsOrExpr + | 68 -> NONTERM_moduleDefns + | 69 -> NONTERM_moduleDefns + | 70 -> NONTERM_moduleDefns + | 71 -> NONTERM_moduleDefns + | 72 -> NONTERM_moduleDefns + | 73 -> NONTERM_moduleDefnOrDirective + | 74 -> NONTERM_moduleDefnOrDirective + | 75 -> NONTERM_moduleDefn + | 76 -> NONTERM_moduleDefn + | 77 -> NONTERM_moduleDefn + | 78 -> NONTERM_moduleDefn + | 79 -> NONTERM_moduleDefn + | 80 -> NONTERM_moduleDefn + | 81 -> NONTERM_moduleDefn + | 82 -> NONTERM_moduleDefn + | 83 -> NONTERM_namedModuleAbbrevBlock + | 84 -> NONTERM_namedModuleAbbrevBlock + | 85 -> NONTERM_namedModuleDefnBlock + | 86 -> NONTERM_namedModuleDefnBlock + | 87 -> NONTERM_namedModuleDefnBlock + | 88 -> NONTERM_namedModuleDefnBlock + | 89 -> NONTERM_namedModuleDefnBlock + | 90 -> NONTERM_namedModuleDefnBlock + | 91 -> NONTERM_namedModuleDefnBlock + | 92 -> NONTERM_wrappedNamedModuleDefn + | 93 -> NONTERM_wrappedNamedModuleDefn + | 94 -> NONTERM_wrappedNamedModuleDefn + | 95 -> NONTERM_opt_signature + | 96 -> NONTERM_tyconDefnAugmentation + | 97 -> NONTERM_moduleSpfn + | 98 -> NONTERM_moduleSpfn + | 99 -> NONTERM_moduleSpfn + | 100 -> NONTERM_moduleSpfn + | 101 -> NONTERM_moduleSpfn + | 102 -> NONTERM_moduleSpfn + | 103 -> NONTERM_moduleSpfn + | 104 -> NONTERM_valSpfn + | 105 -> NONTERM_opt_literalValue + | 106 -> NONTERM_opt_literalValue + | 107 -> NONTERM_opt_literalValue + | 108 -> NONTERM_moduleSpecBlock + | 109 -> NONTERM_moduleSpecBlock + | 110 -> NONTERM_moduleSpecBlock + | 111 -> NONTERM_opt_attributes + | 112 -> NONTERM_opt_attributes + | 113 -> NONTERM_attributes + | 114 -> NONTERM_attributes + | 115 -> NONTERM_attributeList + | 116 -> NONTERM_attributeList + | 117 -> NONTERM_attributeList + | 118 -> NONTERM_attributeList + | 119 -> NONTERM_attributeListElements + | 120 -> NONTERM_attributeListElements + | 121 -> NONTERM_attribute + | 122 -> NONTERM_attribute + | 123 -> NONTERM_attribute + | 124 -> NONTERM_attributeTarget + | 125 -> NONTERM_attributeTarget + | 126 -> NONTERM_attributeTarget + | 127 -> NONTERM_attributeTarget + | 128 -> NONTERM_tyconSpfns + | 129 -> NONTERM_tyconSpfnList + | 130 -> NONTERM_tyconSpfnList + | 131 -> NONTERM_tyconSpfn + | 132 -> NONTERM_tyconSpfn + | 133 -> NONTERM_tyconSpfnRhsBlock + | 134 -> NONTERM_tyconSpfnRhsBlock + | 135 -> NONTERM_tyconSpfnRhs + | 136 -> NONTERM_tyconSpfnRhs + | 137 -> NONTERM_tyconSpfnRhs + | 138 -> NONTERM_tyconClassSpfn + | 139 -> NONTERM_tyconClassSpfn + | 140 -> NONTERM_tyconClassSpfn + | 141 -> NONTERM_tyconClassSpfn + | 142 -> NONTERM_classSpfnBlockKindUnspecified + | 143 -> NONTERM_classSpfnBlockKindUnspecified + | 144 -> NONTERM_classSpfnBlockKindUnspecified + | 145 -> NONTERM_classSpfnBlockKindUnspecified + | 146 -> NONTERM_classSpfnBlock + | 147 -> NONTERM_classSpfnBlock + | 148 -> NONTERM_classSpfnBlock + | 149 -> NONTERM_classSpfnMembers + | 150 -> NONTERM_classSpfnMembers + | 151 -> NONTERM_classSpfnMembersAtLeastOne + | 152 -> NONTERM_memberFlags + | 153 -> NONTERM_memberFlags + | 154 -> NONTERM_memberFlags + | 155 -> NONTERM_memberFlags + | 156 -> NONTERM_memberSpecFlags + | 157 -> NONTERM_memberSpecFlags + | 158 -> NONTERM_memberSpecFlags + | 159 -> NONTERM_classMemberSpfnGetSet + | 160 -> NONTERM_classMemberSpfnGetSet + | 161 -> NONTERM_classMemberSpfnGetSet + | 162 -> NONTERM_classMemberSpfnGetSet + | 163 -> NONTERM_classMemberSpfnGetSetElements + | 164 -> NONTERM_classMemberSpfnGetSetElements + | 165 -> NONTERM_classMemberSpfn + | 166 -> NONTERM_classMemberSpfn + | 167 -> NONTERM_classMemberSpfn + | 168 -> NONTERM_classMemberSpfn + | 169 -> NONTERM_classMemberSpfn + | 170 -> NONTERM_classMemberSpfn + | 171 -> NONTERM_classMemberSpfn + | 172 -> NONTERM_typeNameInfo + | 173 -> NONTERM_tyconDefnList + | 174 -> NONTERM_tyconDefnList + | 175 -> NONTERM_tyconDefn + | 176 -> NONTERM_tyconDefn + | 177 -> NONTERM_tyconDefn + | 178 -> NONTERM_tyconDefn + | 179 -> NONTERM_tyconDefnRhsBlock + | 180 -> NONTERM_tyconDefnRhsBlock + | 181 -> NONTERM_tyconDefnRhsBlock + | 182 -> NONTERM_tyconDefnRhs + | 183 -> NONTERM_tyconDefnRhs + | 184 -> NONTERM_tyconDefnRhs + | 185 -> NONTERM_tyconClassDefn + | 186 -> NONTERM_tyconClassDefn + | 187 -> NONTERM_tyconClassDefn + | 188 -> NONTERM_tyconClassDefn + | 189 -> NONTERM_classDefnBlockKindUnspecified + | 190 -> NONTERM_classDefnBlockKindUnspecified + | 191 -> NONTERM_classDefnBlock + | 192 -> NONTERM_classDefnBlock + | 193 -> NONTERM_classDefnBlock + | 194 -> NONTERM_classDefnMembers + | 195 -> NONTERM_classDefnMembers + | 196 -> NONTERM_classDefnMembers + | 197 -> NONTERM_classDefnMembersAtLeastOne + | 198 -> NONTERM_classDefnMemberGetSet + | 199 -> NONTERM_classDefnMemberGetSet + | 200 -> NONTERM_classDefnMemberGetSet + | 201 -> NONTERM_classDefnMemberGetSetElements + | 202 -> NONTERM_classDefnMemberGetSetElements + | 203 -> NONTERM_classDefnMemberGetSetElement + | 204 -> NONTERM_memberCore + | 205 -> NONTERM_memberCore + | 206 -> NONTERM_abstractMemberFlags + | 207 -> NONTERM_abstractMemberFlags + | 208 -> NONTERM_classDefnMember + | 209 -> NONTERM_classDefnMember + | 210 -> NONTERM_classDefnMember + | 211 -> NONTERM_classDefnMember + | 212 -> NONTERM_classDefnMember + | 213 -> NONTERM_classDefnMember + | 214 -> NONTERM_classDefnMember + | 215 -> NONTERM_classDefnMember + | 216 -> NONTERM_classDefnMember + | 217 -> NONTERM_classDefnMember + | 218 -> NONTERM_classDefnMember + | 219 -> NONTERM_valDefnDecl + | 220 -> NONTERM_autoPropsDefnDecl + | 221 -> NONTERM_opt_typ + | 222 -> NONTERM_opt_typ + | 223 -> NONTERM_atomicPatternLongIdent + | 224 -> NONTERM_atomicPatternLongIdent + | 225 -> NONTERM_atomicPatternLongIdent + | 226 -> NONTERM_opt_access + | 227 -> NONTERM_opt_access + | 228 -> NONTERM_access + | 229 -> NONTERM_access + | 230 -> NONTERM_access + | 231 -> NONTERM_opt_declVisibility + | 232 -> NONTERM_opt_declVisibility + | 233 -> NONTERM_opt_interfaceImplDefn + | 234 -> NONTERM_opt_interfaceImplDefn + | 235 -> NONTERM_opt_classDefn + | 236 -> NONTERM_opt_classDefn + | 237 -> NONTERM_opt_classSpfn + | 238 -> NONTERM_opt_classSpfn + | 239 -> NONTERM_inheritsDefn + | 240 -> NONTERM_inheritsDefn + | 241 -> NONTERM_inheritsDefn + | 242 -> NONTERM_optAsSpec + | 243 -> NONTERM_optAsSpec + | 244 -> NONTERM_asSpec + | 245 -> NONTERM_optBaseSpec + | 246 -> NONTERM_optBaseSpec + | 247 -> NONTERM_baseSpec + | 248 -> NONTERM_baseSpec + | 249 -> NONTERM_objectImplementationBlock + | 250 -> NONTERM_objectImplementationBlock + | 251 -> NONTERM_objectImplementationBlock + | 252 -> NONTERM_objectImplementationMembers + | 253 -> NONTERM_objectImplementationMembers + | 254 -> NONTERM_objectImplementationMember + | 255 -> NONTERM_objectImplementationMember + | 256 -> NONTERM_objectImplementationMember + | 257 -> NONTERM_objectImplementationMember + | 258 -> NONTERM_memberOrOverride + | 259 -> NONTERM_memberOrOverride + | 260 -> NONTERM_tyconDefnOrSpfnSimpleRepr + | 261 -> NONTERM_tyconDefnOrSpfnSimpleRepr + | 262 -> NONTERM_tyconDefnOrSpfnSimpleRepr + | 263 -> NONTERM_tyconDefnOrSpfnSimpleRepr + | 264 -> NONTERM_tyconDefnOrSpfnSimpleRepr + | 265 -> NONTERM_braceFieldDeclList + | 266 -> NONTERM_braceFieldDeclList + | 267 -> NONTERM_braceFieldDeclList + | 268 -> NONTERM_inlineAssemblyTyconRepr + | 269 -> NONTERM_classOrInterfaceOrStruct + | 270 -> NONTERM_classOrInterfaceOrStruct + | 271 -> NONTERM_classOrInterfaceOrStruct + | 272 -> NONTERM_interfaceMember + | 273 -> NONTERM_interfaceMember + | 274 -> NONTERM_tyconNameAndTyparDecls + | 275 -> NONTERM_tyconNameAndTyparDecls + | 276 -> NONTERM_tyconNameAndTyparDecls + | 277 -> NONTERM_prefixTyparDecls + | 278 -> NONTERM_prefixTyparDecls + | 279 -> NONTERM_prefixTyparDeclList + | 280 -> NONTERM_prefixTyparDeclList + | 281 -> NONTERM_typarDecl + | 282 -> NONTERM_postfixTyparDecls + | 283 -> NONTERM_explicitValTyparDeclsCore + | 284 -> NONTERM_explicitValTyparDeclsCore + | 285 -> NONTERM_explicitValTyparDeclsCore + | 286 -> NONTERM_explicitValTyparDecls + | 287 -> NONTERM_opt_explicitValTyparDecls + | 288 -> NONTERM_opt_explicitValTyparDecls + | 289 -> NONTERM_opt_explicitValTyparDecls2 + | 290 -> NONTERM_opt_explicitValTyparDecls2 + | 291 -> NONTERM_opt_typeConstraints + | 292 -> NONTERM_opt_typeConstraints + | 293 -> NONTERM_typeConstraints + | 294 -> NONTERM_typeConstraints + | 295 -> NONTERM_typeConstraint + | 296 -> NONTERM_typeConstraint + | 297 -> NONTERM_typeConstraint + | 298 -> NONTERM_typeConstraint + | 299 -> NONTERM_typeConstraint + | 300 -> NONTERM_typeConstraint + | 301 -> NONTERM_typeConstraint + | 302 -> NONTERM_typeConstraint + | 303 -> NONTERM_typeConstraint + | 304 -> NONTERM_typeConstraint + | 305 -> NONTERM_typarAlts + | 306 -> NONTERM_typarAlts + | 307 -> NONTERM_unionRepr + | 308 -> NONTERM_unionRepr + | 309 -> NONTERM_unionRepr + | 310 -> NONTERM_barAndgrabXmlDoc + | 311 -> NONTERM_attrUnionCaseDecls + | 312 -> NONTERM_attrUnionCaseDecls + | 313 -> NONTERM_attrUnionCaseDecl + | 314 -> NONTERM_attrUnionCaseDecl + | 315 -> NONTERM_attrUnionCaseDecl + | 316 -> NONTERM_attrUnionCaseDecl + | 317 -> NONTERM_unionCaseName + | 318 -> NONTERM_unionCaseName + | 319 -> NONTERM_unionCaseName + | 320 -> NONTERM_firstUnionCaseDeclOfMany + | 321 -> NONTERM_firstUnionCaseDeclOfMany + | 322 -> NONTERM_firstUnionCaseDeclOfMany + | 323 -> NONTERM_firstUnionCaseDecl + | 324 -> NONTERM_firstUnionCaseDecl + | 325 -> NONTERM_unionCaseRepr + | 326 -> NONTERM_unionCaseRepr + | 327 -> NONTERM_unionCaseRepr + | 328 -> NONTERM_recdFieldDeclList + | 329 -> NONTERM_recdFieldDeclList + | 330 -> NONTERM_recdFieldDecl + | 331 -> NONTERM_fieldDecl + | 332 -> NONTERM_exconDefn + | 333 -> NONTERM_exconSpfn + | 334 -> NONTERM_exceptionAndGrabDoc + | 335 -> NONTERM_exconCore + | 336 -> NONTERM_exconIntro + | 337 -> NONTERM_exconIntro + | 338 -> NONTERM_exconRepr + | 339 -> NONTERM_exconRepr + | 340 -> NONTERM_openDecl + | 341 -> NONTERM_defnBindings + | 342 -> NONTERM_defnBindings + | 343 -> NONTERM_doBinding + | 344 -> NONTERM_hardwhiteLetBindings + | 345 -> NONTERM_hardwhiteDoBinding + | 346 -> NONTERM_classDefnBindings + | 347 -> NONTERM_classDefnBindings + | 348 -> NONTERM_classDefnBindings + | 349 -> NONTERM_classDefnBindings + | 350 -> NONTERM_hardwhiteDefnBindingsTerminator + | 351 -> NONTERM_hardwhiteDefnBindingsTerminator + | 352 -> NONTERM_cPrototype + | 353 -> NONTERM_cArgs + | 354 -> NONTERM_cArgs + | 355 -> NONTERM_cArgs + | 356 -> NONTERM_cMoreArgs + | 357 -> NONTERM_cMoreArgs + | 358 -> NONTERM_cArg + | 359 -> NONTERM_cArg + | 360 -> NONTERM_cType + | 361 -> NONTERM_cType + | 362 -> NONTERM_cType + | 363 -> NONTERM_cType + | 364 -> NONTERM_cType + | 365 -> NONTERM_cRetType + | 366 -> NONTERM_cRetType + | 367 -> NONTERM_localBindings + | 368 -> NONTERM_moreLocalBindings + | 369 -> NONTERM_moreLocalBindings + | 370 -> NONTERM_attr_localBinding + | 371 -> NONTERM_attr_localBinding + | 372 -> NONTERM_localBinding + | 373 -> NONTERM_localBinding + | 374 -> NONTERM_localBinding + | 375 -> NONTERM_typedExprWithStaticOptimizationsBlock + | 376 -> NONTERM_typedExprWithStaticOptimizationsBlock + | 377 -> NONTERM_typedExprWithStaticOptimizationsBlock + | 378 -> NONTERM_typedExprWithStaticOptimizations + | 379 -> NONTERM_opt_staticOptimizations + | 380 -> NONTERM_opt_staticOptimizations + | 381 -> NONTERM_staticOptimization + | 382 -> NONTERM_staticOptimizationConditions + | 383 -> NONTERM_staticOptimizationConditions + | 384 -> NONTERM_staticOptimizationCondition + | 385 -> NONTERM_staticOptimizationCondition + | 386 -> NONTERM_rawConstant + | 387 -> NONTERM_rawConstant + | 388 -> NONTERM_rawConstant + | 389 -> NONTERM_rawConstant + | 390 -> NONTERM_rawConstant + | 391 -> NONTERM_rawConstant + | 392 -> NONTERM_rawConstant + | 393 -> NONTERM_rawConstant + | 394 -> NONTERM_rawConstant + | 395 -> NONTERM_rawConstant + | 396 -> NONTERM_rawConstant + | 397 -> NONTERM_rawConstant + | 398 -> NONTERM_rawConstant + | 399 -> NONTERM_rawConstant + | 400 -> NONTERM_rawConstant + | 401 -> NONTERM_rawConstant + | 402 -> NONTERM_rawConstant + | 403 -> NONTERM_constant + | 404 -> NONTERM_constant + | 405 -> NONTERM_bindingPattern + | 406 -> NONTERM_simplePattern + | 407 -> NONTERM_simplePattern + | 408 -> NONTERM_simplePattern + | 409 -> NONTERM_simplePattern + | 410 -> NONTERM_simplePatternCommaList + | 411 -> NONTERM_simplePatternCommaList + | 412 -> NONTERM_simplePatterns + | 413 -> NONTERM_simplePatterns + | 414 -> NONTERM_simplePatterns + | 415 -> NONTERM_simplePatterns + | 416 -> NONTERM_simplePatterns + | 417 -> NONTERM_headBindingPattern + | 418 -> NONTERM_headBindingPattern + | 419 -> NONTERM_headBindingPattern + | 420 -> NONTERM_headBindingPattern + | 421 -> NONTERM_headBindingPattern + | 422 -> NONTERM_headBindingPattern + | 423 -> NONTERM_tuplePatternElements + | 424 -> NONTERM_tuplePatternElements + | 425 -> NONTERM_conjPatternElements + | 426 -> NONTERM_conjPatternElements + | 427 -> NONTERM_constrPattern + | 428 -> NONTERM_constrPattern + | 429 -> NONTERM_constrPattern + | 430 -> NONTERM_constrPattern + | 431 -> NONTERM_constrPattern + | 432 -> NONTERM_constrPattern + | 433 -> NONTERM_atomicPatterns + | 434 -> NONTERM_atomicPatterns + | 435 -> NONTERM_atomicPatterns + | 436 -> NONTERM_atomicPatterns + | 437 -> NONTERM_atomicPattern + | 438 -> NONTERM_atomicPattern + | 439 -> NONTERM_atomicPattern + | 440 -> NONTERM_atomicPattern + | 441 -> NONTERM_atomicPattern + | 442 -> NONTERM_atomicPattern + | 443 -> NONTERM_atomicPattern + | 444 -> NONTERM_atomicPattern + | 445 -> NONTERM_atomicPattern + | 446 -> NONTERM_atomicPattern + | 447 -> NONTERM_atomicPattern + | 448 -> NONTERM_atomicPattern + | 449 -> NONTERM_atomicPattern + | 450 -> NONTERM_atomicPattern + | 451 -> NONTERM_atomicPattern + | 452 -> NONTERM_atomicPattern + | 453 -> NONTERM_parenPatternBody + | 454 -> NONTERM_parenPatternBody + | 455 -> NONTERM_parenPattern + | 456 -> NONTERM_parenPattern + | 457 -> NONTERM_parenPattern + | 458 -> NONTERM_parenPattern + | 459 -> NONTERM_parenPattern + | 460 -> NONTERM_parenPattern + | 461 -> NONTERM_parenPattern + | 462 -> NONTERM_parenPattern + | 463 -> NONTERM_tupleParenPatternElements + | 464 -> NONTERM_tupleParenPatternElements + | 465 -> NONTERM_conjParenPatternElements + | 466 -> NONTERM_conjParenPatternElements + | 467 -> NONTERM_recordPatternElements + | 468 -> NONTERM_recordPatternElementsAux + | 469 -> NONTERM_recordPatternElementsAux + | 470 -> NONTERM_recordPatternElement + | 471 -> NONTERM_listPatternElements + | 472 -> NONTERM_listPatternElements + | 473 -> NONTERM_listPatternElements + | 474 -> NONTERM_typedSeqExprBlock + | 475 -> NONTERM_typedSeqExprBlock + | 476 -> NONTERM_typedSeqExprBlock + | 477 -> NONTERM_declExprBlock + | 478 -> NONTERM_declExprBlock + | 479 -> NONTERM_typedSeqExprBlockR + | 480 -> NONTERM_typedSeqExprBlockR + | 481 -> NONTERM_typedSeqExpr + | 482 -> NONTERM_typedSeqExpr + | 483 -> NONTERM_seqExpr + | 484 -> NONTERM_seqExpr + | 485 -> NONTERM_seqExpr + | 486 -> NONTERM_seqExpr + | 487 -> NONTERM_seqExpr + | 488 -> NONTERM_seqExpr + | 489 -> NONTERM_recover + | 490 -> NONTERM_recover + | 491 -> NONTERM_declExpr + | 492 -> NONTERM_declExpr + | 493 -> NONTERM_declExpr + | 494 -> NONTERM_declExpr + | 495 -> NONTERM_declExpr + | 496 -> NONTERM_declExpr + | 497 -> NONTERM_declExpr + | 498 -> NONTERM_declExpr + | 499 -> NONTERM_declExpr + | 500 -> NONTERM_declExpr + | 501 -> NONTERM_declExpr + | 502 -> NONTERM_declExpr + | 503 -> NONTERM_declExpr + | 504 -> NONTERM_declExpr + | 505 -> NONTERM_declExpr + | 506 -> NONTERM_declExpr + | 507 -> NONTERM_declExpr + | 508 -> NONTERM_declExpr + | 509 -> NONTERM_declExpr + | 510 -> NONTERM_declExpr + | 511 -> NONTERM_declExpr + | 512 -> NONTERM_declExpr + | 513 -> NONTERM_declExpr + | 514 -> NONTERM_declExpr + | 515 -> NONTERM_declExpr + | 516 -> NONTERM_declExpr + | 517 -> NONTERM_declExpr + | 518 -> NONTERM_declExpr + | 519 -> NONTERM_declExpr + | 520 -> NONTERM_declExpr + | 521 -> NONTERM_declExpr + | 522 -> NONTERM_declExpr + | 523 -> NONTERM_declExpr + | 524 -> NONTERM_declExpr + | 525 -> NONTERM_declExpr + | 526 -> NONTERM_declExpr + | 527 -> NONTERM_declExpr + | 528 -> NONTERM_declExpr + | 529 -> NONTERM_declExpr + | 530 -> NONTERM_declExpr + | 531 -> NONTERM_declExpr + | 532 -> NONTERM_declExpr + | 533 -> NONTERM_declExpr + | 534 -> NONTERM_declExpr + | 535 -> NONTERM_declExpr + | 536 -> NONTERM_declExpr + | 537 -> NONTERM_declExpr + | 538 -> NONTERM_declExpr + | 539 -> NONTERM_declExpr + | 540 -> NONTERM_declExpr + | 541 -> NONTERM_declExpr + | 542 -> NONTERM_declExpr + | 543 -> NONTERM_declExpr + | 544 -> NONTERM_declExpr + | 545 -> NONTERM_declExpr + | 546 -> NONTERM_declExpr + | 547 -> NONTERM_declExpr + | 548 -> NONTERM_declExpr + | 549 -> NONTERM_declExpr + | 550 -> NONTERM_declExpr + | 551 -> NONTERM_declExpr + | 552 -> NONTERM_declExpr + | 553 -> NONTERM_declExpr + | 554 -> NONTERM_declExpr + | 555 -> NONTERM_declExpr + | 556 -> NONTERM_declExpr + | 557 -> NONTERM_declExpr + | 558 -> NONTERM_declExpr + | 559 -> NONTERM_declExpr + | 560 -> NONTERM_declExpr + | 561 -> NONTERM_declExpr + | 562 -> NONTERM_declExpr + | 563 -> NONTERM_declExpr + | 564 -> NONTERM_declExpr + | 565 -> NONTERM_declExpr + | 566 -> NONTERM_declExpr + | 567 -> NONTERM_declExpr + | 568 -> NONTERM_declExpr + | 569 -> NONTERM_declExpr + | 570 -> NONTERM_declExpr + | 571 -> NONTERM_declExpr + | 572 -> NONTERM_declExpr + | 573 -> NONTERM_declExpr + | 574 -> NONTERM_declExpr + | 575 -> NONTERM_declExpr + | 576 -> NONTERM_declExpr + | 577 -> NONTERM_declExpr + | 578 -> NONTERM_declExpr + | 579 -> NONTERM_declExpr + | 580 -> NONTERM_declExpr + | 581 -> NONTERM_declExpr + | 582 -> NONTERM_declExpr + | 583 -> NONTERM_declExpr + | 584 -> NONTERM_declExpr + | 585 -> NONTERM_declExpr + | 586 -> NONTERM_declExpr + | 587 -> NONTERM_declExpr + | 588 -> NONTERM_declExpr + | 589 -> NONTERM_declExpr + | 590 -> NONTERM_dynamicArg + | 591 -> NONTERM_dynamicArg + | 592 -> NONTERM_withClauses + | 593 -> NONTERM_withClauses + | 594 -> NONTERM_withClauses + | 595 -> NONTERM_withPatternClauses + | 596 -> NONTERM_withPatternClauses + | 597 -> NONTERM_withPatternClauses + | 598 -> NONTERM_withPatternClauses + | 599 -> NONTERM_patternAndGuard + | 600 -> NONTERM_patternClauses + | 601 -> NONTERM_patternClauses + | 602 -> NONTERM_patternClauses + | 603 -> NONTERM_patternClauses + | 604 -> NONTERM_patternClauses + | 605 -> NONTERM_patternGuard + | 606 -> NONTERM_patternGuard + | 607 -> NONTERM_patternResult + | 608 -> NONTERM_ifExprCases + | 609 -> NONTERM_ifExprThen + | 610 -> NONTERM_ifExprThen + | 611 -> NONTERM_ifExprThen + | 612 -> NONTERM_ifExprElifs + | 613 -> NONTERM_ifExprElifs + | 614 -> NONTERM_ifExprElifs + | 615 -> NONTERM_ifExprElifs + | 616 -> NONTERM_ifExprElifs + | 617 -> NONTERM_ifExprElifs + | 618 -> NONTERM_tupleExpr + | 619 -> NONTERM_tupleExpr + | 620 -> NONTERM_tupleExpr + | 621 -> NONTERM_tupleExpr + | 622 -> NONTERM_minusExpr + | 623 -> NONTERM_minusExpr + | 624 -> NONTERM_minusExpr + | 625 -> NONTERM_minusExpr + | 626 -> NONTERM_minusExpr + | 627 -> NONTERM_minusExpr + | 628 -> NONTERM_minusExpr + | 629 -> NONTERM_minusExpr + | 630 -> NONTERM_minusExpr + | 631 -> NONTERM_minusExpr + | 632 -> NONTERM_minusExpr + | 633 -> NONTERM_minusExpr + | 634 -> NONTERM_appExpr + | 635 -> NONTERM_appExpr + | 636 -> NONTERM_argExpr + | 637 -> NONTERM_argExpr + | 638 -> NONTERM_atomicExpr + | 639 -> NONTERM_atomicExpr + | 640 -> NONTERM_atomicExpr + | 641 -> NONTERM_atomicExpr + | 642 -> NONTERM_atomicExpr + | 643 -> NONTERM_atomicExpr + | 644 -> NONTERM_atomicExpr + | 645 -> NONTERM_atomicExpr + | 646 -> NONTERM_atomicExpr + | 647 -> NONTERM_atomicExpr + | 648 -> NONTERM_atomicExpr + | 649 -> NONTERM_atomicExpr + | 650 -> NONTERM_atomicExpr + | 651 -> NONTERM_atomicExpr + | 652 -> NONTERM_atomicExpr + | 653 -> NONTERM_atomicExprQualification + | 654 -> NONTERM_atomicExprQualification + | 655 -> NONTERM_atomicExprQualification + | 656 -> NONTERM_atomicExprQualification + | 657 -> NONTERM_atomicExprQualification + | 658 -> NONTERM_atomicExprQualification + | 659 -> NONTERM_atomicExprQualification + | 660 -> NONTERM_atomicExprQualification + | 661 -> NONTERM_atomicExprQualification + | 662 -> NONTERM_atomicExprQualification + | 663 -> NONTERM_atomicExprQualification + | 664 -> NONTERM_atomicExprQualification + | 665 -> NONTERM_atomicExprQualification + | 666 -> NONTERM_optRange + | 667 -> NONTERM_optRange + | 668 -> NONTERM_optRange + | 669 -> NONTERM_optRange + | 670 -> NONTERM_atomicExprAfterType + | 671 -> NONTERM_atomicExprAfterType + | 672 -> NONTERM_atomicExprAfterType + | 673 -> NONTERM_atomicExprAfterType + | 674 -> NONTERM_atomicExprAfterType + | 675 -> NONTERM_atomicExprAfterType + | 676 -> NONTERM_atomicExprAfterType + | 677 -> NONTERM_atomicExprAfterType + | 678 -> NONTERM_atomicExprAfterType + | 679 -> NONTERM_beginEndExpr + | 680 -> NONTERM_beginEndExpr + | 681 -> NONTERM_beginEndExpr + | 682 -> NONTERM_beginEndExpr + | 683 -> NONTERM_quoteExpr + | 684 -> NONTERM_quoteExpr + | 685 -> NONTERM_quoteExpr + | 686 -> NONTERM_quoteExpr + | 687 -> NONTERM_arrayExpr + | 688 -> NONTERM_arrayExpr + | 689 -> NONTERM_arrayExpr + | 690 -> NONTERM_arrayExpr + | 691 -> NONTERM_parenExpr + | 692 -> NONTERM_parenExpr + | 693 -> NONTERM_parenExpr + | 694 -> NONTERM_parenExpr + | 695 -> NONTERM_parenExpr + | 696 -> NONTERM_parenExpr + | 697 -> NONTERM_parenExpr + | 698 -> NONTERM_parenExpr + | 699 -> NONTERM_parenExpr + | 700 -> NONTERM_parenExprBody + | 701 -> NONTERM_parenExprBody + | 702 -> NONTERM_parenExprBody + | 703 -> NONTERM_staticallyKnownHeadTypars + | 704 -> NONTERM_staticallyKnownHeadTypars + | 705 -> NONTERM_staticallyKnownHeadTyparAlts + | 706 -> NONTERM_staticallyKnownHeadTyparAlts + | 707 -> NONTERM_braceExpr + | 708 -> NONTERM_braceExpr + | 709 -> NONTERM_braceExpr + | 710 -> NONTERM_braceExpr + | 711 -> NONTERM_braceExpr + | 712 -> NONTERM_braceExprBody + | 713 -> NONTERM_braceExprBody + | 714 -> NONTERM_braceExprBody + | 715 -> NONTERM_listExprElements + | 716 -> NONTERM_listExprElements + | 717 -> NONTERM_monadicExprInitial + | 718 -> NONTERM_monadicExprInitial + | 719 -> NONTERM_rangeSequenceExpr + | 720 -> NONTERM_rangeSequenceExpr + | 721 -> NONTERM_rangeSequenceExpr + | 722 -> NONTERM_monadicSingleLineQualifiersThenArrowThenExprR + | 723 -> NONTERM_forLoopBinder + | 724 -> NONTERM_forLoopBinder + | 725 -> NONTERM_forLoopBinder + | 726 -> NONTERM_forLoopBinder + | 727 -> NONTERM_forLoopRange + | 728 -> NONTERM_inlineAssemblyExpr + | 729 -> NONTERM_opt_curriedArgExprs + | 730 -> NONTERM_opt_curriedArgExprs + | 731 -> NONTERM_opt_atomicExprAfterType + | 732 -> NONTERM_opt_atomicExprAfterType + | 733 -> NONTERM_opt_inlineAssemblyTypeArg + | 734 -> NONTERM_opt_inlineAssemblyTypeArg + | 735 -> NONTERM_opt_inlineAssemblyReturnTypes + | 736 -> NONTERM_opt_inlineAssemblyReturnTypes + | 737 -> NONTERM_opt_inlineAssemblyReturnTypes + | 738 -> NONTERM_recdExpr + | 739 -> NONTERM_recdExpr + | 740 -> NONTERM_recdExpr + | 741 -> NONTERM_recdExpr + | 742 -> NONTERM_recdExpr + | 743 -> NONTERM_recdExpr + | 744 -> NONTERM_recdExpr + | 745 -> NONTERM_recdExpr + | 746 -> NONTERM_opt_seps_recd + | 747 -> NONTERM_opt_seps_recd + | 748 -> NONTERM_seps_recd + | 749 -> NONTERM_seps_recd + | 750 -> NONTERM_seps_recd + | 751 -> NONTERM_seps_recd + | 752 -> NONTERM_pathOrUnderscore + | 753 -> NONTERM_pathOrUnderscore + | 754 -> NONTERM_recdExprBindings + | 755 -> NONTERM_recdExprBindings + | 756 -> NONTERM_recdBinding + | 757 -> NONTERM_recdBinding + | 758 -> NONTERM_recdBinding + | 759 -> NONTERM_recdBinding + | 760 -> NONTERM_recdBinding + | 761 -> NONTERM_objExpr + | 762 -> NONTERM_objExpr + | 763 -> NONTERM_objExpr + | 764 -> NONTERM_objExprBaseCall + | 765 -> NONTERM_objExprBaseCall + | 766 -> NONTERM_objExprBaseCall + | 767 -> NONTERM_opt_objExprBindings + | 768 -> NONTERM_opt_objExprBindings + | 769 -> NONTERM_objExprBindings + | 770 -> NONTERM_objExprBindings + | 771 -> NONTERM_objExprBindings + | 772 -> NONTERM_objExprInterfaces + | 773 -> NONTERM_opt_objExprInterfaces + | 774 -> NONTERM_opt_objExprInterfaces + | 775 -> NONTERM_opt_objExprInterfaces + | 776 -> NONTERM_objExprInterface + | 777 -> NONTERM_forLoopDirection + | 778 -> NONTERM_forLoopDirection + | 779 -> NONTERM_anonLambdaExpr + | 780 -> NONTERM_anonLambdaExpr + | 781 -> NONTERM_anonLambdaExpr + | 782 -> NONTERM_anonLambdaExpr + | 783 -> NONTERM_anonLambdaExpr + | 784 -> NONTERM_anonLambdaExpr + | 785 -> NONTERM_anonLambdaExpr + | 786 -> NONTERM_anonLambdaExpr + | 787 -> NONTERM_anonMatchingExpr + | 788 -> NONTERM_anonMatchingExpr + | 789 -> NONTERM_typeWithTypeConstraints + | 790 -> NONTERM_typeWithTypeConstraints + | 791 -> NONTERM_topTypeWithTypeConstraints + | 792 -> NONTERM_topTypeWithTypeConstraints + | 793 -> NONTERM_opt_topReturnTypeWithTypeConstraints + | 794 -> NONTERM_opt_topReturnTypeWithTypeConstraints + | 795 -> NONTERM_topType + | 796 -> NONTERM_topType + | 797 -> NONTERM_topTupleType + | 798 -> NONTERM_topTupleType + | 799 -> NONTERM_topTupleTypeElements + | 800 -> NONTERM_topTupleTypeElements + | 801 -> NONTERM_topAppType + | 802 -> NONTERM_topAppType + | 803 -> NONTERM_topAppType + | 804 -> NONTERM_topAppType + | 805 -> NONTERM_topAppType + | 806 -> NONTERM_topAppType + | 807 -> NONTERM_typ + | 808 -> NONTERM_typ + | 809 -> NONTERM_tupleType + | 810 -> NONTERM_tupleType + | 811 -> NONTERM_tupleType + | 812 -> NONTERM_tupleType + | 813 -> NONTERM_tupleOrQuotTypeElements + | 814 -> NONTERM_tupleOrQuotTypeElements + | 815 -> NONTERM_tupleOrQuotTypeElements + | 816 -> NONTERM_tupleTypeElements + | 817 -> NONTERM_tupleTypeElements + | 818 -> NONTERM_appTypeCon + | 819 -> NONTERM_appTypeCon + | 820 -> NONTERM_appTypeConPower + | 821 -> NONTERM_appTypeConPower + | 822 -> NONTERM_appType + | 823 -> NONTERM_appType + | 824 -> NONTERM_appType + | 825 -> NONTERM_appType + | 826 -> NONTERM_appType + | 827 -> NONTERM_appType + | 828 -> NONTERM_appType + | 829 -> NONTERM_arrayTypeSuffix + | 830 -> NONTERM_arrayTypeSuffix + | 831 -> NONTERM_arrayTypeSuffix + | 832 -> NONTERM_arrayTypeSuffix + | 833 -> NONTERM_appTypePrefixArguments + | 834 -> NONTERM_typeArgListElements + | 835 -> NONTERM_typeArgListElements + | 836 -> NONTERM_typeArgListElements + | 837 -> NONTERM_powerType + | 838 -> NONTERM_powerType + | 839 -> NONTERM_powerType + | 840 -> NONTERM_appTypeNonAtomicDeprecated + | 841 -> NONTERM_appTypeNonAtomicDeprecated + | 842 -> NONTERM_appTypeNonAtomicDeprecated + | 843 -> NONTERM_appTypeNonAtomicDeprecated + | 844 -> NONTERM_appTypeNonAtomicDeprecated + | 845 -> NONTERM_appTypeNonAtomicDeprecated + | 846 -> NONTERM_appTypeNonAtomicDeprecated + | 847 -> NONTERM_powerTypeNonAtomicDeprecated + | 848 -> NONTERM_powerTypeNonAtomicDeprecated + | 849 -> NONTERM_powerTypeNonAtomicDeprecated + | 850 -> NONTERM_atomType + | 851 -> NONTERM_atomType + | 852 -> NONTERM_atomType + | 853 -> NONTERM_atomType + | 854 -> NONTERM_atomType + | 855 -> NONTERM_atomType + | 856 -> NONTERM_atomType + | 857 -> NONTERM_atomType + | 858 -> NONTERM_atomType + | 859 -> NONTERM_atomType + | 860 -> NONTERM_atomType + | 861 -> NONTERM_atomType + | 862 -> NONTERM_atomType + | 863 -> NONTERM_atomType + | 864 -> NONTERM_atomType + | 865 -> NONTERM_typeArgsNoHpaDeprecated + | 866 -> NONTERM_typeArgsNoHpaDeprecated + | 867 -> NONTERM_typeArgsActual + | 868 -> NONTERM_typeArgsActual + | 869 -> NONTERM_typeArgsActual + | 870 -> NONTERM_typeArgsActual + | 871 -> NONTERM_typeArgsActual + | 872 -> NONTERM_typeArgsActual + | 873 -> NONTERM_typeArgsActual + | 874 -> NONTERM_typeArgActual + | 875 -> NONTERM_typeArgActual + | 876 -> NONTERM_typeArgActual + | 877 -> NONTERM_typeArgActualOrDummyIfEmpty + | 878 -> NONTERM_typeArgActualOrDummyIfEmpty + | 879 -> NONTERM_dummyTypeArg + | 880 -> NONTERM_measureTypeArg + | 881 -> NONTERM_measureTypeArg + | 882 -> NONTERM_measureTypeAtom + | 883 -> NONTERM_measureTypeAtom + | 884 -> NONTERM_measureTypeAtom + | 885 -> NONTERM_measureTypePower + | 886 -> NONTERM_measureTypePower + | 887 -> NONTERM_measureTypePower + | 888 -> NONTERM_measureTypePower + | 889 -> NONTERM_measureTypeSeq + | 890 -> NONTERM_measureTypeSeq + | 891 -> NONTERM_measureTypeExpr + | 892 -> NONTERM_measureTypeExpr + | 893 -> NONTERM_measureTypeExpr + | 894 -> NONTERM_measureTypeExpr + | 895 -> NONTERM_typar + | 896 -> NONTERM_typar + | 897 -> NONTERM_staticallyKnownHeadTypar + | 898 -> NONTERM_ident + | 899 -> NONTERM_path + | 900 -> NONTERM_path + | 901 -> NONTERM_path + | 902 -> NONTERM_path + | 903 -> NONTERM_opName + | 904 -> NONTERM_opName + | 905 -> NONTERM_opName + | 906 -> NONTERM_opName + | 907 -> NONTERM_opName + | 908 -> NONTERM_operatorName + | 909 -> NONTERM_operatorName + | 910 -> NONTERM_operatorName + | 911 -> NONTERM_operatorName + | 912 -> NONTERM_operatorName + | 913 -> NONTERM_operatorName + | 914 -> NONTERM_operatorName + | 915 -> NONTERM_operatorName + | 916 -> NONTERM_operatorName + | 917 -> NONTERM_operatorName + | 918 -> NONTERM_operatorName + | 919 -> NONTERM_operatorName + | 920 -> NONTERM_operatorName + | 921 -> NONTERM_operatorName + | 922 -> NONTERM_operatorName + | 923 -> NONTERM_operatorName + | 924 -> NONTERM_operatorName + | 925 -> NONTERM_operatorName + | 926 -> NONTERM_operatorName + | 927 -> NONTERM_operatorName + | 928 -> NONTERM_operatorName + | 929 -> NONTERM_operatorName + | 930 -> NONTERM_operatorName + | 931 -> NONTERM_operatorName + | 932 -> NONTERM_operatorName + | 933 -> NONTERM_operatorName + | 934 -> NONTERM_barName + | 935 -> NONTERM_barNames + | 936 -> NONTERM_barNames + | 937 -> NONTERM_identOrOp + | 938 -> NONTERM_identOrOp + | 939 -> NONTERM_pathOp + | 940 -> NONTERM_pathOp + | 941 -> NONTERM_pathOp + | 942 -> NONTERM_pathOp + | 943 -> NONTERM_nameop + | 944 -> NONTERM_topSeparator + | 945 -> NONTERM_topSeparator + | 946 -> NONTERM_topSeparator + | 947 -> NONTERM_topSeparators + | 948 -> NONTERM_topSeparators + | 949 -> NONTERM_interactiveSeparator + | 950 -> NONTERM_interactiveSeparator + | 951 -> NONTERM_interactiveSeparators + | 952 -> NONTERM_interactiveSeparators + | 953 -> NONTERM_opt_interactiveSeparators + | 954 -> NONTERM_opt_interactiveSeparators + | 955 -> NONTERM_opt_topSeparators + | 956 -> NONTERM_opt_topSeparators + | 957 -> NONTERM_seps + | 958 -> NONTERM_seps + | 959 -> NONTERM_seps + | 960 -> NONTERM_seps + | 961 -> NONTERM_declEnd + | 962 -> NONTERM_declEnd + | 963 -> NONTERM_declEnd + | 964 -> NONTERM_opt_declEnd + | 965 -> NONTERM_opt_declEnd + | 966 -> NONTERM_opt_declEnd + | 967 -> NONTERM_opt_declEnd + | 968 -> NONTERM_opt_ODECLEND + | 969 -> NONTERM_opt_ODECLEND + | 970 -> NONTERM_deprecated_opt_equals + | 971 -> NONTERM_deprecated_opt_equals + | 972 -> NONTERM_opt_OBLOCKSEP + | 973 -> NONTERM_opt_OBLOCKSEP + | 974 -> NONTERM_opt_seps + | 975 -> NONTERM_opt_seps + | 976 -> NONTERM_opt_rec + | 977 -> NONTERM_opt_rec + | 978 -> NONTERM_opt_bar + | 979 -> NONTERM_opt_bar + | 980 -> NONTERM_opt_inline + | 981 -> NONTERM_opt_inline + | 982 -> NONTERM_opt_mutable + | 983 -> NONTERM_opt_mutable + | 984 -> NONTERM_doToken + | 985 -> NONTERM_doToken + | 986 -> NONTERM_doneDeclEnd + | 987 -> NONTERM_doneDeclEnd + | 988 -> NONTERM_structOrBegin + | 989 -> NONTERM_structOrBegin + | 990 -> NONTERM_sigOrBegin + | 991 -> NONTERM_sigOrBegin + | 992 -> NONTERM_colonOrEquals + | 993 -> NONTERM_colonOrEquals + | 994 -> NONTERM_opt_HASH + | 995 -> NONTERM_opt_HIGH_PRECEDENCE_APP + | 996 -> NONTERM_opt_HIGH_PRECEDENCE_APP + | 997 -> NONTERM_opt_HIGH_PRECEDENCE_APP + | 998 -> NONTERM_opt_HIGH_PRECEDENCE_TYAPP + | 999 -> NONTERM_opt_HIGH_PRECEDENCE_TYAPP + | 1000 -> NONTERM_type_keyword + | 1001 -> NONTERM_type_keyword + | 1002 -> NONTERM_type_keyword + | 1003 -> NONTERM_module_keyword + | 1004 -> NONTERM_module_keyword + | 1005 -> NONTERM_module_keyword + | 1006 -> NONTERM_rbrace + | 1007 -> NONTERM_rbrace + | 1008 -> NONTERM_rbrace + | 1009 -> NONTERM_rparen + | 1010 -> NONTERM_rparen + | 1011 -> NONTERM_rparen + | 1012 -> NONTERM_oblockend + | 1013 -> NONTERM_oblockend + | 1014 -> NONTERM_oblockend + | 1015 -> NONTERM_ends_other_than_rparen_coming_soon_or_recover + | 1016 -> NONTERM_ends_other_than_rparen_coming_soon_or_recover + | 1017 -> NONTERM_ends_other_than_rparen_coming_soon_or_recover + | 1018 -> NONTERM_ends_other_than_rparen_coming_soon_or_recover + | 1019 -> NONTERM_ends_other_than_rparen_coming_soon_or_recover + | 1020 -> NONTERM_ends_coming_soon_or_recover + | 1021 -> NONTERM_ends_coming_soon_or_recover + | 1022 -> NONTERM_ends_coming_soon_or_recover + | 1023 -> NONTERM_ends_coming_soon_or_recover + | 1024 -> NONTERM_ends_coming_soon_or_recover + | 1025 -> NONTERM_ends_coming_soon_or_recover + | _ -> failwith "prodIdxToNonTerminal: bad production index" + +let _fsyacc_endOfInputTag = 194 +let _fsyacc_tagOfErrorTerminal = 192 + +// This function gets the name of a token as a string +let token_to_string (t:token) = + match t with + | HASH_IF _ -> "HASH_IF" + | HASH_ELSE _ -> "HASH_ELSE" + | HASH_ENDIF _ -> "HASH_ENDIF" + | COMMENT _ -> "COMMENT" + | WHITESPACE _ -> "WHITESPACE" + | HASH_LINE _ -> "HASH_LINE" + | HASH_LIGHT _ -> "HASH_LIGHT" + | INACTIVECODE _ -> "INACTIVECODE" + | LINE_COMMENT _ -> "LINE_COMMENT" + | STRING_TEXT _ -> "STRING_TEXT" + | EOF _ -> "EOF" + | LEX_FAILURE _ -> "LEX_FAILURE" + | ODUMMY _ -> "ODUMMY" + | OINTERFACE_MEMBER -> "OINTERFACE_MEMBER" + | OBLOCKEND -> "OBLOCKEND" + | OBLOCKEND_COMING_SOON -> "OBLOCKEND_COMING_SOON" + | OBLOCKEND_IS_HERE -> "OBLOCKEND_IS_HERE" + | ORIGHT_BLOCK_END -> "ORIGHT_BLOCK_END" + | ODECLEND -> "ODECLEND" + | OEND -> "OEND" + | OBLOCKSEP -> "OBLOCKSEP" + | OBLOCKBEGIN -> "OBLOCKBEGIN" + | ORESET -> "ORESET" + | OFUN -> "OFUN" + | OFUNCTION -> "OFUNCTION" + | OWITH -> "OWITH" + | OELSE -> "OELSE" + | OTHEN -> "OTHEN" + | ODO_BANG -> "ODO_BANG" + | ODO -> "ODO" + | OBINDER _ -> "OBINDER" + | OLET _ -> "OLET" + | HIGH_PRECEDENCE_TYAPP -> "HIGH_PRECEDENCE_TYAPP" + | HIGH_PRECEDENCE_PAREN_APP -> "HIGH_PRECEDENCE_PAREN_APP" + | HIGH_PRECEDENCE_BRACK_APP -> "HIGH_PRECEDENCE_BRACK_APP" + | TYPE_COMING_SOON -> "TYPE_COMING_SOON" + | TYPE_IS_HERE -> "TYPE_IS_HERE" + | MODULE_COMING_SOON -> "MODULE_COMING_SOON" + | MODULE_IS_HERE -> "MODULE_IS_HERE" + | EXTERN -> "EXTERN" + | VOID -> "VOID" + | PUBLIC -> "PUBLIC" + | PRIVATE -> "PRIVATE" + | INTERNAL -> "INTERNAL" + | GLOBAL -> "GLOBAL" + | STATIC -> "STATIC" + | MEMBER -> "MEMBER" + | CLASS -> "CLASS" + | ABSTRACT -> "ABSTRACT" + | OVERRIDE -> "OVERRIDE" + | DEFAULT -> "DEFAULT" + | CONSTRUCTOR -> "CONSTRUCTOR" + | INHERIT -> "INHERIT" + | GREATER_RBRACK -> "GREATER_RBRACK" + | STRUCT -> "STRUCT" + | SIG -> "SIG" + | BAR -> "BAR" + | RBRACK -> "RBRACK" + | RBRACE -> "RBRACE" + | RBRACE_COMING_SOON -> "RBRACE_COMING_SOON" + | RBRACE_IS_HERE -> "RBRACE_IS_HERE" + | MINUS -> "MINUS" + | DOLLAR -> "DOLLAR" + | LBRACE_LESS -> "LBRACE_LESS" + | BAR_RBRACK -> "BAR_RBRACK" + | GREATER_RBRACE -> "GREATER_RBRACE" + | UNDERSCORE -> "UNDERSCORE" + | SEMICOLON_SEMICOLON -> "SEMICOLON_SEMICOLON" + | LARROW -> "LARROW" + | EQUALS -> "EQUALS" + | LBRACK -> "LBRACK" + | LBRACK_BAR -> "LBRACK_BAR" + | LBRACK_LESS -> "LBRACK_LESS" + | LBRACE -> "LBRACE" + | QMARK -> "QMARK" + | QMARK_QMARK -> "QMARK_QMARK" + | DOT -> "DOT" + | COLON -> "COLON" + | COLON_COLON -> "COLON_COLON" + | COLON_GREATER -> "COLON_GREATER" + | COLON_QMARK_GREATER -> "COLON_QMARK_GREATER" + | COLON_QMARK -> "COLON_QMARK" + | COLON_EQUALS -> "COLON_EQUALS" + | SEMICOLON -> "SEMICOLON" + | WHEN -> "WHEN" + | WHILE -> "WHILE" + | WITH -> "WITH" + | HASH -> "HASH" + | AMP -> "AMP" + | AMP_AMP -> "AMP_AMP" + | QUOTE -> "QUOTE" + | LPAREN -> "LPAREN" + | RPAREN -> "RPAREN" + | RPAREN_COMING_SOON -> "RPAREN_COMING_SOON" + | RPAREN_IS_HERE -> "RPAREN_IS_HERE" + | STAR -> "STAR" + | COMMA -> "COMMA" + | RARROW -> "RARROW" + | GREATER_BAR_RBRACK -> "GREATER_BAR_RBRACK" + | LPAREN_STAR_RPAREN -> "LPAREN_STAR_RPAREN" + | OPEN -> "OPEN" + | OR -> "OR" + | REC -> "REC" + | THEN -> "THEN" + | TO -> "TO" + | TRUE -> "TRUE" + | TRY -> "TRY" + | TYPE -> "TYPE" + | VAL -> "VAL" + | INLINE -> "INLINE" + | INTERFACE -> "INTERFACE" + | INSTANCE -> "INSTANCE" + | CONST -> "CONST" + | LAZY -> "LAZY" + | OLAZY -> "OLAZY" + | MATCH -> "MATCH" + | MUTABLE -> "MUTABLE" + | NEW -> "NEW" + | OF -> "OF" + | EXCEPTION -> "EXCEPTION" + | FALSE -> "FALSE" + | FOR -> "FOR" + | FUN -> "FUN" + | FUNCTION -> "FUNCTION" + | IF -> "IF" + | IN -> "IN" + | JOIN_IN -> "JOIN_IN" + | FINALLY -> "FINALLY" + | DO_BANG -> "DO_BANG" + | AND -> "AND" + | AS -> "AS" + | ASSERT -> "ASSERT" + | OASSERT -> "OASSERT" + | ASR -> "ASR" + | BEGIN -> "BEGIN" + | DO -> "DO" + | DONE -> "DONE" + | DOWNTO -> "DOWNTO" + | ELSE -> "ELSE" + | ELIF -> "ELIF" + | END -> "END" + | DOT_DOT -> "DOT_DOT" + | BAR_BAR -> "BAR_BAR" + | UPCAST -> "UPCAST" + | DOWNCAST -> "DOWNCAST" + | NULL -> "NULL" + | RESERVED -> "RESERVED" + | MODULE -> "MODULE" + | NAMESPACE -> "NAMESPACE" + | DELEGATE -> "DELEGATE" + | CONSTRAINT -> "CONSTRAINT" + | BASE -> "BASE" + | LQUOTE _ -> "LQUOTE" + | RQUOTE _ -> "RQUOTE" + | RQUOTE_DOT _ -> "RQUOTE_DOT" + | PERCENT_OP _ -> "PERCENT_OP" + | BINDER _ -> "BINDER" + | LESS _ -> "LESS" + | GREATER _ -> "GREATER" + | LET _ -> "LET" + | YIELD _ -> "YIELD" + | YIELD_BANG _ -> "YIELD_BANG" + | BIGNUM _ -> "BIGNUM" + | DECIMAL _ -> "DECIMAL" + | CHAR _ -> "CHAR" + | IEEE64 _ -> "IEEE64" + | IEEE32 _ -> "IEEE32" + | NATIVEINT _ -> "NATIVEINT" + | UNATIVEINT _ -> "UNATIVEINT" + | UINT64 _ -> "UINT64" + | UINT32 _ -> "UINT32" + | UINT16 _ -> "UINT16" + | UINT8 _ -> "UINT8" + | INT64 _ -> "INT64" + | INT32 _ -> "INT32" + | INT32_DOT_DOT _ -> "INT32_DOT_DOT" + | INT16 _ -> "INT16" + | INT8 _ -> "INT8" + | FUNKY_OPERATOR_NAME _ -> "FUNKY_OPERATOR_NAME" + | ADJACENT_PREFIX_OP _ -> "ADJACENT_PREFIX_OP" + | PLUS_MINUS_OP _ -> "PLUS_MINUS_OP" + | INFIX_AMP_OP _ -> "INFIX_AMP_OP" + | INFIX_STAR_DIV_MOD_OP _ -> "INFIX_STAR_DIV_MOD_OP" + | PREFIX_OP _ -> "PREFIX_OP" + | INFIX_BAR_OP _ -> "INFIX_BAR_OP" + | INFIX_AT_HAT_OP _ -> "INFIX_AT_HAT_OP" + | INFIX_COMPARE_OP _ -> "INFIX_COMPARE_OP" + | INFIX_STAR_STAR_OP _ -> "INFIX_STAR_STAR_OP" + | IDENT _ -> "IDENT" + | KEYWORD_STRING _ -> "KEYWORD_STRING" + | STRING _ -> "STRING" + | BYTEARRAY _ -> "BYTEARRAY" + +// This function gets the data carried by a token as an object +let _fsyacc_dataOfToken (t:token) = + match t with + | HASH_IF _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | HASH_ELSE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | HASH_ENDIF _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | COMMENT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | WHITESPACE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | HASH_LINE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | HASH_LIGHT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INACTIVECODE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | LINE_COMMENT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | STRING_TEXT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | EOF _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | LEX_FAILURE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | ODUMMY _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | OINTERFACE_MEMBER -> (null : System.Object) + | OBLOCKEND -> (null : System.Object) + | OBLOCKEND_COMING_SOON -> (null : System.Object) + | OBLOCKEND_IS_HERE -> (null : System.Object) + | ORIGHT_BLOCK_END -> (null : System.Object) + | ODECLEND -> (null : System.Object) + | OEND -> (null : System.Object) + | OBLOCKSEP -> (null : System.Object) + | OBLOCKBEGIN -> (null : System.Object) + | ORESET -> (null : System.Object) + | OFUN -> (null : System.Object) + | OFUNCTION -> (null : System.Object) + | OWITH -> (null : System.Object) + | OELSE -> (null : System.Object) + | OTHEN -> (null : System.Object) + | ODO_BANG -> (null : System.Object) + | ODO -> (null : System.Object) + | OBINDER _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | OLET _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | HIGH_PRECEDENCE_TYAPP -> (null : System.Object) + | HIGH_PRECEDENCE_PAREN_APP -> (null : System.Object) + | HIGH_PRECEDENCE_BRACK_APP -> (null : System.Object) + | TYPE_COMING_SOON -> (null : System.Object) + | TYPE_IS_HERE -> (null : System.Object) + | MODULE_COMING_SOON -> (null : System.Object) + | MODULE_IS_HERE -> (null : System.Object) + | EXTERN -> (null : System.Object) + | VOID -> (null : System.Object) + | PUBLIC -> (null : System.Object) + | PRIVATE -> (null : System.Object) + | INTERNAL -> (null : System.Object) + | GLOBAL -> (null : System.Object) + | STATIC -> (null : System.Object) + | MEMBER -> (null : System.Object) + | CLASS -> (null : System.Object) + | ABSTRACT -> (null : System.Object) + | OVERRIDE -> (null : System.Object) + | DEFAULT -> (null : System.Object) + | CONSTRUCTOR -> (null : System.Object) + | INHERIT -> (null : System.Object) + | GREATER_RBRACK -> (null : System.Object) + | STRUCT -> (null : System.Object) + | SIG -> (null : System.Object) + | BAR -> (null : System.Object) + | RBRACK -> (null : System.Object) + | RBRACE -> (null : System.Object) + | RBRACE_COMING_SOON -> (null : System.Object) + | RBRACE_IS_HERE -> (null : System.Object) + | MINUS -> (null : System.Object) + | DOLLAR -> (null : System.Object) + | LBRACE_LESS -> (null : System.Object) + | BAR_RBRACK -> (null : System.Object) + | GREATER_RBRACE -> (null : System.Object) + | UNDERSCORE -> (null : System.Object) + | SEMICOLON_SEMICOLON -> (null : System.Object) + | LARROW -> (null : System.Object) + | EQUALS -> (null : System.Object) + | LBRACK -> (null : System.Object) + | LBRACK_BAR -> (null : System.Object) + | LBRACK_LESS -> (null : System.Object) + | LBRACE -> (null : System.Object) + | QMARK -> (null : System.Object) + | QMARK_QMARK -> (null : System.Object) + | DOT -> (null : System.Object) + | COLON -> (null : System.Object) + | COLON_COLON -> (null : System.Object) + | COLON_GREATER -> (null : System.Object) + | COLON_QMARK_GREATER -> (null : System.Object) + | COLON_QMARK -> (null : System.Object) + | COLON_EQUALS -> (null : System.Object) + | SEMICOLON -> (null : System.Object) + | WHEN -> (null : System.Object) + | WHILE -> (null : System.Object) + | WITH -> (null : System.Object) + | HASH -> (null : System.Object) + | AMP -> (null : System.Object) + | AMP_AMP -> (null : System.Object) + | QUOTE -> (null : System.Object) + | LPAREN -> (null : System.Object) + | RPAREN -> (null : System.Object) + | RPAREN_COMING_SOON -> (null : System.Object) + | RPAREN_IS_HERE -> (null : System.Object) + | STAR -> (null : System.Object) + | COMMA -> (null : System.Object) + | RARROW -> (null : System.Object) + | GREATER_BAR_RBRACK -> (null : System.Object) + | LPAREN_STAR_RPAREN -> (null : System.Object) + | OPEN -> (null : System.Object) + | OR -> (null : System.Object) + | REC -> (null : System.Object) + | THEN -> (null : System.Object) + | TO -> (null : System.Object) + | TRUE -> (null : System.Object) + | TRY -> (null : System.Object) + | TYPE -> (null : System.Object) + | VAL -> (null : System.Object) + | INLINE -> (null : System.Object) + | INTERFACE -> (null : System.Object) + | INSTANCE -> (null : System.Object) + | CONST -> (null : System.Object) + | LAZY -> (null : System.Object) + | OLAZY -> (null : System.Object) + | MATCH -> (null : System.Object) + | MUTABLE -> (null : System.Object) + | NEW -> (null : System.Object) + | OF -> (null : System.Object) + | EXCEPTION -> (null : System.Object) + | FALSE -> (null : System.Object) + | FOR -> (null : System.Object) + | FUN -> (null : System.Object) + | FUNCTION -> (null : System.Object) + | IF -> (null : System.Object) + | IN -> (null : System.Object) + | JOIN_IN -> (null : System.Object) + | FINALLY -> (null : System.Object) + | DO_BANG -> (null : System.Object) + | AND -> (null : System.Object) + | AS -> (null : System.Object) + | ASSERT -> (null : System.Object) + | OASSERT -> (null : System.Object) + | ASR -> (null : System.Object) + | BEGIN -> (null : System.Object) + | DO -> (null : System.Object) + | DONE -> (null : System.Object) + | DOWNTO -> (null : System.Object) + | ELSE -> (null : System.Object) + | ELIF -> (null : System.Object) + | END -> (null : System.Object) + | DOT_DOT -> (null : System.Object) + | BAR_BAR -> (null : System.Object) + | UPCAST -> (null : System.Object) + | DOWNCAST -> (null : System.Object) + | NULL -> (null : System.Object) + | RESERVED -> (null : System.Object) + | MODULE -> (null : System.Object) + | NAMESPACE -> (null : System.Object) + | DELEGATE -> (null : System.Object) + | CONSTRAINT -> (null : System.Object) + | BASE -> (null : System.Object) + | LQUOTE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | RQUOTE _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | RQUOTE_DOT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | PERCENT_OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | BINDER _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | LESS _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | GREATER _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | LET _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | YIELD _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | YIELD_BANG _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | BIGNUM _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | DECIMAL _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | CHAR _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | IEEE64 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | IEEE32 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | NATIVEINT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | UNATIVEINT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | UINT64 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | UINT32 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | UINT16 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | UINT8 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INT64 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INT32 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INT32_DOT_DOT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INT16 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INT8 _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | FUNKY_OPERATOR_NAME _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | ADJACENT_PREFIX_OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | PLUS_MINUS_OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INFIX_AMP_OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INFIX_STAR_DIV_MOD_OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | PREFIX_OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INFIX_BAR_OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INFIX_AT_HAT_OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INFIX_COMPARE_OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | INFIX_STAR_STAR_OP _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | IDENT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | KEYWORD_STRING _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | STRING _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x + | BYTEARRAY _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x +let _fsyacc_gotos = [| 0us; 65535us; 0us; 65535us; 0us; 65535us; 1us; 65535us; 4us; 5us; 23us; 65535us; 0us; 160us; 2us; 120us; 4us; 36us; 25us; 36us; 27us; 36us; 29us; 36us; 59us; 160us; 66us; 120us; 70us; 160us; 75us; 120us; 79us; 160us; 89us; 160us; 92us; 160us; 94us; 120us; 106us; 120us; 110us; 120us; 112us; 120us; 117us; 120us; 138us; 160us; 142us; 120us; 152us; 120us; 189us; 160us; 193us; 160us; 249us; 65535us; 11us; 14us; 34us; 764us; 74us; 764us; 104us; 764us; 126us; 764us; 179us; 764us; 182us; 764us; 184us; 764us; 213us; 764us; 217us; 764us; 222us; 764us; 253us; 764us; 300us; 764us; 306us; 764us; 310us; 764us; 312us; 764us; 321us; 764us; 353us; 764us; 387us; 764us; 390us; 764us; 392us; 764us; 395us; 764us; 403us; 764us; 409us; 764us; 416us; 764us; 427us; 764us; 430us; 764us; 439us; 764us; 446us; 764us; 449us; 764us; 471us; 764us; 474us; 764us; 507us; 764us; 515us; 764us; 524us; 525us; 570us; 764us; 573us; 764us; 610us; 764us; 613us; 764us; 616us; 764us; 628us; 764us; 632us; 764us; 636us; 764us; 647us; 764us; 660us; 764us; 670us; 764us; 676us; 764us; 722us; 764us; 725us; 764us; 729us; 764us; 739us; 764us; 745us; 764us; 775us; 764us; 798us; 764us; 799us; 764us; 803us; 764us; 804us; 764us; 805us; 764us; 806us; 764us; 808us; 764us; 810us; 764us; 812us; 764us; 814us; 764us; 817us; 764us; 819us; 764us; 821us; 764us; 829us; 764us; 832us; 764us; 844us; 764us; 865us; 764us; 868us; 764us; 870us; 764us; 871us; 764us; 873us; 764us; 874us; 764us; 875us; 764us; 876us; 764us; 883us; 764us; 885us; 764us; 887us; 764us; 892us; 764us; 899us; 764us; 904us; 764us; 906us; 764us; 909us; 764us; 912us; 764us; 928us; 764us; 931us; 764us; 934us; 764us; 940us; 764us; 944us; 764us; 948us; 764us; 950us; 764us; 955us; 764us; 957us; 764us; 959us; 764us; 961us; 764us; 963us; 764us; 965us; 764us; 974us; 764us; 976us; 764us; 984us; 764us; 991us; 764us; 997us; 764us; 999us; 764us; 1001us; 764us; 1002us; 764us; 1005us; 764us; 1007us; 764us; 1008us; 764us; 1011us; 764us; 1014us; 764us; 1017us; 764us; 1019us; 764us; 1024us; 764us; 1061us; 764us; 1063us; 764us; 1065us; 764us; 1067us; 764us; 1069us; 764us; 1072us; 764us; 1073us; 764us; 1074us; 764us; 1075us; 764us; 1076us; 764us; 1077us; 764us; 1078us; 764us; 1079us; 764us; 1080us; 764us; 1081us; 764us; 1082us; 764us; 1083us; 764us; 1084us; 764us; 1085us; 764us; 1086us; 764us; 1087us; 764us; 1088us; 764us; 1089us; 764us; 1090us; 764us; 1091us; 764us; 1113us; 764us; 1116us; 764us; 1118us; 764us; 1123us; 764us; 1130us; 764us; 1135us; 764us; 1136us; 764us; 1140us; 764us; 1142us; 764us; 1146us; 764us; 1148us; 764us; 1152us; 764us; 1155us; 764us; 1157us; 764us; 1159us; 764us; 1160us; 764us; 1162us; 764us; 1163us; 764us; 1165us; 764us; 1166us; 764us; 1168us; 764us; 1169us; 764us; 1171us; 764us; 1172us; 764us; 1174us; 764us; 1175us; 764us; 1177us; 764us; 1178us; 764us; 1181us; 764us; 1182us; 764us; 1187us; 764us; 1189us; 764us; 1191us; 764us; 1192us; 764us; 1195us; 764us; 1202us; 764us; 1203us; 764us; 1206us; 764us; 1207us; 764us; 1220us; 764us; 1229us; 764us; 1236us; 764us; 1244us; 764us; 1247us; 764us; 1250us; 764us; 1253us; 764us; 1254us; 764us; 1265us; 764us; 1272us; 764us; 1273us; 764us; 1279us; 764us; 1285us; 764us; 1286us; 764us; 1287us; 764us; 1303us; 764us; 1313us; 764us; 1326us; 764us; 1327us; 764us; 1329us; 764us; 1331us; 764us; 1335us; 764us; 1336us; 764us; 1337us; 1338us; 1340us; 764us; 1346us; 764us; 1349us; 764us; 1351us; 764us; 1353us; 764us; 1355us; 764us; 1359us; 764us; 1364us; 764us; 1389us; 764us; 1414us; 764us; 1421us; 764us; 1423us; 764us; 1426us; 764us; 1428us; 764us; 1439us; 764us; 1441us; 764us; 1448us; 764us; 1451us; 764us; 1454us; 764us; 1457us; 764us; 1459us; 764us; 1461us; 764us; 1465us; 764us; 1468us; 764us; 1472us; 764us; 1475us; 764us; 1478us; 764us; 1480us; 764us; 1482us; 764us; 1485us; 764us; 1487us; 764us; 1490us; 764us; 1509us; 764us; 1510us; 764us; 1518us; 764us; 1519us; 764us; 1524us; 764us; 1525us; 764us; 1537us; 764us; 1541us; 764us; 1555us; 764us; 1559us; 764us; 1566us; 764us; 1580us; 764us; 1582us; 764us; 1593us; 764us; 1us; 65535us; 11us; 15us; 1us; 65535us; 10us; 11us; 7us; 65535us; 4us; 18us; 19us; 20us; 21us; 22us; 23us; 24us; 25us; 18us; 27us; 18us; 29us; 18us; 4us; 65535us; 4us; 6us; 25us; 26us; 27us; 28us; 29us; 30us; 5us; 65535us; 4us; 19us; 25us; 19us; 27us; 19us; 29us; 19us; 31us; 32us; 4us; 65535us; 4us; 21us; 25us; 21us; 27us; 21us; 29us; 21us; 4us; 65535us; 4us; 23us; 25us; 23us; 27us; 23us; 29us; 23us; 1us; 65535us; 0us; 1us; 1us; 65535us; 2us; 3us; 6us; 65535us; 34us; 132us; 69us; 70us; 74us; 75us; 104us; 132us; 122us; 132us; 163us; 164us; 4us; 65535us; 54us; 58us; 56us; 58us; 61us; 65us; 63us; 65us; 1us; 65535us; 0us; 37us; 2us; 65535us; 54us; 55us; 56us; 57us; 2us; 65535us; 54us; 56us; 56us; 56us; 1us; 65535us; 2us; 43us; 2us; 65535us; 61us; 62us; 63us; 64us; 2us; 65535us; 61us; 63us; 63us; 63us; 2us; 65535us; 0us; 54us; 59us; 60us; 2us; 65535us; 2us; 61us; 66us; 67us; 3us; 65535us; 0us; 72us; 59us; 72us; 70us; 71us; 6us; 65535us; 0us; 78us; 59us; 78us; 70us; 78us; 79us; 80us; 189us; 190us; 193us; 194us; 9us; 65535us; 0us; 86us; 59us; 86us; 70us; 86us; 79us; 86us; 89us; 90us; 92us; 93us; 138us; 187us; 189us; 86us; 193us; 86us; 3us; 65535us; 2us; 77us; 66us; 77us; 75us; 76us; 5us; 65535us; 2us; 101us; 66us; 101us; 75us; 101us; 94us; 95us; 152us; 153us; 9us; 65535us; 2us; 102us; 66us; 102us; 75us; 102us; 94us; 102us; 106us; 107us; 112us; 113us; 117us; 118us; 142us; 146us; 152us; 102us; 10us; 65535us; 2us; 108us; 66us; 108us; 75us; 108us; 94us; 108us; 106us; 108us; 110us; 111us; 112us; 108us; 117us; 108us; 142us; 108us; 152us; 108us; 10us; 65535us; 2us; 110us; 66us; 110us; 75us; 110us; 94us; 110us; 106us; 110us; 110us; 110us; 112us; 110us; 117us; 110us; 142us; 110us; 152us; 110us; 15us; 65535us; 2us; 119us; 4us; 31us; 25us; 31us; 27us; 31us; 29us; 31us; 31us; 31us; 66us; 119us; 75us; 119us; 94us; 119us; 106us; 119us; 110us; 119us; 112us; 119us; 117us; 119us; 142us; 119us; 152us; 119us; 1us; 65535us; 165us; 166us; 1us; 65535us; 133us; 134us; 2us; 65535us; 133us; 150us; 142us; 143us; 0us; 65535us; 1us; 65535us; 329us; 332us; 9us; 65535us; 0us; 88us; 59us; 88us; 70us; 88us; 79us; 88us; 89us; 88us; 92us; 88us; 138us; 88us; 189us; 88us; 193us; 88us; 9us; 65535us; 0us; 161us; 59us; 161us; 70us; 161us; 79us; 161us; 89us; 161us; 92us; 161us; 138us; 161us; 189us; 161us; 193us; 161us; 2us; 65535us; 180us; 181us; 308us; 309us; 1us; 65535us; 165us; 167us; 80us; 65535us; 0us; 68us; 2us; 73us; 4us; 33us; 25us; 33us; 27us; 33us; 29us; 33us; 31us; 121us; 59us; 68us; 66us; 73us; 70us; 162us; 75us; 103us; 79us; 162us; 89us; 162us; 92us; 162us; 94us; 103us; 106us; 103us; 110us; 121us; 112us; 103us; 117us; 103us; 128us; 323us; 138us; 162us; 142us; 103us; 152us; 103us; 157us; 400us; 172us; 173us; 189us; 162us; 193us; 162us; 232us; 323us; 235us; 323us; 238us; 506us; 241us; 298us; 243us; 297us; 256us; 297us; 262us; 297us; 266us; 297us; 270us; 297us; 277us; 297us; 318us; 323us; 326us; 323us; 329us; 333us; 330us; 506us; 338us; 506us; 340us; 401us; 342us; 400us; 356us; 400us; 360us; 400us; 362us; 400us; 366us; 400us; 372us; 400us; 375us; 400us; 386us; 387us; 433us; 323us; 462us; 493us; 465us; 400us; 468us; 297us; 485us; 493us; 491us; 493us; 518us; 642us; 538us; 547us; 543us; 547us; 544us; 547us; 550us; 547us; 555us; 547us; 580us; 297us; 587us; 297us; 596us; 606us; 599us; 606us; 604us; 606us; 639us; 642us; 654us; 655us; 667us; 718us; 673us; 718us; 685us; 712us; 690us; 699us; 695us; 699us; 697us; 699us; 715us; 718us; 1301us; 297us; 1401us; 494us; 1403us; 718us; 114us; 65535us; 0us; 196us; 2us; 135us; 4us; 135us; 25us; 135us; 27us; 135us; 29us; 135us; 31us; 135us; 59us; 196us; 66us; 135us; 70us; 196us; 75us; 135us; 79us; 196us; 89us; 196us; 92us; 196us; 94us; 135us; 106us; 135us; 110us; 135us; 112us; 135us; 117us; 135us; 128us; 196us; 138us; 196us; 142us; 135us; 152us; 135us; 157us; 196us; 172us; 196us; 179us; 1459us; 189us; 196us; 193us; 196us; 197us; 198us; 232us; 196us; 235us; 196us; 238us; 196us; 241us; 196us; 243us; 196us; 253us; 1459us; 256us; 196us; 262us; 196us; 266us; 196us; 270us; 196us; 277us; 196us; 306us; 1459us; 318us; 196us; 321us; 1459us; 326us; 196us; 329us; 196us; 330us; 196us; 338us; 196us; 340us; 196us; 342us; 196us; 353us; 1459us; 356us; 196us; 360us; 196us; 362us; 196us; 366us; 196us; 372us; 196us; 375us; 196us; 386us; 196us; 416us; 1459us; 433us; 196us; 462us; 196us; 465us; 196us; 468us; 196us; 485us; 196us; 491us; 196us; 518us; 196us; 538us; 196us; 543us; 196us; 544us; 196us; 550us; 196us; 555us; 196us; 580us; 196us; 587us; 196us; 596us; 196us; 599us; 196us; 604us; 196us; 613us; 1459us; 639us; 196us; 654us; 196us; 667us; 196us; 673us; 196us; 685us; 196us; 690us; 196us; 695us; 196us; 697us; 196us; 715us; 196us; 777us; 777us; 778us; 777us; 780us; 777us; 829us; 870us; 832us; 870us; 844us; 870us; 865us; 870us; 870us; 870us; 871us; 870us; 873us; 870us; 874us; 870us; 875us; 870us; 876us; 870us; 883us; 870us; 885us; 870us; 974us; 870us; 1116us; 870us; 1118us; 870us; 1123us; 870us; 1130us; 870us; 1301us; 196us; 1401us; 196us; 1403us; 196us; 1439us; 870us; 1441us; 870us; 1448us; 1459us; 1451us; 1459us; 1454us; 1459us; 1457us; 1459us; 114us; 65535us; 0us; 197us; 2us; 197us; 4us; 197us; 25us; 197us; 27us; 197us; 29us; 197us; 31us; 197us; 59us; 197us; 66us; 197us; 70us; 197us; 75us; 197us; 79us; 197us; 89us; 197us; 92us; 197us; 94us; 197us; 106us; 197us; 110us; 197us; 112us; 197us; 117us; 197us; 128us; 197us; 138us; 197us; 142us; 197us; 152us; 197us; 157us; 197us; 172us; 197us; 179us; 197us; 189us; 197us; 193us; 197us; 197us; 197us; 232us; 197us; 235us; 197us; 238us; 197us; 241us; 197us; 243us; 197us; 253us; 197us; 256us; 197us; 262us; 197us; 266us; 197us; 270us; 197us; 277us; 197us; 306us; 197us; 318us; 197us; 321us; 197us; 326us; 197us; 329us; 197us; 330us; 197us; 338us; 197us; 340us; 197us; 342us; 197us; 353us; 197us; 356us; 197us; 360us; 197us; 362us; 197us; 366us; 197us; 372us; 197us; 375us; 197us; 386us; 197us; 416us; 197us; 433us; 197us; 462us; 197us; 465us; 197us; 468us; 197us; 485us; 197us; 491us; 197us; 518us; 197us; 538us; 197us; 543us; 197us; 544us; 197us; 550us; 197us; 555us; 197us; 580us; 197us; 587us; 197us; 596us; 197us; 599us; 197us; 604us; 197us; 613us; 197us; 639us; 197us; 654us; 197us; 667us; 197us; 673us; 197us; 685us; 197us; 690us; 197us; 695us; 197us; 697us; 197us; 715us; 197us; 777us; 197us; 778us; 197us; 780us; 197us; 829us; 197us; 832us; 197us; 844us; 197us; 865us; 197us; 870us; 197us; 871us; 197us; 873us; 197us; 874us; 197us; 875us; 197us; 876us; 197us; 883us; 197us; 885us; 197us; 974us; 197us; 1116us; 197us; 1118us; 197us; 1123us; 197us; 1130us; 197us; 1301us; 197us; 1401us; 197us; 1403us; 197us; 1439us; 197us; 1441us; 197us; 1448us; 197us; 1451us; 197us; 1454us; 197us; 1457us; 197us; 1us; 65535us; 199us; 200us; 2us; 65535us; 199us; 209us; 210us; 211us; 2us; 65535us; 199us; 215us; 210us; 215us; 2us; 65535us; 69us; 168us; 163us; 168us; 2us; 65535us; 232us; 233us; 235us; 236us; 3us; 65535us; 232us; 234us; 235us; 234us; 318us; 319us; 1us; 65535us; 238us; 239us; 2us; 65535us; 238us; 248us; 241us; 242us; 2us; 65535us; 238us; 251us; 241us; 251us; 2us; 65535us; 238us; 255us; 241us; 255us; 3us; 65535us; 256us; 257us; 266us; 267us; 468us; 469us; 8us; 65535us; 241us; 263us; 243us; 244us; 256us; 274us; 262us; 263us; 266us; 274us; 270us; 271us; 277us; 278us; 468us; 274us; 8us; 65535us; 241us; 275us; 243us; 275us; 256us; 275us; 262us; 275us; 266us; 275us; 270us; 275us; 277us; 275us; 468us; 275us; 4us; 65535us; 299us; 285us; 300us; 285us; 402us; 406us; 403us; 406us; 2us; 65535us; 299us; 301us; 300us; 301us; 3us; 65535us; 307us; 308us; 417us; 418us; 447us; 448us; 2us; 65535us; 288us; 289us; 290us; 291us; 11us; 65535us; 241us; 276us; 243us; 276us; 256us; 276us; 262us; 276us; 266us; 276us; 270us; 276us; 277us; 276us; 468us; 276us; 580us; 581us; 587us; 588us; 1301us; 1302us; 6us; 65535us; 128us; 329us; 232us; 237us; 235us; 237us; 318us; 237us; 326us; 329us; 433us; 329us; 2us; 65535us; 129us; 130us; 327us; 328us; 3us; 65535us; 128us; 129us; 326us; 327us; 433us; 434us; 2us; 65535us; 330us; 331us; 338us; 339us; 3us; 65535us; 330us; 348us; 338us; 348us; 340us; 341us; 3us; 65535us; 330us; 351us; 338us; 351us; 340us; 351us; 3us; 65535us; 330us; 355us; 338us; 355us; 340us; 355us; 3us; 65535us; 157us; 158us; 356us; 357us; 465us; 466us; 10us; 65535us; 157us; 370us; 340us; 363us; 342us; 343us; 356us; 370us; 360us; 373us; 362us; 363us; 366us; 367us; 372us; 373us; 375us; 376us; 465us; 370us; 10us; 65535us; 157us; 371us; 340us; 371us; 342us; 371us; 356us; 371us; 360us; 371us; 362us; 371us; 366us; 371us; 372us; 371us; 375us; 371us; 465us; 371us; 1us; 65535us; 394us; 397us; 2us; 65535us; 377us; 378us; 379us; 380us; 3us; 65535us; 377us; 383us; 379us; 383us; 384us; 385us; 3us; 65535us; 406us; 407us; 495us; 496us; 501us; 502us; 2us; 65535us; 402us; 412us; 403us; 412us; 10us; 65535us; 157us; 374us; 340us; 374us; 342us; 374us; 356us; 374us; 360us; 374us; 362us; 374us; 366us; 374us; 372us; 374us; 375us; 374us; 465us; 374us; 3us; 65535us; 280us; 423us; 402us; 421us; 403us; 421us; 2us; 65535us; 406us; 425us; 495us; 498us; 1us; 65535us; 444us; 445us; 39us; 65535us; 387us; 807us; 392us; 807us; 427us; 839us; 722us; 807us; 798us; 807us; 799us; 807us; 803us; 807us; 804us; 807us; 805us; 807us; 806us; 807us; 808us; 839us; 810us; 839us; 812us; 839us; 817us; 839us; 819us; 839us; 821us; 839us; 829us; 807us; 832us; 807us; 844us; 807us; 865us; 807us; 870us; 807us; 871us; 807us; 873us; 807us; 874us; 807us; 875us; 807us; 876us; 807us; 883us; 807us; 885us; 807us; 974us; 807us; 1001us; 807us; 1007us; 807us; 1116us; 807us; 1118us; 807us; 1123us; 807us; 1130us; 807us; 1421us; 839us; 1426us; 839us; 1439us; 807us; 1441us; 807us; 10us; 65535us; 49us; 50us; 175us; 176us; 302us; 303us; 323us; 532us; 436us; 437us; 442us; 443us; 606us; 607us; 644us; 645us; 655us; 656us; 686us; 687us; 61us; 65535us; 33us; 461us; 49us; 457us; 68us; 461us; 73us; 461us; 103us; 461us; 121us; 461us; 162us; 461us; 175us; 457us; 297us; 461us; 298us; 461us; 302us; 457us; 323us; 457us; 333us; 461us; 387us; 455us; 392us; 455us; 400us; 461us; 401us; 461us; 427us; 455us; 436us; 457us; 442us; 457us; 506us; 461us; 606us; 457us; 644us; 457us; 655us; 457us; 686us; 457us; 722us; 455us; 798us; 455us; 799us; 455us; 803us; 455us; 804us; 455us; 805us; 455us; 806us; 455us; 808us; 455us; 810us; 455us; 812us; 455us; 817us; 455us; 819us; 455us; 821us; 455us; 829us; 455us; 832us; 455us; 844us; 455us; 865us; 455us; 870us; 455us; 871us; 455us; 873us; 455us; 874us; 455us; 875us; 455us; 876us; 455us; 883us; 455us; 885us; 455us; 974us; 455us; 1001us; 455us; 1007us; 455us; 1116us; 455us; 1118us; 455us; 1123us; 455us; 1130us; 455us; 1421us; 455us; 1426us; 455us; 1439us; 455us; 1441us; 455us; 12us; 65535us; 33us; 34us; 68us; 69us; 73us; 74us; 103us; 104us; 121us; 122us; 162us; 163us; 297us; 299us; 298us; 300us; 333us; 334us; 400us; 402us; 401us; 403us; 506us; 507us; 1us; 65535us; 410us; 411us; 4us; 65535us; 343us; 344us; 345us; 346us; 348us; 349us; 649us; 650us; 5us; 65535us; 237us; 240us; 244us; 245us; 246us; 247us; 248us; 249us; 651us; 652us; 2us; 65535us; 402us; 420us; 403us; 420us; 2us; 65535us; 336us; 337us; 428us; 429us; 2us; 65535us; 336us; 478us; 428us; 478us; 2us; 65535us; 472us; 473us; 475us; 476us; 3us; 65535us; 472us; 481us; 475us; 481us; 1184us; 1399us; 2us; 65535us; 462us; 463us; 1401us; 1406us; 4us; 65535us; 462us; 489us; 485us; 486us; 491us; 492us; 1401us; 489us; 4us; 65535us; 462us; 490us; 485us; 490us; 491us; 490us; 1401us; 490us; 2us; 65535us; 493us; 495us; 494us; 495us; 5us; 65535us; 238us; 250us; 241us; 250us; 330us; 350us; 338us; 350us; 340us; 350us; 6us; 65535us; 300us; 514us; 403us; 514us; 507us; 514us; 610us; 634us; 632us; 634us; 660us; 634us; 1us; 65535us; 515us; 516us; 5us; 65535us; 238us; 256us; 241us; 256us; 330us; 356us; 338us; 356us; 340us; 356us; 9us; 65535us; 299us; 310us; 300us; 310us; 402us; 409us; 403us; 409us; 1395us; 1414us; 1397us; 1414us; 1408us; 1414us; 1410us; 1414us; 1412us; 1414us; 1us; 65535us; 323us; 324us; 1us; 65535us; 532us; 534us; 3us; 65535us; 538us; 539us; 550us; 541us; 555us; 542us; 5us; 65535us; 538us; 546us; 543us; 545us; 544us; 545us; 550us; 546us; 555us; 546us; 1us; 65535us; 533us; 536us; 1us; 65535us; 555us; 556us; 4us; 65535us; 177us; 559us; 304us; 559us; 414us; 559us; 807us; 560us; 3us; 65535us; 177us; 178us; 304us; 305us; 414us; 415us; 1us; 65535us; 807us; 808us; 3us; 65535us; 324us; 325us; 541us; 551us; 556us; 557us; 3us; 65535us; 561us; 562us; 1445us; 563us; 1447us; 564us; 4us; 65535us; 561us; 567us; 565us; 566us; 1445us; 567us; 1447us; 567us; 1us; 65535us; 583us; 584us; 3us; 65535us; 300us; 513us; 403us; 513us; 507us; 513us; 5us; 65535us; 300us; 596us; 403us; 596us; 507us; 596us; 598us; 599us; 603us; 604us; 3us; 65535us; 596us; 597us; 599us; 600us; 604us; 605us; 3us; 65535us; 596us; 603us; 599us; 603us; 604us; 603us; 1us; 65535us; 607us; 608us; 3us; 65535us; 300us; 598us; 403us; 598us; 507us; 598us; 3us; 65535us; 300us; 601us; 403us; 601us; 507us; 601us; 3us; 65535us; 610us; 611us; 632us; 633us; 660us; 661us; 2us; 65535us; 518us; 519us; 639us; 640us; 2us; 65535us; 518us; 638us; 639us; 638us; 3us; 65535us; 314us; 315us; 316us; 317us; 642us; 643us; 4us; 65535us; 34us; 131us; 74us; 131us; 104us; 131us; 122us; 131us; 2us; 65535us; 69us; 169us; 163us; 169us; 6us; 65535us; 34us; 654us; 69us; 654us; 74us; 654us; 104us; 654us; 122us; 654us; 163us; 654us; 6us; 65535us; 34us; 649us; 69us; 651us; 74us; 649us; 104us; 649us; 122us; 649us; 163us; 651us; 1us; 65535us; 656us; 657us; 1us; 65535us; 657us; 658us; 15us; 65535us; 2us; 137us; 4us; 137us; 25us; 137us; 27us; 137us; 29us; 137us; 31us; 137us; 66us; 137us; 75us; 137us; 94us; 137us; 106us; 137us; 110us; 137us; 112us; 137us; 117us; 137us; 142us; 137us; 152us; 137us; 111us; 65535us; 34us; 124us; 74us; 124us; 104us; 124us; 122us; 123us; 126us; 927us; 182us; 927us; 184us; 927us; 280us; 679us; 390us; 927us; 395us; 927us; 402us; 679us; 403us; 679us; 430us; 927us; 446us; 927us; 670us; 927us; 676us; 927us; 725us; 927us; 729us; 927us; 739us; 927us; 887us; 927us; 892us; 927us; 904us; 927us; 906us; 927us; 909us; 927us; 912us; 927us; 928us; 927us; 931us; 927us; 934us; 927us; 940us; 927us; 944us; 927us; 948us; 927us; 950us; 927us; 955us; 927us; 957us; 927us; 959us; 927us; 961us; 927us; 963us; 927us; 965us; 927us; 976us; 927us; 984us; 927us; 991us; 927us; 997us; 927us; 999us; 927us; 1002us; 927us; 1005us; 927us; 1008us; 927us; 1011us; 927us; 1014us; 927us; 1017us; 927us; 1019us; 927us; 1024us; 927us; 1067us; 927us; 1069us; 927us; 1072us; 927us; 1073us; 927us; 1074us; 927us; 1075us; 927us; 1076us; 927us; 1077us; 927us; 1078us; 927us; 1079us; 927us; 1080us; 927us; 1081us; 927us; 1082us; 927us; 1083us; 927us; 1084us; 927us; 1085us; 927us; 1086us; 927us; 1087us; 927us; 1088us; 927us; 1089us; 927us; 1090us; 927us; 1091us; 927us; 1113us; 927us; 1135us; 927us; 1136us; 927us; 1140us; 927us; 1142us; 927us; 1146us; 927us; 1148us; 927us; 1152us; 927us; 1155us; 927us; 1157us; 927us; 1220us; 927us; 1229us; 927us; 1236us; 927us; 1244us; 927us; 1247us; 927us; 1250us; 927us; 1253us; 927us; 1254us; 927us; 1265us; 927us; 1272us; 927us; 1273us; 927us; 1279us; 927us; 1285us; 927us; 1286us; 927us; 1287us; 927us; 1303us; 927us; 1313us; 927us; 1326us; 927us; 1327us; 927us; 1329us; 927us; 1331us; 927us; 1335us; 927us; 1336us; 927us; 1359us; 927us; 1364us; 927us; 1389us; 927us; 1423us; 927us; 1428us; 927us; 7us; 65535us; 34us; 127us; 74us; 127us; 104us; 127us; 122us; 127us; 280us; 680us; 402us; 680us; 403us; 680us; 111us; 65535us; 34us; 126us; 74us; 126us; 104us; 126us; 122us; 125us; 126us; 912us; 182us; 931us; 184us; 931us; 280us; 681us; 390us; 912us; 395us; 912us; 402us; 681us; 403us; 681us; 430us; 912us; 446us; 912us; 670us; 912us; 676us; 912us; 725us; 912us; 729us; 912us; 739us; 912us; 887us; 912us; 892us; 912us; 904us; 912us; 906us; 912us; 909us; 912us; 912us; 912us; 928us; 912us; 931us; 912us; 934us; 912us; 940us; 912us; 944us; 912us; 948us; 912us; 950us; 931us; 955us; 931us; 957us; 931us; 959us; 931us; 961us; 931us; 963us; 931us; 965us; 912us; 976us; 912us; 984us; 912us; 991us; 912us; 997us; 931us; 999us; 931us; 1002us; 912us; 1005us; 912us; 1008us; 912us; 1011us; 912us; 1014us; 912us; 1017us; 912us; 1019us; 912us; 1024us; 912us; 1067us; 931us; 1069us; 931us; 1072us; 931us; 1073us; 931us; 1074us; 931us; 1075us; 931us; 1076us; 931us; 1077us; 931us; 1078us; 931us; 1079us; 931us; 1080us; 931us; 1081us; 931us; 1082us; 931us; 1083us; 931us; 1084us; 931us; 1085us; 931us; 1086us; 931us; 1087us; 931us; 1088us; 931us; 1089us; 931us; 1090us; 931us; 1091us; 931us; 1113us; 912us; 1135us; 931us; 1136us; 912us; 1140us; 931us; 1142us; 912us; 1146us; 931us; 1148us; 912us; 1152us; 931us; 1155us; 931us; 1157us; 931us; 1220us; 912us; 1229us; 912us; 1236us; 912us; 1244us; 931us; 1247us; 931us; 1250us; 931us; 1253us; 931us; 1254us; 931us; 1265us; 912us; 1272us; 912us; 1273us; 912us; 1279us; 912us; 1285us; 912us; 1286us; 912us; 1287us; 912us; 1303us; 912us; 1313us; 912us; 1326us; 931us; 1327us; 931us; 1329us; 912us; 1331us; 931us; 1335us; 931us; 1336us; 931us; 1359us; 931us; 1364us; 931us; 1389us; 931us; 1423us; 912us; 1428us; 912us; 110us; 65535us; 34us; 937us; 74us; 937us; 104us; 937us; 126us; 937us; 182us; 937us; 184us; 937us; 280us; 682us; 390us; 937us; 395us; 937us; 402us; 682us; 403us; 682us; 430us; 937us; 446us; 937us; 670us; 937us; 676us; 937us; 725us; 937us; 729us; 937us; 739us; 937us; 887us; 937us; 892us; 937us; 904us; 937us; 906us; 937us; 909us; 937us; 912us; 937us; 928us; 937us; 931us; 937us; 934us; 937us; 940us; 937us; 944us; 937us; 948us; 937us; 950us; 937us; 955us; 937us; 957us; 937us; 959us; 937us; 961us; 937us; 963us; 937us; 965us; 937us; 976us; 937us; 984us; 937us; 991us; 937us; 997us; 937us; 999us; 937us; 1002us; 937us; 1005us; 937us; 1008us; 937us; 1011us; 937us; 1014us; 937us; 1017us; 937us; 1019us; 937us; 1024us; 937us; 1067us; 937us; 1069us; 937us; 1072us; 937us; 1073us; 937us; 1074us; 937us; 1075us; 937us; 1076us; 937us; 1077us; 937us; 1078us; 937us; 1079us; 937us; 1080us; 937us; 1081us; 937us; 1082us; 937us; 1083us; 937us; 1084us; 937us; 1085us; 937us; 1086us; 937us; 1087us; 937us; 1088us; 937us; 1089us; 937us; 1090us; 937us; 1091us; 937us; 1113us; 937us; 1135us; 937us; 1136us; 937us; 1140us; 937us; 1142us; 937us; 1146us; 937us; 1148us; 937us; 1152us; 937us; 1155us; 937us; 1157us; 937us; 1220us; 937us; 1229us; 937us; 1236us; 937us; 1244us; 937us; 1247us; 937us; 1250us; 937us; 1253us; 937us; 1254us; 937us; 1265us; 937us; 1272us; 937us; 1273us; 937us; 1279us; 937us; 1285us; 937us; 1286us; 937us; 1287us; 937us; 1303us; 937us; 1313us; 937us; 1326us; 937us; 1327us; 937us; 1329us; 937us; 1331us; 937us; 1335us; 937us; 1336us; 937us; 1359us; 937us; 1364us; 937us; 1389us; 937us; 1423us; 937us; 1428us; 937us; 3us; 65535us; 280us; 405us; 402us; 404us; 403us; 404us; 4us; 65535us; 674us; 675us; 677us; 678us; 1009us; 1010us; 1020us; 1021us; 111us; 65535us; 34us; 669us; 74us; 669us; 104us; 669us; 122us; 669us; 126us; 669us; 182us; 669us; 184us; 669us; 280us; 669us; 390us; 669us; 395us; 669us; 402us; 669us; 403us; 669us; 430us; 669us; 446us; 669us; 670us; 669us; 676us; 669us; 725us; 669us; 729us; 669us; 739us; 669us; 887us; 669us; 892us; 669us; 904us; 669us; 906us; 669us; 909us; 669us; 912us; 669us; 928us; 669us; 931us; 669us; 934us; 669us; 940us; 669us; 944us; 669us; 948us; 669us; 950us; 669us; 955us; 669us; 957us; 669us; 959us; 669us; 961us; 669us; 963us; 669us; 965us; 669us; 976us; 669us; 984us; 669us; 991us; 669us; 997us; 669us; 999us; 669us; 1002us; 669us; 1005us; 669us; 1008us; 669us; 1011us; 669us; 1014us; 669us; 1017us; 669us; 1019us; 669us; 1024us; 669us; 1067us; 669us; 1069us; 669us; 1072us; 669us; 1073us; 669us; 1074us; 669us; 1075us; 669us; 1076us; 669us; 1077us; 669us; 1078us; 669us; 1079us; 669us; 1080us; 669us; 1081us; 669us; 1082us; 669us; 1083us; 669us; 1084us; 669us; 1085us; 669us; 1086us; 669us; 1087us; 669us; 1088us; 669us; 1089us; 669us; 1090us; 669us; 1091us; 669us; 1113us; 669us; 1135us; 669us; 1136us; 669us; 1140us; 669us; 1142us; 669us; 1146us; 669us; 1148us; 669us; 1152us; 669us; 1155us; 669us; 1157us; 669us; 1220us; 669us; 1229us; 669us; 1236us; 669us; 1244us; 669us; 1247us; 669us; 1250us; 669us; 1253us; 669us; 1254us; 669us; 1265us; 669us; 1272us; 669us; 1273us; 669us; 1279us; 669us; 1285us; 669us; 1286us; 669us; 1287us; 669us; 1303us; 669us; 1313us; 669us; 1326us; 669us; 1327us; 669us; 1329us; 669us; 1331us; 669us; 1335us; 669us; 1336us; 669us; 1359us; 669us; 1364us; 669us; 1389us; 669us; 1423us; 669us; 1428us; 669us; 1us; 65535us; 690us; 691us; 1us; 65535us; 690us; 693us; 3us; 65535us; 690us; 694us; 695us; 696us; 697us; 698us; 2us; 65535us; 699us; 700us; 712us; 703us; 1us; 65535us; 685us; 686us; 4us; 65535us; 667us; 668us; 673us; 674us; 1401us; 1402us; 1403us; 1404us; 2us; 65535us; 713us; 714us; 716us; 717us; 5us; 65535us; 667us; 713us; 673us; 713us; 715us; 716us; 1401us; 713us; 1403us; 713us; 2us; 65535us; 494us; 719us; 718us; 719us; 1us; 65535us; 725us; 726us; 2us; 65535us; 725us; 733us; 729us; 730us; 1us; 65535us; 734us; 735us; 1us; 65535us; 735us; 736us; 1us; 65535us; 737us; 738us; 2us; 65535us; 737us; 743us; 741us; 742us; 247us; 65535us; 34us; 766us; 74us; 766us; 104us; 766us; 126us; 766us; 179us; 1564us; 182us; 766us; 184us; 766us; 213us; 766us; 217us; 766us; 222us; 766us; 253us; 1564us; 300us; 1564us; 306us; 1564us; 310us; 1564us; 312us; 1564us; 321us; 1564us; 353us; 1564us; 387us; 766us; 390us; 766us; 392us; 766us; 395us; 766us; 403us; 1564us; 409us; 1564us; 416us; 1564us; 427us; 766us; 430us; 766us; 439us; 1564us; 446us; 766us; 449us; 1564us; 471us; 1564us; 474us; 766us; 507us; 1564us; 515us; 1564us; 524us; 1564us; 570us; 1564us; 573us; 1564us; 610us; 1564us; 613us; 1564us; 616us; 766us; 628us; 766us; 632us; 1564us; 636us; 1564us; 647us; 1564us; 660us; 1564us; 670us; 766us; 676us; 766us; 722us; 766us; 725us; 766us; 729us; 766us; 739us; 766us; 745us; 1564us; 775us; 1564us; 798us; 766us; 799us; 766us; 803us; 766us; 804us; 766us; 805us; 766us; 806us; 766us; 808us; 766us; 810us; 766us; 812us; 766us; 814us; 1564us; 817us; 766us; 819us; 766us; 821us; 766us; 829us; 766us; 832us; 766us; 844us; 766us; 865us; 766us; 868us; 1564us; 870us; 766us; 871us; 766us; 873us; 766us; 874us; 766us; 875us; 766us; 876us; 766us; 883us; 766us; 885us; 766us; 887us; 766us; 892us; 766us; 899us; 1564us; 904us; 766us; 906us; 766us; 909us; 766us; 912us; 766us; 928us; 766us; 931us; 766us; 934us; 766us; 940us; 766us; 944us; 766us; 948us; 766us; 950us; 766us; 955us; 766us; 957us; 766us; 959us; 766us; 961us; 766us; 963us; 766us; 965us; 766us; 974us; 766us; 976us; 766us; 984us; 766us; 991us; 766us; 997us; 766us; 999us; 766us; 1001us; 766us; 1002us; 766us; 1005us; 766us; 1007us; 766us; 1008us; 766us; 1011us; 766us; 1014us; 766us; 1017us; 766us; 1019us; 766us; 1024us; 766us; 1061us; 1564us; 1063us; 1564us; 1065us; 1564us; 1067us; 766us; 1069us; 766us; 1072us; 766us; 1073us; 766us; 1074us; 766us; 1075us; 766us; 1076us; 766us; 1077us; 766us; 1078us; 766us; 1079us; 766us; 1080us; 766us; 1081us; 766us; 1082us; 766us; 1083us; 766us; 1084us; 766us; 1085us; 766us; 1086us; 766us; 1087us; 766us; 1088us; 766us; 1089us; 766us; 1090us; 766us; 1091us; 766us; 1113us; 766us; 1116us; 766us; 1118us; 766us; 1123us; 766us; 1130us; 766us; 1135us; 766us; 1136us; 766us; 1140us; 766us; 1142us; 766us; 1146us; 766us; 1148us; 766us; 1152us; 766us; 1155us; 766us; 1157us; 766us; 1159us; 766us; 1160us; 766us; 1162us; 766us; 1163us; 766us; 1165us; 766us; 1166us; 766us; 1168us; 766us; 1169us; 766us; 1171us; 766us; 1172us; 766us; 1174us; 766us; 1175us; 766us; 1177us; 1564us; 1178us; 1564us; 1181us; 766us; 1182us; 766us; 1187us; 766us; 1189us; 766us; 1191us; 766us; 1192us; 766us; 1195us; 766us; 1202us; 766us; 1203us; 766us; 1206us; 766us; 1207us; 766us; 1220us; 766us; 1229us; 766us; 1236us; 766us; 1244us; 766us; 1247us; 766us; 1250us; 766us; 1253us; 766us; 1254us; 766us; 1265us; 766us; 1272us; 766us; 1273us; 766us; 1279us; 766us; 1285us; 766us; 1286us; 766us; 1287us; 766us; 1303us; 766us; 1313us; 766us; 1326us; 766us; 1327us; 766us; 1329us; 766us; 1331us; 766us; 1335us; 766us; 1336us; 766us; 1340us; 766us; 1346us; 1564us; 1349us; 1564us; 1351us; 1564us; 1353us; 1564us; 1355us; 766us; 1359us; 766us; 1364us; 766us; 1389us; 766us; 1414us; 1564us; 1421us; 766us; 1423us; 766us; 1426us; 766us; 1428us; 766us; 1439us; 766us; 1441us; 766us; 1448us; 1564us; 1451us; 1564us; 1454us; 1564us; 1457us; 1564us; 1459us; 1564us; 1461us; 1564us; 1465us; 1564us; 1468us; 1564us; 1472us; 1564us; 1475us; 1564us; 1478us; 1564us; 1480us; 1564us; 1482us; 1564us; 1485us; 1564us; 1487us; 1564us; 1490us; 1564us; 1509us; 1564us; 1510us; 1564us; 1518us; 1564us; 1519us; 1564us; 1524us; 1564us; 1525us; 1564us; 1537us; 1564us; 1541us; 1564us; 1555us; 1564us; 1559us; 1564us; 1566us; 766us; 1580us; 1564us; 1582us; 1564us; 1593us; 1564us; 178us; 65535us; 34us; 1256us; 74us; 1256us; 104us; 1256us; 126us; 1256us; 182us; 1256us; 184us; 1256us; 213us; 1256us; 217us; 1256us; 222us; 1256us; 387us; 840us; 390us; 1256us; 392us; 840us; 395us; 1256us; 427us; 840us; 430us; 1256us; 446us; 1256us; 474us; 1256us; 616us; 617us; 628us; 629us; 670us; 1256us; 676us; 1256us; 722us; 840us; 725us; 1256us; 729us; 1256us; 739us; 1256us; 798us; 840us; 799us; 840us; 803us; 840us; 804us; 840us; 805us; 840us; 806us; 840us; 808us; 840us; 810us; 840us; 812us; 840us; 817us; 840us; 819us; 840us; 821us; 840us; 829us; 840us; 832us; 840us; 844us; 840us; 865us; 840us; 870us; 840us; 871us; 840us; 873us; 840us; 874us; 840us; 875us; 840us; 876us; 840us; 883us; 840us; 885us; 840us; 887us; 1256us; 892us; 1256us; 904us; 1256us; 906us; 1256us; 909us; 1256us; 912us; 1256us; 928us; 1256us; 931us; 1256us; 934us; 1256us; 940us; 1256us; 944us; 1256us; 948us; 1256us; 950us; 1256us; 955us; 1256us; 957us; 1256us; 959us; 1256us; 961us; 1256us; 963us; 1256us; 965us; 1256us; 974us; 840us; 976us; 1256us; 984us; 1256us; 991us; 1256us; 997us; 1256us; 999us; 1256us; 1001us; 840us; 1002us; 1256us; 1005us; 1256us; 1007us; 840us; 1008us; 1256us; 1011us; 1256us; 1014us; 1256us; 1017us; 1256us; 1019us; 1256us; 1024us; 1256us; 1067us; 1256us; 1069us; 1256us; 1072us; 1256us; 1073us; 1256us; 1074us; 1256us; 1075us; 1256us; 1076us; 1256us; 1077us; 1256us; 1078us; 1256us; 1079us; 1256us; 1080us; 1256us; 1081us; 1256us; 1082us; 1256us; 1083us; 1256us; 1084us; 1256us; 1085us; 1256us; 1086us; 1256us; 1087us; 1256us; 1088us; 1256us; 1089us; 1256us; 1090us; 1256us; 1091us; 1256us; 1113us; 1256us; 1116us; 840us; 1118us; 840us; 1123us; 840us; 1130us; 840us; 1135us; 1256us; 1136us; 1256us; 1140us; 1256us; 1142us; 1256us; 1146us; 1256us; 1148us; 1256us; 1152us; 1256us; 1155us; 1256us; 1157us; 1256us; 1159us; 1256us; 1160us; 1256us; 1162us; 1256us; 1163us; 1256us; 1165us; 1256us; 1166us; 1256us; 1168us; 1256us; 1169us; 1256us; 1171us; 1256us; 1172us; 1256us; 1174us; 1256us; 1175us; 1256us; 1181us; 1256us; 1182us; 1256us; 1187us; 1256us; 1189us; 1256us; 1191us; 1256us; 1192us; 1256us; 1195us; 1256us; 1202us; 1256us; 1203us; 1256us; 1206us; 1256us; 1207us; 1256us; 1220us; 1256us; 1229us; 1256us; 1236us; 1256us; 1244us; 1256us; 1247us; 1256us; 1250us; 1256us; 1253us; 1256us; 1254us; 1256us; 1265us; 1256us; 1272us; 1256us; 1273us; 1256us; 1279us; 1256us; 1285us; 1256us; 1286us; 1256us; 1287us; 1256us; 1303us; 1256us; 1313us; 1256us; 1326us; 1256us; 1327us; 1256us; 1329us; 1256us; 1331us; 1256us; 1335us; 1256us; 1336us; 1256us; 1340us; 1256us; 1355us; 1256us; 1359us; 1256us; 1364us; 1256us; 1389us; 1256us; 1421us; 840us; 1423us; 1256us; 1426us; 840us; 1428us; 1256us; 1439us; 840us; 1441us; 840us; 1566us; 1256us; 3us; 65535us; 387us; 388us; 392us; 393us; 722us; 723us; 3us; 65535us; 777us; 773us; 778us; 774us; 780us; 774us; 2us; 65535us; 778us; 779us; 780us; 781us; 1us; 65535us; 335us; 336us; 11us; 65535us; 387us; 769us; 392us; 769us; 722us; 769us; 798us; 788us; 799us; 789us; 803us; 790us; 804us; 791us; 805us; 792us; 806us; 793us; 1001us; 794us; 1007us; 795us; 11us; 65535us; 387us; 800us; 392us; 800us; 722us; 800us; 798us; 800us; 799us; 800us; 803us; 800us; 804us; 800us; 805us; 800us; 806us; 800us; 1001us; 800us; 1007us; 800us; 11us; 65535us; 387us; 801us; 392us; 801us; 722us; 801us; 798us; 801us; 799us; 801us; 803us; 801us; 804us; 801us; 805us; 801us; 806us; 801us; 1001us; 801us; 1007us; 801us; 30us; 65535us; 387us; 802us; 392us; 802us; 722us; 802us; 798us; 802us; 799us; 802us; 803us; 802us; 804us; 802us; 805us; 802us; 806us; 802us; 829us; 872us; 832us; 872us; 844us; 872us; 865us; 872us; 870us; 872us; 871us; 872us; 873us; 872us; 874us; 872us; 875us; 872us; 876us; 872us; 883us; 872us; 885us; 872us; 974us; 872us; 1001us; 802us; 1007us; 802us; 1116us; 872us; 1118us; 872us; 1123us; 872us; 1130us; 872us; 1439us; 872us; 1441us; 872us; 8us; 65535us; 808us; 809us; 810us; 811us; 812us; 813us; 817us; 818us; 819us; 820us; 821us; 822us; 1421us; 1422us; 1426us; 1427us; 39us; 65535us; 387us; 816us; 392us; 816us; 427us; 428us; 722us; 816us; 798us; 816us; 799us; 816us; 803us; 816us; 804us; 816us; 805us; 816us; 806us; 816us; 808us; 817us; 810us; 817us; 812us; 817us; 817us; 817us; 819us; 817us; 821us; 817us; 829us; 816us; 832us; 816us; 844us; 816us; 865us; 816us; 870us; 816us; 871us; 816us; 873us; 816us; 874us; 816us; 875us; 816us; 876us; 816us; 883us; 816us; 885us; 816us; 974us; 816us; 1001us; 816us; 1007us; 816us; 1116us; 816us; 1118us; 816us; 1123us; 816us; 1130us; 816us; 1421us; 817us; 1426us; 817us; 1439us; 816us; 1441us; 816us; 1us; 65535us; 844us; 845us; 19us; 65535us; 829us; 860us; 832us; 860us; 844us; 851us; 865us; 852us; 870us; 853us; 871us; 854us; 873us; 855us; 874us; 856us; 875us; 857us; 876us; 858us; 883us; 859us; 885us; 860us; 974us; 861us; 1116us; 862us; 1118us; 862us; 1123us; 862us; 1130us; 862us; 1439us; 862us; 1441us; 862us; 19us; 65535us; 829us; 866us; 832us; 866us; 844us; 866us; 865us; 866us; 870us; 866us; 871us; 866us; 873us; 866us; 874us; 866us; 875us; 866us; 876us; 866us; 883us; 866us; 885us; 866us; 974us; 866us; 1116us; 866us; 1118us; 866us; 1123us; 866us; 1130us; 866us; 1439us; 866us; 1441us; 866us; 19us; 65535us; 829us; 867us; 832us; 867us; 844us; 867us; 865us; 867us; 870us; 867us; 871us; 867us; 873us; 867us; 874us; 867us; 875us; 867us; 876us; 867us; 883us; 867us; 885us; 867us; 974us; 867us; 1116us; 867us; 1118us; 867us; 1123us; 867us; 1130us; 867us; 1439us; 867us; 1441us; 867us; 1us; 65535us; 826us; 827us; 2us; 65535us; 826us; 877us; 880us; 881us; 2us; 65535us; 826us; 878us; 880us; 878us; 3us; 65535us; 829us; 830us; 832us; 833us; 885us; 886us; 23us; 65535us; 126us; 932us; 390us; 391us; 395us; 396us; 430us; 431us; 446us; 447us; 670us; 671us; 676us; 677us; 739us; 740us; 912us; 932us; 931us; 932us; 934us; 935us; 948us; 949us; 965us; 966us; 976us; 977us; 984us; 985us; 991us; 992us; 1002us; 1003us; 1005us; 1006us; 1008us; 1009us; 1011us; 1012us; 1017us; 1018us; 1019us; 1020us; 1423us; 1424us; 6us; 65535us; 959us; 960us; 961us; 962us; 1069us; 1070us; 1359us; 1360us; 1364us; 1365us; 1389us; 1390us; 5us; 65535us; 944us; 945us; 1024us; 1025us; 1136us; 1137us; 1329us; 1330us; 1428us; 1429us; 48us; 65535us; 126us; 891us; 390us; 891us; 395us; 891us; 430us; 891us; 446us; 891us; 670us; 891us; 676us; 891us; 725us; 734us; 729us; 734us; 739us; 891us; 887us; 888us; 892us; 893us; 909us; 910us; 912us; 891us; 928us; 929us; 931us; 891us; 934us; 891us; 940us; 941us; 944us; 896us; 948us; 891us; 965us; 891us; 976us; 891us; 984us; 891us; 991us; 891us; 1002us; 891us; 1005us; 891us; 1008us; 891us; 1011us; 891us; 1014us; 1015us; 1017us; 891us; 1019us; 891us; 1024us; 896us; 1113us; 1114us; 1136us; 896us; 1142us; 1143us; 1148us; 1149us; 1229us; 1234us; 1236us; 1237us; 1265us; 1266us; 1272us; 1274us; 1273us; 1274us; 1285us; 1305us; 1286us; 1305us; 1287us; 1305us; 1303us; 1304us; 1329us; 896us; 1423us; 891us; 1428us; 896us; 53us; 65535us; 126us; 898us; 390us; 898us; 395us; 898us; 430us; 898us; 446us; 898us; 670us; 898us; 676us; 898us; 725us; 898us; 729us; 898us; 739us; 898us; 887us; 898us; 892us; 898us; 904us; 905us; 906us; 907us; 909us; 898us; 912us; 898us; 928us; 898us; 931us; 898us; 934us; 898us; 940us; 898us; 944us; 898us; 948us; 898us; 965us; 898us; 976us; 898us; 984us; 898us; 991us; 898us; 1002us; 898us; 1005us; 898us; 1008us; 898us; 1011us; 898us; 1014us; 898us; 1017us; 898us; 1019us; 898us; 1024us; 898us; 1113us; 898us; 1136us; 898us; 1142us; 898us; 1148us; 898us; 1220us; 1324us; 1229us; 898us; 1236us; 898us; 1265us; 898us; 1272us; 898us; 1273us; 898us; 1279us; 1324us; 1285us; 898us; 1286us; 898us; 1287us; 898us; 1303us; 898us; 1313us; 1324us; 1329us; 898us; 1423us; 898us; 1428us; 898us; 84us; 65535us; 80us; 83us; 95us; 98us; 135us; 136us; 143us; 145us; 146us; 148us; 153us; 155us; 199us; 1759us; 201us; 1759us; 257us; 259us; 263us; 265us; 267us; 269us; 271us; 273us; 344us; 347us; 357us; 359us; 363us; 364us; 367us; 368us; 471us; 1759us; 486us; 488us; 510us; 511us; 519us; 521us; 674us; 684us; 677us; 684us; 724us; 728us; 730us; 732us; 780us; 787us; 781us; 784us; 844us; 850us; 845us; 847us; 861us; 996us; 888us; 890us; 941us; 943us; 945us; 947us; 950us; 954us; 951us; 953us; 963us; 972us; 964us; 971us; 966us; 968us; 974us; 1759us; 975us; 1759us; 976us; 1759us; 977us; 1759us; 983us; 990us; 984us; 989us; 985us; 987us; 1009us; 684us; 1020us; 684us; 1050us; 1154us; 1119us; 1121us; 1143us; 1145us; 1149us; 1151us; 1155us; 1759us; 1157us; 1759us; 1208us; 1228us; 1211us; 1228us; 1220us; 1225us; 1221us; 1223us; 1236us; 1241us; 1237us; 1239us; 1266us; 1268us; 1272us; 1278us; 1273us; 1278us; 1274us; 1276us; 1279us; 1284us; 1280us; 1282us; 1285us; 1298us; 1286us; 1298us; 1287us; 1298us; 1289us; 1753us; 1313us; 1318us; 1314us; 1316us; 1326us; 1328us; 1331us; 1759us; 1388us; 1759us; 1389us; 1759us; 1428us; 1434us; 1429us; 1431us; 1540us; 1585us; 1560us; 1563us; 1561us; 1563us; 1575us; 1759us; 1580us; 1591us; 1582us; 1759us; 1587us; 1589us; 1631us; 1759us; 107us; 65535us; 34us; 35us; 74us; 105us; 104us; 105us; 126us; 901us; 182us; 183us; 184us; 185us; 390us; 901us; 395us; 901us; 430us; 901us; 446us; 901us; 670us; 901us; 676us; 901us; 725us; 901us; 729us; 901us; 739us; 901us; 887us; 901us; 892us; 901us; 904us; 901us; 906us; 901us; 909us; 901us; 912us; 901us; 928us; 901us; 931us; 901us; 934us; 901us; 940us; 901us; 944us; 901us; 948us; 901us; 950us; 951us; 955us; 956us; 957us; 958us; 959us; 895us; 961us; 895us; 963us; 964us; 965us; 901us; 976us; 901us; 984us; 901us; 991us; 901us; 997us; 998us; 999us; 1000us; 1002us; 901us; 1005us; 901us; 1008us; 901us; 1011us; 901us; 1014us; 901us; 1017us; 901us; 1019us; 901us; 1024us; 901us; 1067us; 1026us; 1069us; 895us; 1072us; 1027us; 1073us; 1028us; 1074us; 1029us; 1075us; 1030us; 1076us; 1031us; 1077us; 1032us; 1078us; 1033us; 1079us; 1034us; 1080us; 1035us; 1081us; 1036us; 1082us; 1037us; 1083us; 1038us; 1084us; 1039us; 1085us; 1040us; 1086us; 1041us; 1087us; 1042us; 1088us; 1043us; 1089us; 1044us; 1090us; 1045us; 1091us; 1046us; 1113us; 901us; 1135us; 1047us; 1136us; 901us; 1140us; 1048us; 1142us; 901us; 1146us; 1049us; 1148us; 901us; 1152us; 1050us; 1155us; 1051us; 1157us; 1052us; 1220us; 903us; 1229us; 901us; 1236us; 902us; 1244us; 1053us; 1247us; 1053us; 1250us; 1053us; 1253us; 1054us; 1254us; 1055us; 1265us; 901us; 1272us; 901us; 1273us; 901us; 1279us; 903us; 1285us; 901us; 1286us; 901us; 1287us; 901us; 1303us; 901us; 1313us; 903us; 1326us; 1057us; 1327us; 1058us; 1329us; 901us; 1331us; 1056us; 1335us; 1059us; 1336us; 1060us; 1359us; 895us; 1364us; 895us; 1389us; 895us; 1423us; 901us; 1428us; 901us; 1us; 65535us; 1216us; 1217us; 2us; 65535us; 941us; 942us; 945us; 946us; 4us; 65535us; 1116us; 1117us; 1118us; 1119us; 1439us; 1440us; 1441us; 1442us; 6us; 65535us; 1116us; 1128us; 1118us; 1128us; 1123us; 1128us; 1130us; 1128us; 1439us; 1128us; 1441us; 1128us; 6us; 65535us; 1116us; 1122us; 1118us; 1122us; 1123us; 1124us; 1130us; 1131us; 1439us; 1122us; 1441us; 1122us; 1us; 65535us; 862us; 1127us; 1us; 65535us; 1128us; 1129us; 2us; 65535us; 951us; 952us; 1050us; 1153us; 2us; 65535us; 951us; 1138us; 1050us; 1138us; 1us; 65535us; 1138us; 1139us; 107us; 65535us; 34us; 1071us; 74us; 1071us; 104us; 1071us; 126us; 1071us; 182us; 1071us; 184us; 1071us; 390us; 1071us; 395us; 1071us; 430us; 1071us; 446us; 1071us; 670us; 1071us; 676us; 1071us; 725us; 1071us; 729us; 1071us; 739us; 1071us; 887us; 1071us; 892us; 1071us; 904us; 1071us; 906us; 1071us; 909us; 1071us; 912us; 1071us; 928us; 1071us; 931us; 1071us; 934us; 1071us; 940us; 1071us; 944us; 1071us; 948us; 1071us; 950us; 1071us; 955us; 1071us; 957us; 1071us; 959us; 1071us; 961us; 1071us; 963us; 1071us; 965us; 1071us; 976us; 1071us; 984us; 1071us; 991us; 1071us; 997us; 1071us; 999us; 1071us; 1002us; 1071us; 1005us; 1071us; 1008us; 1071us; 1011us; 1071us; 1014us; 1071us; 1017us; 1071us; 1019us; 1071us; 1024us; 1071us; 1067us; 1071us; 1069us; 1071us; 1072us; 1071us; 1073us; 1071us; 1074us; 1071us; 1075us; 1071us; 1076us; 1071us; 1077us; 1071us; 1078us; 1071us; 1079us; 1071us; 1080us; 1071us; 1081us; 1071us; 1082us; 1071us; 1083us; 1071us; 1084us; 1071us; 1085us; 1071us; 1086us; 1071us; 1087us; 1071us; 1088us; 1071us; 1089us; 1071us; 1090us; 1071us; 1091us; 1071us; 1113us; 1071us; 1135us; 1071us; 1136us; 1071us; 1140us; 1071us; 1142us; 1071us; 1146us; 1071us; 1148us; 1071us; 1152us; 1071us; 1155us; 1071us; 1157us; 1071us; 1220us; 1071us; 1229us; 1071us; 1236us; 1071us; 1244us; 1071us; 1247us; 1071us; 1250us; 1071us; 1253us; 1071us; 1254us; 1071us; 1265us; 1071us; 1272us; 1071us; 1273us; 1071us; 1279us; 1071us; 1285us; 1071us; 1286us; 1071us; 1287us; 1071us; 1303us; 1071us; 1313us; 1071us; 1326us; 1071us; 1327us; 1071us; 1329us; 1071us; 1331us; 1071us; 1335us; 1071us; 1336us; 1071us; 1359us; 1071us; 1364us; 1071us; 1389us; 1071us; 1423us; 1071us; 1428us; 1071us; 121us; 65535us; 34us; 1068us; 74us; 1068us; 104us; 1068us; 126us; 1068us; 182us; 1068us; 184us; 1068us; 390us; 1068us; 395us; 1068us; 430us; 1068us; 446us; 1068us; 670us; 1068us; 676us; 1068us; 725us; 1068us; 729us; 1068us; 739us; 1068us; 887us; 1068us; 892us; 1068us; 904us; 1068us; 906us; 1068us; 909us; 1068us; 912us; 1068us; 928us; 1068us; 931us; 1068us; 934us; 1068us; 940us; 1068us; 944us; 1068us; 948us; 1068us; 950us; 1068us; 955us; 1068us; 957us; 1068us; 959us; 1068us; 961us; 1068us; 963us; 1068us; 965us; 1068us; 976us; 1068us; 984us; 1068us; 991us; 1068us; 997us; 1068us; 999us; 1068us; 1002us; 1068us; 1005us; 1068us; 1008us; 1068us; 1011us; 1068us; 1014us; 1068us; 1017us; 1068us; 1019us; 1068us; 1024us; 1068us; 1067us; 1068us; 1069us; 1068us; 1072us; 1068us; 1073us; 1068us; 1074us; 1068us; 1075us; 1068us; 1076us; 1068us; 1077us; 1068us; 1078us; 1068us; 1079us; 1068us; 1080us; 1068us; 1081us; 1068us; 1082us; 1068us; 1083us; 1068us; 1084us; 1068us; 1085us; 1068us; 1086us; 1068us; 1087us; 1068us; 1088us; 1068us; 1089us; 1068us; 1090us; 1068us; 1091us; 1068us; 1113us; 1068us; 1135us; 1068us; 1136us; 1068us; 1140us; 1068us; 1142us; 1068us; 1146us; 1068us; 1148us; 1068us; 1152us; 1068us; 1155us; 1068us; 1157us; 1068us; 1159us; 1161us; 1160us; 1161us; 1162us; 1164us; 1163us; 1164us; 1165us; 1167us; 1166us; 1167us; 1168us; 1170us; 1169us; 1170us; 1171us; 1173us; 1172us; 1173us; 1174us; 1176us; 1175us; 1176us; 1187us; 1188us; 1189us; 1190us; 1220us; 1068us; 1229us; 1068us; 1236us; 1068us; 1244us; 1068us; 1247us; 1068us; 1250us; 1068us; 1253us; 1068us; 1254us; 1068us; 1265us; 1068us; 1272us; 1068us; 1273us; 1068us; 1279us; 1068us; 1285us; 1068us; 1286us; 1068us; 1287us; 1068us; 1303us; 1068us; 1313us; 1068us; 1326us; 1068us; 1327us; 1068us; 1329us; 1068us; 1331us; 1068us; 1335us; 1068us; 1336us; 1068us; 1359us; 1068us; 1364us; 1068us; 1389us; 1068us; 1423us; 1068us; 1428us; 1068us; 121us; 65535us; 34us; 1191us; 74us; 1191us; 104us; 1191us; 126us; 1191us; 182us; 1191us; 184us; 1191us; 390us; 1191us; 395us; 1191us; 430us; 1191us; 446us; 1191us; 670us; 1191us; 676us; 1191us; 725us; 1191us; 729us; 1191us; 739us; 1191us; 887us; 1191us; 892us; 1191us; 904us; 1191us; 906us; 1191us; 909us; 1191us; 912us; 1191us; 928us; 1191us; 931us; 1191us; 934us; 1191us; 940us; 1191us; 944us; 1191us; 948us; 1191us; 950us; 1191us; 955us; 1191us; 957us; 1191us; 959us; 1191us; 961us; 1191us; 963us; 1191us; 965us; 1191us; 976us; 1191us; 984us; 1191us; 991us; 1191us; 997us; 1191us; 999us; 1191us; 1002us; 1191us; 1005us; 1191us; 1008us; 1191us; 1011us; 1191us; 1014us; 1191us; 1017us; 1191us; 1019us; 1191us; 1024us; 1191us; 1067us; 1191us; 1069us; 1191us; 1072us; 1191us; 1073us; 1191us; 1074us; 1191us; 1075us; 1191us; 1076us; 1191us; 1077us; 1191us; 1078us; 1191us; 1079us; 1191us; 1080us; 1191us; 1081us; 1191us; 1082us; 1191us; 1083us; 1191us; 1084us; 1191us; 1085us; 1191us; 1086us; 1191us; 1087us; 1191us; 1088us; 1191us; 1089us; 1191us; 1090us; 1191us; 1091us; 1191us; 1113us; 1191us; 1135us; 1191us; 1136us; 1191us; 1140us; 1191us; 1142us; 1191us; 1146us; 1191us; 1148us; 1191us; 1152us; 1191us; 1155us; 1191us; 1157us; 1191us; 1159us; 1191us; 1160us; 1191us; 1162us; 1191us; 1163us; 1191us; 1165us; 1191us; 1166us; 1191us; 1168us; 1191us; 1169us; 1191us; 1171us; 1191us; 1172us; 1191us; 1174us; 1191us; 1175us; 1191us; 1187us; 1191us; 1189us; 1191us; 1220us; 1191us; 1229us; 1191us; 1236us; 1191us; 1244us; 1191us; 1247us; 1191us; 1250us; 1191us; 1253us; 1191us; 1254us; 1191us; 1265us; 1191us; 1272us; 1191us; 1273us; 1191us; 1279us; 1191us; 1285us; 1191us; 1286us; 1191us; 1287us; 1191us; 1303us; 1191us; 1313us; 1192us; 1326us; 1191us; 1327us; 1191us; 1329us; 1191us; 1331us; 1191us; 1335us; 1191us; 1336us; 1191us; 1359us; 1191us; 1364us; 1191us; 1389us; 1191us; 1423us; 1191us; 1428us; 1191us; 3us; 65535us; 1191us; 1193us; 1192us; 1193us; 1340us; 1343us; 130us; 65535us; 34us; 1194us; 74us; 1194us; 104us; 1194us; 126us; 1194us; 182us; 1194us; 184us; 1194us; 390us; 1194us; 395us; 1194us; 430us; 1194us; 446us; 1194us; 670us; 1194us; 676us; 1194us; 725us; 1194us; 729us; 1194us; 739us; 1194us; 887us; 1194us; 892us; 1194us; 904us; 1194us; 906us; 1194us; 909us; 1194us; 912us; 1194us; 928us; 1194us; 931us; 1194us; 934us; 1194us; 940us; 1194us; 944us; 1194us; 948us; 1194us; 950us; 1194us; 955us; 1194us; 957us; 1194us; 959us; 1194us; 961us; 1194us; 963us; 1194us; 965us; 1194us; 976us; 1194us; 984us; 1194us; 991us; 1194us; 997us; 1194us; 999us; 1194us; 1002us; 1194us; 1005us; 1194us; 1008us; 1194us; 1011us; 1194us; 1014us; 1194us; 1017us; 1194us; 1019us; 1194us; 1024us; 1194us; 1067us; 1194us; 1069us; 1194us; 1072us; 1194us; 1073us; 1194us; 1074us; 1194us; 1075us; 1194us; 1076us; 1194us; 1077us; 1194us; 1078us; 1194us; 1079us; 1194us; 1080us; 1194us; 1081us; 1194us; 1082us; 1194us; 1083us; 1194us; 1084us; 1194us; 1085us; 1194us; 1086us; 1194us; 1087us; 1194us; 1088us; 1194us; 1089us; 1194us; 1090us; 1194us; 1091us; 1194us; 1113us; 1194us; 1135us; 1194us; 1136us; 1194us; 1140us; 1194us; 1142us; 1194us; 1146us; 1194us; 1148us; 1194us; 1152us; 1194us; 1155us; 1194us; 1157us; 1194us; 1159us; 1194us; 1160us; 1194us; 1162us; 1194us; 1163us; 1194us; 1165us; 1194us; 1166us; 1194us; 1168us; 1194us; 1169us; 1194us; 1171us; 1194us; 1172us; 1194us; 1174us; 1194us; 1175us; 1194us; 1187us; 1194us; 1189us; 1194us; 1191us; 1197us; 1192us; 1197us; 1195us; 1196us; 1202us; 1198us; 1203us; 1199us; 1206us; 1200us; 1207us; 1200us; 1220us; 1194us; 1229us; 1194us; 1236us; 1194us; 1244us; 1194us; 1247us; 1194us; 1250us; 1194us; 1253us; 1194us; 1254us; 1194us; 1265us; 1194us; 1272us; 1194us; 1273us; 1194us; 1279us; 1194us; 1285us; 1194us; 1286us; 1194us; 1287us; 1194us; 1303us; 1194us; 1313us; 1194us; 1326us; 1194us; 1327us; 1194us; 1329us; 1194us; 1331us; 1194us; 1335us; 1194us; 1336us; 1194us; 1340us; 1197us; 1359us; 1194us; 1364us; 1194us; 1389us; 1194us; 1423us; 1194us; 1428us; 1194us; 1566us; 1201us; 2us; 65535us; 1208us; 1209us; 1211us; 1212us; 4us; 65535us; 1236us; 1242us; 1244us; 1245us; 1247us; 1248us; 1250us; 1251us; 137us; 65535us; 34us; 1226us; 74us; 1226us; 104us; 1226us; 126us; 1226us; 182us; 1226us; 184us; 1226us; 213us; 1344us; 217us; 1344us; 222us; 1344us; 390us; 1226us; 395us; 1226us; 430us; 1226us; 446us; 1226us; 474us; 475us; 670us; 1226us; 676us; 1226us; 725us; 1226us; 729us; 1226us; 739us; 1226us; 887us; 1226us; 892us; 1226us; 904us; 1226us; 906us; 1226us; 909us; 1226us; 912us; 1226us; 928us; 1226us; 931us; 1226us; 934us; 1226us; 940us; 1226us; 944us; 1226us; 948us; 1226us; 950us; 1226us; 955us; 1226us; 957us; 1226us; 959us; 1226us; 961us; 1226us; 963us; 1226us; 965us; 1226us; 976us; 1226us; 984us; 1226us; 991us; 1226us; 997us; 1226us; 999us; 1226us; 1002us; 1226us; 1005us; 1226us; 1008us; 1226us; 1011us; 1226us; 1014us; 1226us; 1017us; 1226us; 1019us; 1226us; 1024us; 1226us; 1067us; 1226us; 1069us; 1226us; 1072us; 1226us; 1073us; 1226us; 1074us; 1226us; 1075us; 1226us; 1076us; 1226us; 1077us; 1226us; 1078us; 1226us; 1079us; 1226us; 1080us; 1226us; 1081us; 1226us; 1082us; 1226us; 1083us; 1226us; 1084us; 1226us; 1085us; 1226us; 1086us; 1226us; 1087us; 1226us; 1088us; 1226us; 1089us; 1226us; 1090us; 1226us; 1091us; 1226us; 1113us; 1226us; 1135us; 1226us; 1136us; 1226us; 1140us; 1226us; 1142us; 1226us; 1146us; 1226us; 1148us; 1226us; 1152us; 1226us; 1155us; 1226us; 1157us; 1226us; 1159us; 1226us; 1160us; 1226us; 1162us; 1226us; 1163us; 1226us; 1165us; 1226us; 1166us; 1226us; 1168us; 1226us; 1169us; 1226us; 1171us; 1226us; 1172us; 1226us; 1174us; 1226us; 1175us; 1226us; 1181us; 1183us; 1182us; 1184us; 1187us; 1226us; 1189us; 1226us; 1191us; 1226us; 1192us; 1226us; 1195us; 1226us; 1202us; 1226us; 1203us; 1226us; 1206us; 1226us; 1207us; 1226us; 1220us; 1226us; 1229us; 1226us; 1236us; 1226us; 1244us; 1226us; 1247us; 1226us; 1250us; 1226us; 1253us; 1226us; 1254us; 1226us; 1265us; 1226us; 1272us; 1226us; 1273us; 1226us; 1279us; 1226us; 1285us; 1226us; 1286us; 1226us; 1287us; 1226us; 1303us; 1226us; 1313us; 1226us; 1326us; 1226us; 1327us; 1226us; 1329us; 1226us; 1331us; 1226us; 1335us; 1226us; 1336us; 1226us; 1340us; 1226us; 1355us; 1344us; 1359us; 1226us; 1364us; 1226us; 1389us; 1226us; 1423us; 1226us; 1428us; 1226us; 1566us; 1226us; 137us; 65535us; 34us; 1264us; 74us; 1264us; 104us; 1264us; 126us; 1264us; 182us; 1264us; 184us; 1264us; 213us; 1264us; 217us; 1264us; 222us; 1264us; 390us; 1264us; 395us; 1264us; 430us; 1264us; 446us; 1264us; 474us; 1264us; 670us; 1264us; 676us; 1264us; 725us; 1264us; 729us; 1264us; 739us; 1264us; 887us; 1264us; 892us; 1264us; 904us; 1264us; 906us; 1264us; 909us; 1264us; 912us; 1264us; 928us; 1264us; 931us; 1264us; 934us; 1264us; 940us; 1264us; 944us; 1264us; 948us; 1264us; 950us; 1264us; 955us; 1264us; 957us; 1264us; 959us; 1264us; 961us; 1264us; 963us; 1264us; 965us; 1264us; 976us; 1264us; 984us; 1264us; 991us; 1264us; 997us; 1264us; 999us; 1264us; 1002us; 1264us; 1005us; 1264us; 1008us; 1264us; 1011us; 1264us; 1014us; 1264us; 1017us; 1264us; 1019us; 1264us; 1024us; 1264us; 1067us; 1264us; 1069us; 1264us; 1072us; 1264us; 1073us; 1264us; 1074us; 1264us; 1075us; 1264us; 1076us; 1264us; 1077us; 1264us; 1078us; 1264us; 1079us; 1264us; 1080us; 1264us; 1081us; 1264us; 1082us; 1264us; 1083us; 1264us; 1084us; 1264us; 1085us; 1264us; 1086us; 1264us; 1087us; 1264us; 1088us; 1264us; 1089us; 1264us; 1090us; 1264us; 1091us; 1264us; 1113us; 1264us; 1135us; 1264us; 1136us; 1264us; 1140us; 1264us; 1142us; 1264us; 1146us; 1264us; 1148us; 1264us; 1152us; 1264us; 1155us; 1264us; 1157us; 1264us; 1159us; 1264us; 1160us; 1264us; 1162us; 1264us; 1163us; 1264us; 1165us; 1264us; 1166us; 1264us; 1168us; 1264us; 1169us; 1264us; 1171us; 1264us; 1172us; 1264us; 1174us; 1264us; 1175us; 1264us; 1181us; 1264us; 1182us; 1264us; 1187us; 1264us; 1189us; 1264us; 1191us; 1264us; 1192us; 1264us; 1195us; 1264us; 1202us; 1264us; 1203us; 1264us; 1206us; 1264us; 1207us; 1264us; 1220us; 1264us; 1229us; 1264us; 1236us; 1264us; 1244us; 1264us; 1247us; 1264us; 1250us; 1264us; 1253us; 1264us; 1254us; 1264us; 1265us; 1264us; 1272us; 1264us; 1273us; 1264us; 1279us; 1264us; 1285us; 1264us; 1286us; 1264us; 1287us; 1264us; 1303us; 1264us; 1313us; 1264us; 1326us; 1264us; 1327us; 1264us; 1329us; 1264us; 1331us; 1264us; 1335us; 1264us; 1336us; 1264us; 1340us; 1264us; 1355us; 1264us; 1359us; 1264us; 1364us; 1264us; 1389us; 1264us; 1423us; 1264us; 1428us; 1264us; 1566us; 1264us; 176us; 65535us; 34us; 1262us; 74us; 1262us; 104us; 1262us; 126us; 1262us; 182us; 1262us; 184us; 1262us; 213us; 1262us; 217us; 1262us; 222us; 1262us; 387us; 823us; 390us; 1262us; 392us; 823us; 395us; 1262us; 427us; 823us; 430us; 1262us; 446us; 1262us; 474us; 1262us; 670us; 1262us; 676us; 1262us; 722us; 823us; 725us; 1262us; 729us; 1262us; 739us; 1262us; 798us; 823us; 799us; 823us; 803us; 823us; 804us; 823us; 805us; 823us; 806us; 823us; 808us; 823us; 810us; 823us; 812us; 823us; 817us; 823us; 819us; 823us; 821us; 823us; 829us; 823us; 832us; 823us; 844us; 823us; 865us; 823us; 870us; 823us; 871us; 823us; 873us; 823us; 874us; 823us; 875us; 823us; 876us; 823us; 883us; 823us; 885us; 823us; 887us; 1262us; 892us; 1262us; 904us; 1262us; 906us; 1262us; 909us; 1262us; 912us; 1262us; 928us; 1262us; 931us; 1262us; 934us; 1262us; 940us; 1262us; 944us; 1262us; 948us; 1262us; 950us; 1262us; 955us; 1262us; 957us; 1262us; 959us; 1262us; 961us; 1262us; 963us; 1262us; 965us; 1262us; 974us; 823us; 976us; 1262us; 984us; 1262us; 991us; 1262us; 997us; 1262us; 999us; 1262us; 1001us; 823us; 1002us; 1262us; 1005us; 1262us; 1007us; 823us; 1008us; 1262us; 1011us; 1262us; 1014us; 1262us; 1017us; 1262us; 1019us; 1262us; 1024us; 1262us; 1067us; 1262us; 1069us; 1262us; 1072us; 1262us; 1073us; 1262us; 1074us; 1262us; 1075us; 1262us; 1076us; 1262us; 1077us; 1262us; 1078us; 1262us; 1079us; 1262us; 1080us; 1262us; 1081us; 1262us; 1082us; 1262us; 1083us; 1262us; 1084us; 1262us; 1085us; 1262us; 1086us; 1262us; 1087us; 1262us; 1088us; 1262us; 1089us; 1262us; 1090us; 1262us; 1091us; 1262us; 1113us; 1262us; 1116us; 823us; 1118us; 823us; 1123us; 823us; 1130us; 823us; 1135us; 1262us; 1136us; 1262us; 1140us; 1262us; 1142us; 1262us; 1146us; 1262us; 1148us; 1262us; 1152us; 1262us; 1155us; 1262us; 1157us; 1262us; 1159us; 1262us; 1160us; 1262us; 1162us; 1262us; 1163us; 1262us; 1165us; 1262us; 1166us; 1262us; 1168us; 1262us; 1169us; 1262us; 1171us; 1262us; 1172us; 1262us; 1174us; 1262us; 1175us; 1262us; 1181us; 1262us; 1182us; 1262us; 1187us; 1262us; 1189us; 1262us; 1191us; 1262us; 1192us; 1262us; 1195us; 1262us; 1202us; 1262us; 1203us; 1262us; 1206us; 1262us; 1207us; 1262us; 1220us; 1262us; 1229us; 1262us; 1236us; 1262us; 1244us; 1262us; 1247us; 1262us; 1250us; 1262us; 1253us; 1262us; 1254us; 1262us; 1265us; 1262us; 1272us; 1262us; 1273us; 1262us; 1279us; 1262us; 1285us; 1262us; 1286us; 1262us; 1287us; 1262us; 1303us; 1262us; 1313us; 1262us; 1326us; 1262us; 1327us; 1262us; 1329us; 1262us; 1331us; 1262us; 1335us; 1262us; 1336us; 1262us; 1340us; 1262us; 1355us; 1262us; 1359us; 1262us; 1364us; 1262us; 1389us; 1262us; 1421us; 823us; 1423us; 1262us; 1426us; 823us; 1428us; 1262us; 1439us; 823us; 1441us; 823us; 1566us; 1262us; 137us; 65535us; 34us; 1263us; 74us; 1263us; 104us; 1263us; 126us; 1263us; 182us; 1263us; 184us; 1263us; 213us; 1263us; 217us; 1263us; 222us; 1263us; 390us; 1263us; 395us; 1263us; 430us; 1263us; 446us; 1263us; 474us; 1263us; 670us; 1263us; 676us; 1263us; 725us; 1263us; 729us; 1263us; 739us; 1263us; 887us; 1263us; 892us; 1263us; 904us; 1263us; 906us; 1263us; 909us; 1263us; 912us; 1263us; 928us; 1263us; 931us; 1263us; 934us; 1263us; 940us; 1263us; 944us; 1263us; 948us; 1263us; 950us; 1263us; 955us; 1263us; 957us; 1263us; 959us; 1263us; 961us; 1263us; 963us; 1263us; 965us; 1263us; 976us; 1263us; 984us; 1263us; 991us; 1263us; 997us; 1263us; 999us; 1263us; 1002us; 1263us; 1005us; 1263us; 1008us; 1263us; 1011us; 1263us; 1014us; 1263us; 1017us; 1263us; 1019us; 1263us; 1024us; 1263us; 1067us; 1263us; 1069us; 1263us; 1072us; 1263us; 1073us; 1263us; 1074us; 1263us; 1075us; 1263us; 1076us; 1263us; 1077us; 1263us; 1078us; 1263us; 1079us; 1263us; 1080us; 1263us; 1081us; 1263us; 1082us; 1263us; 1083us; 1263us; 1084us; 1263us; 1085us; 1263us; 1086us; 1263us; 1087us; 1263us; 1088us; 1263us; 1089us; 1263us; 1090us; 1263us; 1091us; 1263us; 1113us; 1263us; 1135us; 1263us; 1136us; 1263us; 1140us; 1263us; 1142us; 1263us; 1146us; 1263us; 1148us; 1263us; 1152us; 1263us; 1155us; 1263us; 1157us; 1263us; 1159us; 1263us; 1160us; 1263us; 1162us; 1263us; 1163us; 1263us; 1165us; 1263us; 1166us; 1263us; 1168us; 1263us; 1169us; 1263us; 1171us; 1263us; 1172us; 1263us; 1174us; 1263us; 1175us; 1263us; 1181us; 1263us; 1182us; 1263us; 1187us; 1263us; 1189us; 1263us; 1191us; 1263us; 1192us; 1263us; 1195us; 1263us; 1202us; 1263us; 1203us; 1263us; 1206us; 1263us; 1207us; 1263us; 1220us; 1263us; 1229us; 1263us; 1236us; 1263us; 1244us; 1263us; 1247us; 1263us; 1250us; 1263us; 1253us; 1263us; 1254us; 1263us; 1265us; 1263us; 1272us; 1263us; 1273us; 1263us; 1279us; 1263us; 1285us; 1263us; 1286us; 1263us; 1287us; 1263us; 1303us; 1263us; 1313us; 1263us; 1326us; 1263us; 1327us; 1263us; 1329us; 1263us; 1331us; 1263us; 1335us; 1263us; 1336us; 1263us; 1340us; 1263us; 1355us; 1263us; 1359us; 1263us; 1364us; 1263us; 1389us; 1263us; 1423us; 1263us; 1428us; 1263us; 1566us; 1263us; 137us; 65535us; 34us; 1257us; 74us; 1257us; 104us; 1257us; 126us; 1257us; 182us; 1257us; 184us; 1257us; 213us; 1257us; 217us; 1257us; 222us; 1257us; 390us; 1257us; 395us; 1257us; 430us; 1257us; 446us; 1257us; 474us; 1257us; 670us; 1257us; 676us; 1257us; 725us; 1257us; 729us; 1257us; 739us; 1257us; 887us; 1257us; 892us; 1257us; 904us; 1257us; 906us; 1257us; 909us; 1257us; 912us; 1257us; 928us; 1257us; 931us; 1257us; 934us; 1257us; 940us; 1257us; 944us; 1257us; 948us; 1257us; 950us; 1257us; 955us; 1257us; 957us; 1257us; 959us; 1257us; 961us; 1257us; 963us; 1257us; 965us; 1257us; 976us; 1257us; 984us; 1257us; 991us; 1257us; 997us; 1257us; 999us; 1257us; 1002us; 1257us; 1005us; 1257us; 1008us; 1257us; 1011us; 1257us; 1014us; 1257us; 1017us; 1257us; 1019us; 1257us; 1024us; 1257us; 1067us; 1257us; 1069us; 1257us; 1072us; 1257us; 1073us; 1257us; 1074us; 1257us; 1075us; 1257us; 1076us; 1257us; 1077us; 1257us; 1078us; 1257us; 1079us; 1257us; 1080us; 1257us; 1081us; 1257us; 1082us; 1257us; 1083us; 1257us; 1084us; 1257us; 1085us; 1257us; 1086us; 1257us; 1087us; 1257us; 1088us; 1257us; 1089us; 1257us; 1090us; 1257us; 1091us; 1257us; 1113us; 1257us; 1135us; 1257us; 1136us; 1257us; 1140us; 1257us; 1142us; 1257us; 1146us; 1257us; 1148us; 1257us; 1152us; 1257us; 1155us; 1257us; 1157us; 1257us; 1159us; 1257us; 1160us; 1257us; 1162us; 1257us; 1163us; 1257us; 1165us; 1257us; 1166us; 1257us; 1168us; 1257us; 1169us; 1257us; 1171us; 1257us; 1172us; 1257us; 1174us; 1257us; 1175us; 1257us; 1181us; 1257us; 1182us; 1257us; 1187us; 1257us; 1189us; 1257us; 1191us; 1257us; 1192us; 1257us; 1195us; 1257us; 1202us; 1257us; 1203us; 1257us; 1206us; 1257us; 1207us; 1257us; 1220us; 1257us; 1229us; 1257us; 1236us; 1257us; 1244us; 1257us; 1247us; 1257us; 1250us; 1257us; 1253us; 1257us; 1254us; 1257us; 1265us; 1257us; 1272us; 1257us; 1273us; 1257us; 1279us; 1257us; 1285us; 1257us; 1286us; 1257us; 1287us; 1257us; 1303us; 1257us; 1313us; 1257us; 1326us; 1257us; 1327us; 1257us; 1329us; 1257us; 1331us; 1257us; 1335us; 1257us; 1336us; 1257us; 1340us; 1257us; 1355us; 1257us; 1359us; 1257us; 1364us; 1257us; 1389us; 1257us; 1423us; 1257us; 1428us; 1257us; 1566us; 1257us; 3us; 65535us; 1285us; 1289us; 1286us; 1289us; 1287us; 1289us; 3us; 65535us; 1285us; 1299us; 1286us; 1299us; 1287us; 1299us; 1us; 65535us; 1286us; 1309us; 137us; 65535us; 34us; 1258us; 74us; 1258us; 104us; 1258us; 126us; 1258us; 182us; 1258us; 184us; 1258us; 213us; 1258us; 217us; 1258us; 222us; 1258us; 390us; 1258us; 395us; 1258us; 430us; 1258us; 446us; 1258us; 474us; 1258us; 670us; 1258us; 676us; 1258us; 725us; 1258us; 729us; 1258us; 739us; 1258us; 887us; 1258us; 892us; 1258us; 904us; 1258us; 906us; 1258us; 909us; 1258us; 912us; 1258us; 928us; 1258us; 931us; 1258us; 934us; 1258us; 940us; 1258us; 944us; 1258us; 948us; 1258us; 950us; 1258us; 955us; 1258us; 957us; 1258us; 959us; 1258us; 961us; 1258us; 963us; 1258us; 965us; 1258us; 976us; 1258us; 984us; 1258us; 991us; 1258us; 997us; 1258us; 999us; 1258us; 1002us; 1258us; 1005us; 1258us; 1008us; 1258us; 1011us; 1258us; 1014us; 1258us; 1017us; 1258us; 1019us; 1258us; 1024us; 1258us; 1067us; 1258us; 1069us; 1258us; 1072us; 1258us; 1073us; 1258us; 1074us; 1258us; 1075us; 1258us; 1076us; 1258us; 1077us; 1258us; 1078us; 1258us; 1079us; 1258us; 1080us; 1258us; 1081us; 1258us; 1082us; 1258us; 1083us; 1258us; 1084us; 1258us; 1085us; 1258us; 1086us; 1258us; 1087us; 1258us; 1088us; 1258us; 1089us; 1258us; 1090us; 1258us; 1091us; 1258us; 1113us; 1258us; 1135us; 1258us; 1136us; 1258us; 1140us; 1258us; 1142us; 1258us; 1146us; 1258us; 1148us; 1258us; 1152us; 1258us; 1155us; 1258us; 1157us; 1258us; 1159us; 1258us; 1160us; 1258us; 1162us; 1258us; 1163us; 1258us; 1165us; 1258us; 1166us; 1258us; 1168us; 1258us; 1169us; 1258us; 1171us; 1258us; 1172us; 1258us; 1174us; 1258us; 1175us; 1258us; 1181us; 1258us; 1182us; 1258us; 1187us; 1258us; 1189us; 1258us; 1191us; 1258us; 1192us; 1258us; 1195us; 1258us; 1202us; 1258us; 1203us; 1258us; 1206us; 1258us; 1207us; 1258us; 1220us; 1258us; 1229us; 1258us; 1236us; 1258us; 1244us; 1258us; 1247us; 1258us; 1250us; 1258us; 1253us; 1258us; 1254us; 1258us; 1265us; 1258us; 1272us; 1258us; 1273us; 1258us; 1279us; 1258us; 1285us; 1258us; 1286us; 1258us; 1287us; 1258us; 1303us; 1258us; 1313us; 1258us; 1326us; 1258us; 1327us; 1258us; 1329us; 1258us; 1331us; 1258us; 1335us; 1258us; 1336us; 1258us; 1340us; 1258us; 1355us; 1258us; 1359us; 1258us; 1364us; 1258us; 1389us; 1258us; 1423us; 1258us; 1428us; 1258us; 1566us; 1258us; 1us; 65535us; 1313us; 1314us; 2us; 65535us; 1220us; 1221us; 1279us; 1280us; 3us; 65535us; 1220us; 1323us; 1279us; 1323us; 1313us; 1322us; 4us; 65535us; 1220us; 1325us; 1279us; 1325us; 1313us; 1325us; 1331us; 1332us; 1us; 65535us; 1022us; 1023us; 1us; 65535us; 974us; 975us; 1us; 65535us; 974us; 983us; 3us; 65535us; 1285us; 1306us; 1286us; 1306us; 1287us; 1306us; 1us; 65535us; 1339us; 1340us; 4us; 65535us; 213us; 214us; 217us; 218us; 222us; 223us; 1355us; 1356us; 1us; 65535us; 1338us; 1339us; 1us; 65535us; 1340us; 1341us; 1us; 65535us; 1313us; 1320us; 6us; 65535us; 1357us; 1358us; 1361us; 1362us; 1366us; 1367us; 1370us; 1371us; 1372us; 1373us; 1376us; 1377us; 6us; 65535us; 1357us; 1380us; 1361us; 1380us; 1366us; 1380us; 1370us; 1380us; 1372us; 1379us; 1376us; 1380us; 3us; 65535us; 1368us; 1388us; 1372us; 1388us; 1380us; 1388us; 5us; 65535us; 1356us; 1357us; 1360us; 1361us; 1365us; 1366us; 1369us; 1370us; 1375us; 1376us; 3us; 65535us; 1368us; 1369us; 1372us; 1375us; 1380us; 1387us; 1us; 65535us; 1313us; 1321us; 1us; 65535us; 1313us; 1393us; 1us; 65535us; 1415us; 1416us; 2us; 65535us; 1393us; 1394us; 1415us; 1400us; 1us; 65535us; 1397us; 1398us; 4us; 65535us; 1395us; 1396us; 1408us; 1409us; 1410us; 1411us; 1412us; 1413us; 5us; 65535us; 1395us; 1410us; 1397us; 1408us; 1408us; 1410us; 1410us; 1410us; 1412us; 1410us; 1us; 65535us; 1059us; 1336us; 107us; 65535us; 34us; 939us; 74us; 939us; 104us; 939us; 126us; 939us; 182us; 939us; 184us; 939us; 390us; 939us; 395us; 939us; 430us; 939us; 446us; 939us; 670us; 939us; 676us; 939us; 725us; 939us; 729us; 939us; 739us; 939us; 887us; 939us; 892us; 939us; 904us; 939us; 906us; 939us; 909us; 939us; 912us; 939us; 928us; 939us; 931us; 939us; 934us; 939us; 940us; 939us; 944us; 939us; 948us; 939us; 950us; 939us; 955us; 939us; 957us; 939us; 959us; 939us; 961us; 939us; 963us; 939us; 965us; 939us; 976us; 939us; 984us; 939us; 991us; 939us; 997us; 939us; 999us; 939us; 1002us; 939us; 1005us; 939us; 1008us; 939us; 1011us; 939us; 1014us; 939us; 1017us; 939us; 1019us; 939us; 1024us; 939us; 1067us; 939us; 1069us; 939us; 1072us; 939us; 1073us; 939us; 1074us; 939us; 1075us; 939us; 1076us; 939us; 1077us; 939us; 1078us; 939us; 1079us; 939us; 1080us; 939us; 1081us; 939us; 1082us; 939us; 1083us; 939us; 1084us; 939us; 1085us; 939us; 1086us; 939us; 1087us; 939us; 1088us; 939us; 1089us; 939us; 1090us; 939us; 1091us; 939us; 1113us; 939us; 1135us; 939us; 1136us; 939us; 1140us; 939us; 1142us; 939us; 1146us; 939us; 1148us; 939us; 1152us; 939us; 1155us; 939us; 1157us; 939us; 1220us; 939us; 1229us; 939us; 1236us; 939us; 1244us; 939us; 1247us; 939us; 1250us; 939us; 1253us; 939us; 1254us; 939us; 1265us; 939us; 1272us; 939us; 1273us; 939us; 1279us; 939us; 1285us; 939us; 1286us; 939us; 1287us; 939us; 1303us; 939us; 1313us; 939us; 1326us; 939us; 1327us; 939us; 1329us; 939us; 1331us; 939us; 1335us; 939us; 1336us; 939us; 1359us; 939us; 1364us; 939us; 1389us; 939us; 1423us; 939us; 1428us; 939us; 107us; 65535us; 34us; 938us; 74us; 938us; 104us; 938us; 126us; 938us; 182us; 938us; 184us; 938us; 390us; 938us; 395us; 938us; 430us; 938us; 446us; 938us; 670us; 938us; 676us; 938us; 725us; 938us; 729us; 938us; 739us; 938us; 887us; 938us; 892us; 938us; 904us; 938us; 906us; 938us; 909us; 938us; 912us; 938us; 928us; 938us; 931us; 938us; 934us; 938us; 940us; 938us; 944us; 938us; 948us; 938us; 950us; 938us; 955us; 938us; 957us; 938us; 959us; 938us; 961us; 938us; 963us; 938us; 965us; 938us; 976us; 938us; 984us; 938us; 991us; 938us; 997us; 938us; 999us; 938us; 1002us; 938us; 1005us; 938us; 1008us; 938us; 1011us; 938us; 1014us; 938us; 1017us; 938us; 1019us; 938us; 1024us; 938us; 1067us; 938us; 1069us; 938us; 1072us; 938us; 1073us; 938us; 1074us; 938us; 1075us; 938us; 1076us; 938us; 1077us; 938us; 1078us; 938us; 1079us; 938us; 1080us; 938us; 1081us; 938us; 1082us; 938us; 1083us; 938us; 1084us; 938us; 1085us; 938us; 1086us; 938us; 1087us; 938us; 1088us; 938us; 1089us; 938us; 1090us; 938us; 1091us; 938us; 1113us; 938us; 1135us; 938us; 1136us; 938us; 1140us; 938us; 1142us; 938us; 1146us; 938us; 1148us; 938us; 1152us; 938us; 1155us; 938us; 1157us; 938us; 1220us; 938us; 1229us; 938us; 1236us; 938us; 1244us; 938us; 1247us; 938us; 1250us; 938us; 1253us; 938us; 1254us; 938us; 1265us; 938us; 1272us; 938us; 1273us; 938us; 1279us; 938us; 1285us; 938us; 1286us; 938us; 1287us; 938us; 1303us; 938us; 1313us; 938us; 1326us; 938us; 1327us; 938us; 1329us; 938us; 1331us; 938us; 1335us; 938us; 1336us; 938us; 1359us; 938us; 1364us; 938us; 1389us; 938us; 1423us; 938us; 1428us; 938us; 3us; 65535us; 775us; 776us; 868us; 869us; 899us; 900us; 5us; 65535us; 179us; 180us; 306us; 307us; 321us; 322us; 416us; 417us; 1448us; 1449us; 3us; 65535us; 388us; 389us; 393us; 394us; 723us; 724us; 9us; 65535us; 179us; 1446us; 253us; 254us; 306us; 1446us; 321us; 1446us; 353us; 354us; 416us; 1446us; 613us; 614us; 1448us; 1446us; 1451us; 1452us; 9us; 65535us; 179us; 1450us; 253us; 1450us; 306us; 1450us; 321us; 1450us; 353us; 1450us; 416us; 1450us; 613us; 1450us; 1448us; 1450us; 1451us; 1450us; 2us; 65535us; 1454us; 1455us; 1457us; 1458us; 11us; 65535us; 179us; 1453us; 253us; 1453us; 306us; 1453us; 321us; 1453us; 353us; 1453us; 416us; 1453us; 613us; 1453us; 1448us; 1453us; 1451us; 1453us; 1454us; 1456us; 1457us; 1456us; 32us; 65535us; 300us; 512us; 403us; 512us; 439us; 440us; 449us; 450us; 507us; 512us; 515us; 1561us; 570us; 571us; 573us; 574us; 647us; 648us; 745us; 746us; 775us; 1444us; 868us; 1444us; 899us; 1444us; 1061us; 1062us; 1063us; 1064us; 1065us; 1066us; 1346us; 1347us; 1349us; 1350us; 1351us; 1561us; 1475us; 1476us; 1509us; 1561us; 1510us; 1561us; 1518us; 1520us; 1519us; 1521us; 1524us; 1526us; 1525us; 1527us; 1537us; 1592us; 1541us; 1592us; 1559us; 1560us; 1580us; 1592us; 1582us; 1592us; 1593us; 1594us; 32us; 65535us; 300us; 1474us; 403us; 1474us; 439us; 1474us; 449us; 1474us; 507us; 1474us; 515us; 1474us; 570us; 1474us; 573us; 1474us; 647us; 1474us; 745us; 1474us; 775us; 1474us; 868us; 1474us; 899us; 1474us; 1061us; 1474us; 1063us; 1474us; 1065us; 1474us; 1346us; 1474us; 1349us; 1474us; 1351us; 1474us; 1475us; 1474us; 1509us; 1474us; 1510us; 1474us; 1518us; 1474us; 1519us; 1474us; 1524us; 1474us; 1525us; 1474us; 1537us; 1474us; 1541us; 1474us; 1559us; 1474us; 1580us; 1474us; 1582us; 1474us; 1593us; 1474us; 5us; 65535us; 1478us; 1479us; 1480us; 1481us; 1482us; 1483us; 1485us; 1486us; 1487us; 1488us; 2us; 65535us; 636us; 637us; 1490us; 1491us; 86us; 65535us; 179us; 1497us; 253us; 1497us; 300us; 1497us; 306us; 1497us; 310us; 1497us; 311us; 1496us; 312us; 1497us; 313us; 1496us; 321us; 1497us; 353us; 1497us; 403us; 1497us; 409us; 1497us; 410us; 1496us; 416us; 1497us; 439us; 1497us; 449us; 1497us; 471us; 1497us; 507us; 1497us; 515us; 1497us; 524us; 1497us; 570us; 1497us; 573us; 1497us; 610us; 1497us; 613us; 1497us; 632us; 1497us; 635us; 1496us; 636us; 1497us; 647us; 1497us; 660us; 1497us; 745us; 1497us; 775us; 1497us; 814us; 1497us; 868us; 1497us; 899us; 1497us; 1061us; 1497us; 1063us; 1497us; 1065us; 1497us; 1177us; 1497us; 1178us; 1497us; 1346us; 1497us; 1349us; 1497us; 1351us; 1497us; 1353us; 1497us; 1414us; 1497us; 1415us; 1496us; 1448us; 1497us; 1451us; 1497us; 1454us; 1497us; 1457us; 1497us; 1459us; 1497us; 1460us; 1496us; 1461us; 1497us; 1462us; 1496us; 1465us; 1497us; 1466us; 1496us; 1467us; 1496us; 1468us; 1497us; 1469us; 1496us; 1472us; 1497us; 1473us; 1496us; 1475us; 1497us; 1477us; 1496us; 1478us; 1497us; 1480us; 1497us; 1482us; 1497us; 1484us; 1496us; 1485us; 1497us; 1487us; 1497us; 1489us; 1496us; 1490us; 1497us; 1500us; 1496us; 1509us; 1497us; 1510us; 1497us; 1513us; 1496us; 1514us; 1496us; 1518us; 1497us; 1519us; 1497us; 1524us; 1497us; 1525us; 1497us; 1537us; 1497us; 1541us; 1497us; 1555us; 1497us; 1559us; 1497us; 1580us; 1497us; 1582us; 1497us; 1593us; 1497us; 86us; 65535us; 179us; 1557us; 253us; 1557us; 300us; 1557us; 306us; 1557us; 310us; 1557us; 311us; 1507us; 312us; 1557us; 313us; 1507us; 321us; 1557us; 353us; 1557us; 403us; 1557us; 409us; 1557us; 410us; 1507us; 416us; 1557us; 439us; 1557us; 449us; 1557us; 471us; 1557us; 507us; 1557us; 515us; 1557us; 524us; 1557us; 570us; 1557us; 573us; 1557us; 610us; 1557us; 613us; 1557us; 632us; 1557us; 635us; 1507us; 636us; 1557us; 647us; 1557us; 660us; 1557us; 745us; 1557us; 775us; 1557us; 814us; 1557us; 868us; 1557us; 899us; 1557us; 1061us; 1557us; 1063us; 1557us; 1065us; 1557us; 1177us; 1557us; 1178us; 1557us; 1346us; 1557us; 1349us; 1557us; 1351us; 1557us; 1353us; 1557us; 1414us; 1557us; 1415us; 1507us; 1448us; 1557us; 1451us; 1557us; 1454us; 1557us; 1457us; 1557us; 1459us; 1557us; 1460us; 1507us; 1461us; 1557us; 1462us; 1507us; 1465us; 1557us; 1466us; 1507us; 1467us; 1507us; 1468us; 1557us; 1469us; 1507us; 1472us; 1557us; 1473us; 1507us; 1475us; 1557us; 1477us; 1507us; 1478us; 1557us; 1480us; 1557us; 1482us; 1557us; 1484us; 1507us; 1485us; 1557us; 1487us; 1557us; 1489us; 1507us; 1490us; 1557us; 1500us; 1508us; 1509us; 1557us; 1510us; 1557us; 1513us; 1515us; 1514us; 1516us; 1518us; 1557us; 1519us; 1557us; 1524us; 1557us; 1525us; 1557us; 1537us; 1557us; 1541us; 1557us; 1555us; 1557us; 1559us; 1557us; 1580us; 1557us; 1582us; 1557us; 1593us; 1557us; 66us; 65535us; 179us; 1467us; 253us; 1467us; 300us; 1477us; 306us; 1467us; 310us; 311us; 312us; 313us; 321us; 1467us; 353us; 1467us; 403us; 1477us; 409us; 410us; 416us; 1467us; 439us; 1477us; 449us; 1477us; 471us; 1500us; 507us; 1477us; 515us; 1477us; 570us; 1477us; 573us; 1477us; 610us; 635us; 613us; 1467us; 632us; 635us; 636us; 1489us; 647us; 1477us; 660us; 635us; 745us; 1477us; 775us; 1477us; 868us; 1477us; 899us; 1477us; 1061us; 1477us; 1063us; 1477us; 1065us; 1477us; 1177us; 1500us; 1178us; 1500us; 1346us; 1477us; 1349us; 1477us; 1351us; 1477us; 1353us; 1500us; 1414us; 1415us; 1448us; 1467us; 1451us; 1467us; 1454us; 1467us; 1457us; 1467us; 1459us; 1460us; 1461us; 1462us; 1465us; 1466us; 1468us; 1469us; 1472us; 1473us; 1475us; 1477us; 1478us; 1484us; 1480us; 1484us; 1482us; 1484us; 1485us; 1484us; 1487us; 1484us; 1490us; 1489us; 1509us; 1477us; 1510us; 1477us; 1518us; 1477us; 1519us; 1477us; 1524us; 1477us; 1525us; 1477us; 1537us; 1477us; 1541us; 1477us; 1559us; 1477us; 1580us; 1477us; 1582us; 1477us; 1593us; 1477us; 17us; 65535us; 311us; 1501us; 313us; 1501us; 410us; 1501us; 635us; 1501us; 1415us; 1501us; 1460us; 1501us; 1462us; 1501us; 1466us; 1501us; 1467us; 1501us; 1469us; 1501us; 1473us; 1501us; 1477us; 1501us; 1484us; 1501us; 1489us; 1501us; 1500us; 1502us; 1503us; 1505us; 1504us; 1506us; 4us; 65535us; 515us; 1511us; 1351us; 1511us; 1509us; 1512us; 1510us; 1511us; 2us; 65535us; 1538us; 1539us; 1583us; 1540us; 66us; 65535us; 179us; 1517us; 253us; 1517us; 300us; 1517us; 306us; 1517us; 310us; 1517us; 312us; 1517us; 321us; 1517us; 353us; 1517us; 403us; 1517us; 409us; 1517us; 416us; 1517us; 439us; 1517us; 449us; 1517us; 471us; 1517us; 507us; 1517us; 515us; 1517us; 570us; 1517us; 573us; 1517us; 610us; 1517us; 613us; 1517us; 632us; 1517us; 636us; 1517us; 647us; 1517us; 660us; 1517us; 745us; 1517us; 775us; 1517us; 868us; 1517us; 899us; 1517us; 1061us; 1517us; 1063us; 1517us; 1065us; 1517us; 1177us; 1517us; 1178us; 1517us; 1346us; 1517us; 1349us; 1517us; 1351us; 1517us; 1353us; 1517us; 1414us; 1517us; 1448us; 1517us; 1451us; 1517us; 1454us; 1517us; 1457us; 1517us; 1459us; 1517us; 1461us; 1517us; 1465us; 1517us; 1468us; 1517us; 1472us; 1517us; 1475us; 1517us; 1478us; 1517us; 1480us; 1517us; 1482us; 1517us; 1485us; 1517us; 1487us; 1517us; 1490us; 1517us; 1509us; 1517us; 1510us; 1517us; 1518us; 1517us; 1519us; 1517us; 1524us; 1517us; 1525us; 1517us; 1537us; 1517us; 1541us; 1517us; 1559us; 1517us; 1580us; 1517us; 1582us; 1517us; 1593us; 1517us; 4us; 65535us; 471us; 472us; 1177us; 1179us; 1178us; 1180us; 1353us; 1354us; 4us; 65535us; 471us; 1554us; 1177us; 1554us; 1178us; 1554us; 1353us; 1554us; 69us; 65535us; 179us; 1545us; 253us; 1545us; 300us; 1545us; 306us; 1545us; 310us; 1545us; 312us; 1545us; 321us; 1545us; 353us; 1545us; 403us; 1545us; 409us; 1545us; 416us; 1545us; 439us; 1545us; 449us; 1545us; 471us; 1544us; 507us; 1545us; 515us; 1545us; 524us; 1556us; 570us; 1545us; 573us; 1545us; 610us; 1545us; 613us; 1545us; 632us; 1545us; 636us; 1545us; 647us; 1545us; 660us; 1545us; 745us; 1545us; 775us; 1545us; 814us; 815us; 868us; 1545us; 899us; 1545us; 1061us; 1545us; 1063us; 1545us; 1065us; 1545us; 1177us; 1544us; 1178us; 1544us; 1346us; 1545us; 1349us; 1545us; 1351us; 1545us; 1353us; 1544us; 1414us; 1545us; 1448us; 1545us; 1451us; 1545us; 1454us; 1545us; 1457us; 1545us; 1459us; 1545us; 1461us; 1545us; 1465us; 1545us; 1468us; 1545us; 1472us; 1545us; 1475us; 1545us; 1478us; 1545us; 1480us; 1545us; 1482us; 1545us; 1485us; 1545us; 1487us; 1545us; 1490us; 1545us; 1509us; 1545us; 1510us; 1545us; 1518us; 1545us; 1519us; 1545us; 1524us; 1545us; 1525us; 1545us; 1537us; 1545us; 1541us; 1545us; 1555us; 1556us; 1559us; 1545us; 1580us; 1545us; 1582us; 1545us; 1593us; 1545us; 4us; 65535us; 577us; 592us; 590us; 591us; 1497us; 1571us; 1573us; 1574us; 6us; 65535us; 577us; 1577us; 590us; 1577us; 1204us; 1205us; 1497us; 1577us; 1573us; 1577us; 1578us; 1579us; 8us; 65535us; 515us; 1536us; 1351us; 1536us; 1509us; 1536us; 1510us; 1536us; 1537us; 1538us; 1541us; 1542us; 1580us; 1587us; 1582us; 1595us; 2us; 65535us; 1580us; 1581us; 1582us; 1583us; 3us; 65535us; 1541us; 1543us; 1580us; 1596us; 1582us; 1596us; 1us; 65535us; 767us; 768us; 6us; 65535us; 1597us; 1607us; 1604us; 1607us; 1613us; 1607us; 1619us; 1607us; 1620us; 1607us; 1621us; 1607us; 6us; 65535us; 1597us; 1613us; 1604us; 1613us; 1613us; 1613us; 1619us; 1613us; 1620us; 1613us; 1621us; 1613us; 6us; 65535us; 1597us; 1615us; 1604us; 1615us; 1613us; 1614us; 1619us; 1615us; 1620us; 1615us; 1621us; 1615us; 5us; 65535us; 1597us; 1598us; 1604us; 1605us; 1619us; 1616us; 1620us; 1617us; 1621us; 1618us; 103us; 65535us; 179us; 1494us; 253us; 1494us; 300us; 1494us; 306us; 1494us; 310us; 1494us; 311us; 1493us; 312us; 1494us; 313us; 1493us; 321us; 1494us; 353us; 1494us; 403us; 1494us; 409us; 1494us; 410us; 1493us; 416us; 1494us; 439us; 1494us; 449us; 1494us; 471us; 1495us; 507us; 1494us; 515us; 1494us; 524us; 1493us; 532us; 537us; 547us; 548us; 561us; 572us; 565us; 572us; 568us; 569us; 570us; 1494us; 573us; 1494us; 583us; 595us; 593us; 594us; 610us; 1494us; 613us; 1494us; 632us; 1494us; 635us; 1493us; 636us; 1494us; 647us; 1494us; 660us; 1494us; 737us; 744us; 741us; 744us; 745us; 1494us; 775us; 1494us; 814us; 1493us; 868us; 1494us; 899us; 1494us; 1061us; 1494us; 1063us; 1494us; 1065us; 1494us; 1177us; 1495us; 1178us; 1495us; 1346us; 1494us; 1349us; 1494us; 1351us; 1494us; 1353us; 1495us; 1414us; 1494us; 1415us; 1493us; 1445us; 572us; 1447us; 572us; 1448us; 1494us; 1451us; 1494us; 1454us; 1494us; 1457us; 1494us; 1459us; 1494us; 1460us; 1493us; 1461us; 1494us; 1462us; 1493us; 1465us; 1494us; 1466us; 1493us; 1467us; 1493us; 1468us; 1494us; 1469us; 1493us; 1472us; 1494us; 1473us; 1493us; 1475us; 1494us; 1477us; 1493us; 1478us; 1494us; 1480us; 1494us; 1482us; 1494us; 1484us; 1493us; 1485us; 1494us; 1487us; 1494us; 1489us; 1493us; 1490us; 1494us; 1500us; 1493us; 1509us; 1494us; 1510us; 1494us; 1513us; 1493us; 1514us; 1493us; 1518us; 1494us; 1519us; 1494us; 1524us; 1494us; 1525us; 1494us; 1537us; 1494us; 1541us; 1494us; 1555us; 1493us; 1559us; 1494us; 1580us; 1494us; 1582us; 1494us; 1593us; 1494us; 1597us; 1603us; 1604us; 1603us; 1613us; 1603us; 1619us; 1603us; 1620us; 1603us; 1621us; 1603us; 107us; 65535us; 179us; 1624us; 253us; 1624us; 300us; 1624us; 306us; 1624us; 310us; 1624us; 311us; 1624us; 312us; 1624us; 313us; 1624us; 321us; 1624us; 353us; 1624us; 403us; 1624us; 409us; 1624us; 410us; 1624us; 416us; 1624us; 439us; 1624us; 449us; 1624us; 471us; 1624us; 507us; 1624us; 515us; 1624us; 524us; 1624us; 532us; 1624us; 547us; 1624us; 561us; 1624us; 565us; 1624us; 568us; 1624us; 570us; 1624us; 573us; 1624us; 583us; 1624us; 593us; 1624us; 610us; 1624us; 613us; 1624us; 632us; 1624us; 635us; 1624us; 636us; 1624us; 647us; 1624us; 660us; 1624us; 737us; 1624us; 741us; 1624us; 745us; 1624us; 775us; 1624us; 814us; 1624us; 868us; 1624us; 899us; 1624us; 1061us; 1624us; 1063us; 1624us; 1065us; 1624us; 1177us; 1624us; 1178us; 1624us; 1285us; 1307us; 1286us; 1308us; 1287us; 1307us; 1311us; 1312us; 1346us; 1624us; 1349us; 1624us; 1351us; 1624us; 1353us; 1624us; 1414us; 1624us; 1415us; 1624us; 1445us; 1624us; 1447us; 1624us; 1448us; 1624us; 1451us; 1624us; 1454us; 1624us; 1457us; 1624us; 1459us; 1624us; 1460us; 1624us; 1461us; 1624us; 1462us; 1624us; 1465us; 1624us; 1466us; 1624us; 1467us; 1624us; 1468us; 1624us; 1469us; 1624us; 1472us; 1624us; 1473us; 1624us; 1475us; 1624us; 1477us; 1624us; 1478us; 1624us; 1480us; 1624us; 1482us; 1624us; 1484us; 1624us; 1485us; 1624us; 1487us; 1624us; 1489us; 1624us; 1490us; 1624us; 1500us; 1624us; 1509us; 1624us; 1510us; 1624us; 1513us; 1624us; 1514us; 1624us; 1518us; 1624us; 1519us; 1624us; 1524us; 1624us; 1525us; 1624us; 1537us; 1624us; 1541us; 1624us; 1555us; 1624us; 1559us; 1624us; 1580us; 1624us; 1582us; 1624us; 1593us; 1624us; 1597us; 1624us; 1604us; 1624us; 1613us; 1624us; 1619us; 1624us; 1620us; 1624us; 1621us; 1624us; 319us; 65535us; 34us; 1677us; 50us; 1630us; 52us; 1630us; 74us; 1677us; 104us; 1677us; 126us; 1677us; 133us; 1630us; 138us; 1630us; 165us; 1630us; 170us; 1630us; 176us; 1677us; 179us; 1630us; 182us; 1677us; 184us; 1677us; 199us; 228us; 210us; 228us; 215us; 1630us; 219us; 1630us; 253us; 1630us; 288us; 1677us; 290us; 1677us; 295us; 1677us; 300us; 626us; 303us; 1677us; 306us; 1630us; 310us; 1630us; 311us; 1630us; 312us; 1630us; 313us; 1630us; 321us; 1630us; 353us; 1630us; 387us; 1679us; 390us; 1677us; 392us; 1679us; 395us; 1677us; 403us; 626us; 409us; 1630us; 410us; 1630us; 413us; 1677us; 416us; 1630us; 427us; 1679us; 430us; 1677us; 437us; 438us; 439us; 1630us; 443us; 444us; 446us; 1677us; 449us; 1630us; 452us; 1679us; 455us; 1679us; 471us; 1630us; 479us; 480us; 482us; 483us; 507us; 626us; 515us; 1630us; 524us; 1630us; 532us; 1630us; 534us; 1630us; 570us; 1630us; 573us; 1630us; 607us; 1677us; 610us; 1630us; 613us; 1630us; 632us; 1630us; 635us; 1630us; 636us; 1630us; 645us; 646us; 647us; 1630us; 656us; 659us; 660us; 1630us; 662us; 1630us; 664us; 1630us; 670us; 1677us; 676us; 1677us; 687us; 688us; 699us; 1630us; 700us; 701us; 712us; 1630us; 722us; 1679us; 725us; 1677us; 729us; 1677us; 739us; 1677us; 745us; 1630us; 771us; 772us; 775us; 1630us; 777us; 770us; 778us; 770us; 780us; 770us; 796us; 797us; 798us; 1679us; 799us; 1679us; 803us; 1679us; 804us; 1679us; 805us; 1679us; 806us; 1679us; 808us; 1679us; 810us; 1679us; 812us; 1679us; 814us; 1630us; 817us; 1679us; 819us; 1679us; 821us; 1679us; 826us; 1630us; 829us; 1679us; 832us; 1679us; 836us; 838us; 837us; 838us; 844us; 1679us; 863us; 864us; 865us; 1679us; 868us; 1630us; 870us; 1679us; 871us; 1679us; 873us; 1679us; 874us; 1679us; 875us; 1679us; 876us; 1679us; 880us; 1630us; 883us; 1679us; 885us; 1679us; 887us; 1677us; 892us; 1677us; 899us; 1630us; 904us; 1677us; 906us; 1677us; 909us; 1677us; 912us; 1677us; 928us; 1677us; 931us; 1677us; 934us; 1677us; 940us; 1677us; 944us; 1677us; 948us; 1677us; 950us; 1677us; 955us; 1677us; 957us; 1677us; 959us; 1677us; 961us; 1677us; 963us; 1677us; 965us; 1677us; 974us; 1679us; 976us; 1677us; 984us; 1677us; 991us; 1677us; 997us; 1677us; 999us; 1677us; 1001us; 1679us; 1002us; 1677us; 1005us; 1677us; 1007us; 1679us; 1008us; 1677us; 1011us; 1677us; 1014us; 1677us; 1017us; 1677us; 1019us; 1677us; 1024us; 1677us; 1061us; 1630us; 1063us; 1630us; 1065us; 1630us; 1067us; 1677us; 1069us; 1677us; 1072us; 1677us; 1073us; 1677us; 1074us; 1677us; 1075us; 1677us; 1076us; 1677us; 1077us; 1677us; 1078us; 1677us; 1079us; 1677us; 1080us; 1677us; 1081us; 1677us; 1082us; 1677us; 1083us; 1677us; 1084us; 1677us; 1085us; 1677us; 1086us; 1677us; 1087us; 1677us; 1088us; 1677us; 1089us; 1677us; 1090us; 1677us; 1091us; 1677us; 1113us; 1677us; 1116us; 1679us; 1118us; 1679us; 1123us; 1679us; 1130us; 1679us; 1135us; 1677us; 1136us; 1677us; 1140us; 1677us; 1142us; 1677us; 1146us; 1677us; 1148us; 1677us; 1152us; 1677us; 1155us; 1677us; 1157us; 1677us; 1159us; 1677us; 1160us; 1677us; 1162us; 1677us; 1163us; 1677us; 1165us; 1677us; 1166us; 1677us; 1168us; 1677us; 1169us; 1677us; 1171us; 1677us; 1172us; 1677us; 1174us; 1677us; 1175us; 1677us; 1177us; 1630us; 1178us; 1630us; 1187us; 1677us; 1189us; 1677us; 1191us; 1677us; 1192us; 1677us; 1195us; 1677us; 1202us; 1677us; 1203us; 1677us; 1206us; 1677us; 1207us; 1677us; 1208us; 1677us; 1211us; 1677us; 1213us; 1677us; 1214us; 1677us; 1220us; 1677us; 1229us; 1677us; 1236us; 1677us; 1244us; 1677us; 1247us; 1677us; 1250us; 1677us; 1253us; 1677us; 1254us; 1677us; 1265us; 1677us; 1272us; 1677us; 1273us; 1677us; 1279us; 1677us; 1285us; 1677us; 1286us; 1677us; 1287us; 1677us; 1303us; 1677us; 1313us; 1677us; 1326us; 1677us; 1327us; 1677us; 1329us; 1677us; 1331us; 1677us; 1335us; 1677us; 1336us; 1677us; 1340us; 1677us; 1346us; 1630us; 1349us; 1630us; 1351us; 1630us; 1353us; 1630us; 1359us; 1677us; 1364us; 1677us; 1368us; 1630us; 1372us; 1630us; 1380us; 1630us; 1389us; 1677us; 1414us; 1630us; 1415us; 1630us; 1421us; 1679us; 1423us; 1677us; 1426us; 1679us; 1428us; 1677us; 1439us; 1679us; 1441us; 1679us; 1448us; 1630us; 1451us; 1630us; 1454us; 1630us; 1457us; 1630us; 1459us; 1630us; 1460us; 1630us; 1461us; 1630us; 1462us; 1630us; 1463us; 1464us; 1465us; 1630us; 1466us; 1630us; 1467us; 1630us; 1468us; 1630us; 1469us; 1630us; 1470us; 1471us; 1472us; 1630us; 1473us; 1630us; 1475us; 1630us; 1477us; 1630us; 1478us; 1630us; 1480us; 1630us; 1482us; 1630us; 1484us; 1630us; 1485us; 1630us; 1487us; 1630us; 1489us; 1630us; 1490us; 1630us; 1500us; 1630us; 1509us; 1630us; 1510us; 1630us; 1513us; 1630us; 1514us; 1630us; 1518us; 1630us; 1519us; 1630us; 1524us; 1630us; 1525us; 1630us; 1537us; 1630us; 1541us; 1630us; 1555us; 1630us; 1559us; 1630us; 1566us; 1677us; 1572us; 1630us; 1580us; 1630us; 1582us; 1630us; 1593us; 1630us; 1597us; 1630us; 1604us; 1630us; 1613us; 1630us; 1619us; 1630us; 1620us; 1630us; 1621us; 1630us; 1622us; 1623us; 1625us; 1627us; 1626us; 1627us; 1631us; 1632us; 1681us; 1679us; 114us; 65535us; 50us; 51us; 52us; 53us; 133us; 151us; 138us; 139us; 165us; 141us; 170us; 171us; 179us; 1492us; 199us; 212us; 210us; 212us; 215us; 216us; 219us; 220us; 253us; 1492us; 300us; 508us; 306us; 1492us; 310us; 1492us; 311us; 1492us; 312us; 1492us; 313us; 1492us; 321us; 1492us; 353us; 1492us; 403us; 508us; 409us; 1492us; 410us; 1492us; 416us; 1492us; 439us; 1492us; 449us; 1492us; 471us; 1492us; 507us; 508us; 515us; 1492us; 524us; 1492us; 532us; 533us; 534us; 535us; 570us; 1492us; 573us; 1492us; 610us; 1492us; 613us; 1492us; 632us; 1492us; 635us; 1492us; 636us; 1492us; 647us; 1492us; 660us; 1492us; 662us; 663us; 664us; 665us; 699us; 702us; 712us; 702us; 745us; 1492us; 775us; 1492us; 814us; 1492us; 826us; 882us; 868us; 1492us; 880us; 882us; 899us; 1492us; 1061us; 1492us; 1063us; 1492us; 1065us; 1492us; 1177us; 1492us; 1178us; 1492us; 1346us; 1492us; 1349us; 1492us; 1351us; 1492us; 1353us; 1492us; 1368us; 1385us; 1372us; 1385us; 1380us; 1385us; 1414us; 1492us; 1415us; 1492us; 1448us; 1492us; 1451us; 1492us; 1454us; 1492us; 1457us; 1492us; 1459us; 1492us; 1460us; 1492us; 1461us; 1492us; 1462us; 1492us; 1465us; 1492us; 1466us; 1492us; 1467us; 1492us; 1468us; 1492us; 1469us; 1492us; 1472us; 1492us; 1473us; 1492us; 1475us; 1492us; 1477us; 1492us; 1478us; 1492us; 1480us; 1492us; 1482us; 1492us; 1484us; 1492us; 1485us; 1492us; 1487us; 1492us; 1489us; 1492us; 1490us; 1492us; 1500us; 1492us; 1509us; 1492us; 1510us; 1492us; 1513us; 1492us; 1514us; 1492us; 1518us; 1492us; 1519us; 1492us; 1524us; 1492us; 1525us; 1492us; 1537us; 1492us; 1541us; 1492us; 1555us; 1492us; 1559us; 1492us; 1572us; 1573us; 1580us; 1492us; 1582us; 1492us; 1593us; 1492us; 1597us; 1602us; 1604us; 1602us; 1613us; 1602us; 1619us; 1602us; 1620us; 1602us; 1621us; 1602us; 183us; 65535us; 34us; 1678us; 74us; 1678us; 104us; 1678us; 126us; 1678us; 176us; 1678us; 182us; 1678us; 184us; 1678us; 288us; 1678us; 290us; 1678us; 295us; 1678us; 303us; 1678us; 387us; 1680us; 390us; 1678us; 392us; 1680us; 395us; 1678us; 413us; 1678us; 427us; 1680us; 430us; 1678us; 446us; 1678us; 452us; 1680us; 455us; 1680us; 607us; 1678us; 670us; 1678us; 676us; 1678us; 722us; 1680us; 725us; 1678us; 729us; 1678us; 739us; 1678us; 798us; 1680us; 799us; 1680us; 803us; 1680us; 804us; 1680us; 805us; 1680us; 806us; 1680us; 808us; 1680us; 810us; 1680us; 812us; 1680us; 817us; 1680us; 819us; 1680us; 821us; 1680us; 829us; 1680us; 832us; 1680us; 844us; 1680us; 865us; 1680us; 870us; 1680us; 871us; 1680us; 873us; 1680us; 874us; 1680us; 875us; 1680us; 876us; 1680us; 883us; 1680us; 885us; 1680us; 887us; 1678us; 892us; 1678us; 904us; 1678us; 906us; 1678us; 909us; 1678us; 912us; 1678us; 928us; 1678us; 931us; 1678us; 934us; 1678us; 940us; 1678us; 944us; 1678us; 948us; 1678us; 950us; 1678us; 955us; 1678us; 957us; 1678us; 959us; 1678us; 961us; 1678us; 963us; 1678us; 965us; 1678us; 974us; 1680us; 976us; 1678us; 984us; 1678us; 991us; 1678us; 997us; 1678us; 999us; 1678us; 1001us; 1680us; 1002us; 1678us; 1005us; 1678us; 1007us; 1680us; 1008us; 1678us; 1011us; 1678us; 1014us; 1678us; 1017us; 1678us; 1019us; 1678us; 1024us; 1678us; 1067us; 1678us; 1069us; 1678us; 1072us; 1678us; 1073us; 1678us; 1074us; 1678us; 1075us; 1678us; 1076us; 1678us; 1077us; 1678us; 1078us; 1678us; 1079us; 1678us; 1080us; 1678us; 1081us; 1678us; 1082us; 1678us; 1083us; 1678us; 1084us; 1678us; 1085us; 1678us; 1086us; 1678us; 1087us; 1678us; 1088us; 1678us; 1089us; 1678us; 1090us; 1678us; 1091us; 1678us; 1113us; 1678us; 1116us; 1680us; 1118us; 1680us; 1123us; 1680us; 1130us; 1680us; 1135us; 1678us; 1136us; 1678us; 1140us; 1678us; 1142us; 1678us; 1146us; 1678us; 1148us; 1678us; 1152us; 1678us; 1155us; 1678us; 1157us; 1678us; 1159us; 1678us; 1160us; 1678us; 1162us; 1678us; 1163us; 1678us; 1165us; 1678us; 1166us; 1678us; 1168us; 1678us; 1169us; 1678us; 1171us; 1678us; 1172us; 1678us; 1174us; 1678us; 1175us; 1678us; 1187us; 1678us; 1189us; 1678us; 1191us; 1678us; 1192us; 1678us; 1195us; 1678us; 1202us; 1678us; 1203us; 1678us; 1206us; 1678us; 1207us; 1678us; 1208us; 1678us; 1211us; 1678us; 1213us; 1678us; 1214us; 1678us; 1220us; 1678us; 1229us; 1678us; 1236us; 1678us; 1244us; 1678us; 1247us; 1678us; 1250us; 1678us; 1253us; 1678us; 1254us; 1678us; 1265us; 1678us; 1272us; 1678us; 1273us; 1678us; 1279us; 1678us; 1285us; 1678us; 1286us; 1678us; 1287us; 1678us; 1303us; 1678us; 1313us; 1678us; 1326us; 1678us; 1327us; 1678us; 1329us; 1678us; 1331us; 1678us; 1335us; 1678us; 1336us; 1678us; 1340us; 1678us; 1359us; 1678us; 1364us; 1678us; 1389us; 1678us; 1421us; 1680us; 1423us; 1678us; 1426us; 1680us; 1428us; 1678us; 1439us; 1680us; 1441us; 1680us; 1566us; 1678us; 1681us; 1680us; 6us; 65535us; 620us; 1635us; 844us; 1635us; 1229us; 1635us; 1286us; 1635us; 1287us; 1635us; 1634us; 1635us; 2us; 65535us; 1641us; 1676us; 1674us; 1675us; 6us; 65535us; 620us; 1640us; 844us; 1640us; 1229us; 1640us; 1286us; 1640us; 1287us; 1640us; 1634us; 1640us; 141us; 65535us; 34us; 1684us; 74us; 1684us; 104us; 1684us; 126us; 1684us; 176us; 1684us; 182us; 1684us; 184us; 1684us; 288us; 1684us; 290us; 1684us; 295us; 1684us; 303us; 1684us; 390us; 1684us; 395us; 1684us; 413us; 1684us; 430us; 1684us; 446us; 1684us; 607us; 1684us; 670us; 1684us; 676us; 1684us; 725us; 1684us; 729us; 1684us; 739us; 1684us; 887us; 1684us; 892us; 1684us; 904us; 1684us; 906us; 1684us; 909us; 1684us; 912us; 1684us; 928us; 1684us; 931us; 1684us; 934us; 1684us; 940us; 1684us; 944us; 1684us; 948us; 1684us; 950us; 1684us; 955us; 1684us; 957us; 1684us; 959us; 1684us; 961us; 1684us; 963us; 1684us; 965us; 1684us; 976us; 1684us; 984us; 1684us; 991us; 1684us; 997us; 1684us; 999us; 1684us; 1002us; 1684us; 1005us; 1684us; 1008us; 1684us; 1011us; 1684us; 1014us; 1684us; 1017us; 1684us; 1019us; 1684us; 1024us; 1684us; 1067us; 1684us; 1069us; 1684us; 1072us; 1684us; 1073us; 1684us; 1074us; 1684us; 1075us; 1684us; 1076us; 1684us; 1077us; 1684us; 1078us; 1684us; 1079us; 1684us; 1080us; 1684us; 1081us; 1684us; 1082us; 1684us; 1083us; 1684us; 1084us; 1684us; 1085us; 1684us; 1086us; 1684us; 1087us; 1684us; 1088us; 1684us; 1089us; 1684us; 1090us; 1684us; 1091us; 1684us; 1113us; 1684us; 1135us; 1684us; 1136us; 1684us; 1140us; 1684us; 1142us; 1684us; 1146us; 1684us; 1148us; 1684us; 1152us; 1684us; 1155us; 1684us; 1157us; 1684us; 1159us; 1684us; 1160us; 1684us; 1162us; 1684us; 1163us; 1684us; 1165us; 1684us; 1166us; 1684us; 1168us; 1684us; 1169us; 1684us; 1171us; 1684us; 1172us; 1684us; 1174us; 1684us; 1175us; 1684us; 1187us; 1684us; 1189us; 1684us; 1191us; 1684us; 1192us; 1684us; 1195us; 1684us; 1202us; 1684us; 1203us; 1684us; 1206us; 1684us; 1207us; 1684us; 1208us; 1227us; 1211us; 1227us; 1213us; 1684us; 1214us; 1684us; 1220us; 1684us; 1229us; 1684us; 1236us; 1684us; 1244us; 1684us; 1247us; 1684us; 1250us; 1684us; 1253us; 1684us; 1254us; 1684us; 1265us; 1684us; 1272us; 1684us; 1273us; 1684us; 1279us; 1684us; 1285us; 1684us; 1286us; 1684us; 1287us; 1684us; 1303us; 1684us; 1313us; 1684us; 1326us; 1684us; 1327us; 1684us; 1329us; 1684us; 1331us; 1684us; 1335us; 1684us; 1336us; 1684us; 1340us; 1684us; 1359us; 1684us; 1364us; 1684us; 1389us; 1684us; 1423us; 1684us; 1428us; 1684us; 1566us; 1684us; 42us; 65535us; 387us; 454us; 392us; 454us; 427us; 454us; 452us; 453us; 455us; 456us; 722us; 454us; 798us; 454us; 799us; 454us; 803us; 454us; 804us; 454us; 805us; 454us; 806us; 454us; 808us; 454us; 810us; 454us; 812us; 454us; 817us; 454us; 819us; 454us; 821us; 454us; 829us; 454us; 832us; 454us; 844us; 454us; 865us; 454us; 870us; 454us; 871us; 454us; 873us; 454us; 874us; 454us; 875us; 454us; 876us; 454us; 883us; 454us; 885us; 454us; 974us; 454us; 1001us; 454us; 1007us; 454us; 1116us; 454us; 1118us; 454us; 1123us; 454us; 1130us; 454us; 1421us; 454us; 1426us; 454us; 1439us; 454us; 1441us; 454us; 1681us; 1682us; 139us; 65535us; 34us; 1219us; 74us; 1219us; 104us; 1219us; 126us; 1219us; 176us; 177us; 182us; 1219us; 184us; 1219us; 288us; 294us; 290us; 294us; 295us; 296us; 303us; 304us; 390us; 1219us; 395us; 1219us; 413us; 414us; 430us; 1219us; 446us; 1219us; 607us; 619us; 670us; 1219us; 676us; 1219us; 725us; 1219us; 729us; 1219us; 739us; 1219us; 887us; 1219us; 892us; 1219us; 904us; 1219us; 906us; 1219us; 909us; 1219us; 912us; 1219us; 928us; 1219us; 931us; 1219us; 934us; 1219us; 940us; 1219us; 944us; 1219us; 948us; 1219us; 950us; 1219us; 955us; 1219us; 957us; 1219us; 959us; 1219us; 961us; 1219us; 963us; 1219us; 965us; 1219us; 976us; 1219us; 984us; 1219us; 991us; 1219us; 997us; 1219us; 999us; 1219us; 1002us; 1219us; 1005us; 1219us; 1008us; 1219us; 1011us; 1219us; 1014us; 1219us; 1017us; 1219us; 1019us; 1219us; 1024us; 1219us; 1067us; 1219us; 1069us; 1219us; 1072us; 1219us; 1073us; 1219us; 1074us; 1219us; 1075us; 1219us; 1076us; 1219us; 1077us; 1219us; 1078us; 1219us; 1079us; 1219us; 1080us; 1219us; 1081us; 1219us; 1082us; 1219us; 1083us; 1219us; 1084us; 1219us; 1085us; 1219us; 1086us; 1219us; 1087us; 1219us; 1088us; 1219us; 1089us; 1219us; 1090us; 1219us; 1091us; 1219us; 1113us; 1219us; 1135us; 1219us; 1136us; 1219us; 1140us; 1219us; 1142us; 1219us; 1146us; 1219us; 1148us; 1219us; 1152us; 1219us; 1155us; 1219us; 1157us; 1219us; 1159us; 1219us; 1160us; 1219us; 1162us; 1219us; 1163us; 1219us; 1165us; 1219us; 1166us; 1219us; 1168us; 1219us; 1169us; 1219us; 1171us; 1219us; 1172us; 1219us; 1174us; 1219us; 1175us; 1219us; 1187us; 1219us; 1189us; 1219us; 1191us; 1219us; 1192us; 1219us; 1195us; 1219us; 1202us; 1219us; 1203us; 1219us; 1206us; 1219us; 1207us; 1219us; 1213us; 1215us; 1214us; 1215us; 1220us; 1219us; 1229us; 1219us; 1236us; 1219us; 1244us; 1219us; 1247us; 1219us; 1250us; 1219us; 1253us; 1219us; 1254us; 1219us; 1265us; 1219us; 1272us; 1219us; 1273us; 1219us; 1279us; 1219us; 1285us; 1219us; 1286us; 1219us; 1287us; 1219us; 1303us; 1219us; 1313us; 1219us; 1326us; 1219us; 1327us; 1219us; 1329us; 1219us; 1331us; 1219us; 1335us; 1219us; 1336us; 1219us; 1340us; 1219us; 1359us; 1219us; 1364us; 1219us; 1389us; 1219us; 1423us; 1219us; 1428us; 1219us; 1566us; 1219us; 14us; 65535us; 41us; 1688us; 47us; 1688us; 84us; 1688us; 87us; 1688us; 88us; 1694us; 91us; 1688us; 99us; 1688us; 105us; 1688us; 110us; 1688us; 114us; 1688us; 115us; 1688us; 116us; 1688us; 1688us; 1688us; 1694us; 1694us; 12us; 65535us; 41us; 92us; 47us; 117us; 84us; 92us; 87us; 92us; 91us; 92us; 99us; 117us; 105us; 106us; 110us; 112us; 114us; 117us; 115us; 117us; 116us; 117us; 1688us; 1689us; 4us; 65535us; 19us; 1692us; 21us; 1692us; 23us; 1692us; 1692us; 1692us; 4us; 65535us; 19us; 25us; 21us; 27us; 23us; 29us; 1692us; 1693us; 0us; 65535us; 2us; 65535us; 88us; 89us; 1694us; 1695us; 10us; 65535us; 200us; 210us; 276us; 1709us; 374us; 1709us; 490us; 1709us; 638us; 639us; 860us; 885us; 878us; 880us; 901us; 904us; 902us; 904us; 903us; 904us; 4us; 65535us; 158us; 159us; 463us; 464us; 466us; 467us; 469us; 470us; 2us; 65535us; 1406us; 1407us; 1416us; 1417us; 9us; 65535us; 407us; 408us; 418us; 419us; 421us; 422us; 423us; 424us; 425us; 426us; 431us; 432us; 496us; 497us; 498us; 499us; 502us; 503us; 2us; 65535us; 58us; 59us; 65us; 66us; 20us; 65535us; 81us; 82us; 96us; 97us; 202us; 203us; 205us; 206us; 242us; 243us; 341us; 342us; 601us; 631us; 608us; 609us; 611us; 612us; 614us; 615us; 617us; 618us; 626us; 627us; 629us; 630us; 975us; 1022us; 1004us; 1005us; 1010us; 1011us; 1016us; 1017us; 1393us; 1397us; 1394us; 1395us; 1417us; 1418us; 7us; 65535us; 200us; 201us; 276us; 277us; 374us; 375us; 490us; 491us; 638us; 641us; 860us; 884us; 878us; 879us; 2us; 65535us; 666us; 667us; 672us; 673us; 0us; 65535us; 11us; 65535us; 173us; 174us; 301us; 302us; 377us; 386us; 379us; 386us; 384us; 386us; 406us; 392us; 412us; 413us; 494us; 721us; 495us; 392us; 501us; 392us; 718us; 721us; 7us; 65535us; 174us; 175us; 314us; 644us; 316us; 644us; 435us; 436us; 441us; 442us; 642us; 644us; 721us; 722us; 4us; 65535us; 917us; 991us; 964us; 965us; 975us; 976us; 983us; 984us; 9us; 65535us; 914us; 973us; 915us; 980us; 916us; 988us; 918us; 995us; 966us; 967us; 969us; 970us; 977us; 978us; 985us; 986us; 992us; 993us; 2us; 65535us; 133us; 152us; 142us; 152us; 2us; 65535us; 138us; 189us; 165us; 193us; 2us; 65535us; 70us; 165us; 164us; 165us; 2us; 65535us; 525us; 526us; 1341us; 1342us; 11us; 65535us; 212us; 213us; 216us; 217us; 221us; 222us; 334us; 335us; 472us; 474us; 688us; 689us; 700us; 704us; 703us; 704us; 1179us; 1181us; 1180us; 1182us; 1354us; 1355us; 5us; 65535us; 177us; 554us; 304us; 554us; 414us; 554us; 533us; 549us; 807us; 554us; 13us; 65535us; 34us; 128us; 69us; 232us; 74us; 128us; 104us; 128us; 122us; 128us; 163us; 232us; 199us; 226us; 210us; 226us; 279us; 318us; 280us; 433us; 1338us; 1345us; 1727us; 1729us; 1728us; 1729us; 10us; 65535us; 34us; 49us; 69us; 49us; 74us; 49us; 104us; 49us; 122us; 49us; 163us; 49us; 199us; 224us; 210us; 224us; 1732us; 1734us; 1733us; 1734us; 7us; 65535us; 519us; 520us; 522us; 523us; 827us; 828us; 925us; 1317us; 1313us; 1319us; 1314us; 1315us; 1737us; 1738us; 37us; 65535us; 516us; 517us; 539us; 540us; 581us; 582us; 584us; 585us; 588us; 589us; 621us; 622us; 624us; 625us; 691us; 692us; 780us; 783us; 781us; 782us; 785us; 786us; 845us; 846us; 848us; 849us; 923us; 1292us; 924us; 1293us; 1114us; 1115us; 1230us; 1231us; 1234us; 1235us; 1285us; 1288us; 1286us; 1288us; 1287us; 1288us; 1289us; 1290us; 1302us; 1303us; 1309us; 1310us; 1347us; 1348us; 1351us; 1352us; 1511us; 1513us; 1512us; 1514us; 1560us; 1562us; 1561us; 1562us; 1569us; 1570us; 1605us; 1606us; 1635us; 1636us; 1637us; 1638us; 1641us; 1642us; 1644us; 1645us; 1741us; 1742us; 26us; 65535us; 80us; 81us; 84us; 85us; 95us; 96us; 99us; 100us; 115us; 149us; 139us; 140us; 143us; 144us; 146us; 147us; 185us; 186us; 187us; 188us; 191us; 192us; 220us; 221us; 245us; 246us; 263us; 264us; 271us; 272us; 344us; 345us; 363us; 365us; 367us; 369us; 486us; 487us; 730us; 731us; 888us; 889us; 893us; 894us; 910us; 911us; 1143us; 1144us; 1149us; 1150us; 1745us; 1746us; 1us; 65535us; 1289us; 1291us; 16us; 65535us; 199us; 208us; 201us; 207us; 471us; 477us; 861us; 1334us; 974us; 994us; 975us; 982us; 976us; 981us; 977us; 979us; 1155us; 1156us; 1157us; 1158us; 1331us; 1333us; 1388us; 1392us; 1389us; 1391us; 1575us; 1576us; 1582us; 1586us; 1631us; 1633us; |] +let _fsyacc_sparseGotoTableRowOffsets = [|0us; 1us; 2us; 3us; 5us; 29us; 279us; 281us; 283us; 291us; 296us; 302us; 307us; 312us; 314us; 316us; 323us; 328us; 330us; 333us; 336us; 338us; 341us; 344us; 347us; 350us; 354us; 361us; 371us; 375us; 381us; 391us; 402us; 413us; 429us; 431us; 433us; 436us; 437us; 439us; 449us; 459us; 462us; 464us; 545us; 660us; 775us; 777us; 780us; 783us; 786us; 789us; 793us; 795us; 798us; 801us; 804us; 808us; 817us; 826us; 831us; 834us; 838us; 841us; 853us; 860us; 863us; 867us; 870us; 874us; 878us; 882us; 886us; 897us; 908us; 910us; 913us; 917us; 921us; 924us; 935us; 939us; 942us; 944us; 984us; 995us; 1057us; 1070us; 1072us; 1077us; 1083us; 1086us; 1089us; 1092us; 1095us; 1099us; 1102us; 1107us; 1112us; 1115us; 1121us; 1128us; 1130us; 1136us; 1146us; 1148us; 1150us; 1154us; 1160us; 1162us; 1164us; 1169us; 1173us; 1175us; 1179us; 1183us; 1188us; 1190us; 1194us; 1200us; 1204us; 1208us; 1210us; 1214us; 1218us; 1222us; 1225us; 1228us; 1232us; 1237us; 1240us; 1247us; 1254us; 1256us; 1258us; 1274us; 1386us; 1394us; 1506us; 1617us; 1621us; 1626us; 1738us; 1740us; 1742us; 1746us; 1749us; 1751us; 1756us; 1759us; 1765us; 1768us; 1770us; 1773us; 1775us; 1777us; 1779us; 1782us; 2030us; 2209us; 2213us; 2217us; 2220us; 2222us; 2234us; 2246us; 2258us; 2289us; 2298us; 2338us; 2340us; 2360us; 2380us; 2400us; 2402us; 2405us; 2408us; 2412us; 2436us; 2443us; 2449us; 2498us; 2552us; 2637us; 2745us; 2747us; 2750us; 2755us; 2762us; 2769us; 2771us; 2773us; 2776us; 2779us; 2781us; 2889us; 3011us; 3133us; 3137us; 3268us; 3271us; 3276us; 3414us; 3552us; 3729us; 3867us; 4005us; 4009us; 4013us; 4015us; 4153us; 4155us; 4158us; 4162us; 4167us; 4169us; 4171us; 4173us; 4177us; 4179us; 4184us; 4186us; 4188us; 4190us; 4197us; 4204us; 4208us; 4214us; 4218us; 4220us; 4222us; 4224us; 4227us; 4229us; 4234us; 4240us; 4242us; 4350us; 4458us; 4462us; 4468us; 4472us; 4482us; 4492us; 4495us; 4507us; 4540us; 4573us; 4579us; 4582us; 4669us; 4756us; 4823us; 4841us; 4846us; 4849us; 4916us; 4921us; 4926us; 4996us; 5001us; 5008us; 5017us; 5020us; 5024us; 5026us; 5033us; 5040us; 5047us; 5053us; 5157us; 5265us; 5585us; 5700us; 5884us; 5891us; 5894us; 5901us; 6043us; 6086us; 6226us; 6241us; 6254us; 6259us; 6264us; 6265us; 6268us; 6279us; 6284us; 6287us; 6297us; 6300us; 6321us; 6329us; 6332us; 6333us; 6345us; 6353us; 6358us; 6368us; 6371us; 6374us; 6377us; 6380us; 6392us; 6398us; 6412us; 6423us; 6431us; 6469us; 6496us; 6498us; |] +let _fsyacc_stateToProdIdxsTableElements = [| 1us; 0us; 1us; 0us; 1us; 1us; 1us; 1us; 1us; 2us; 1us; 2us; 1us; 3us; 1us; 4us; 1us; 5us; 1us; 6us; 1us; 6us; 2us; 6us; 11us; 1us; 7us; 1us; 8us; 1us; 9us; 1us; 11us; 1us; 12us; 1us; 13us; 1us; 14us; 2us; 15us; 18us; 1us; 15us; 2us; 16us; 19us; 1us; 16us; 2us; 17us; 20us; 1us; 17us; 1us; 18us; 1us; 18us; 1us; 19us; 1us; 19us; 1us; 20us; 1us; 20us; 2us; 21us; 22us; 1us; 22us; 7us; 23us; 75us; 76us; 77us; 78us; 79us; 80us; 7us; 23us; 75us; 76us; 77us; 78us; 79us; 80us; 47us; 23us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 1us; 24us; 2us; 25us; 26us; 1us; 25us; 1us; 26us; 1us; 26us; 3us; 27us; 52us; 55us; 1us; 27us; 2us; 28us; 29us; 1us; 28us; 1us; 29us; 1us; 29us; 2us; 30us; 72us; 1us; 30us; 1us; 31us; 1us; 31us; 3us; 31us; 901us; 902us; 1us; 32us; 3us; 32us; 901us; 902us; 2us; 33us; 34us; 1us; 34us; 2us; 35us; 36us; 1us; 35us; 1us; 37us; 1us; 37us; 1us; 37us; 2us; 38us; 39us; 1us; 39us; 2us; 40us; 41us; 1us; 40us; 1us; 42us; 1us; 42us; 1us; 42us; 6us; 43us; 99us; 100us; 101us; 102us; 104us; 6us; 43us; 99us; 100us; 101us; 102us; 104us; 3us; 43us; 99us; 100us; 1us; 43us; 1us; 44us; 11us; 45us; 63us; 64us; 65us; 67us; 75us; 76us; 77us; 78us; 79us; 80us; 10us; 45us; 63us; 64us; 65us; 75us; 76us; 77us; 78us; 79us; 80us; 2us; 45us; 80us; 1us; 45us; 1us; 46us; 1us; 47us; 3us; 48us; 49us; 50us; 2us; 48us; 49us; 1us; 48us; 1us; 48us; 1us; 49us; 3us; 50us; 52us; 55us; 1us; 50us; 1us; 51us; 2us; 52us; 55us; 2us; 54us; 56us; 2us; 54us; 56us; 1us; 54us; 1us; 55us; 1us; 55us; 1us; 55us; 3us; 57us; 58us; 59us; 2us; 57us; 58us; 1us; 57us; 1us; 57us; 1us; 58us; 2us; 59us; 72us; 1us; 59us; 1us; 60us; 1us; 61us; 10us; 63us; 64us; 65us; 67us; 75us; 76us; 77us; 78us; 79us; 80us; 9us; 63us; 64us; 65us; 75us; 76us; 77us; 78us; 79us; 80us; 49us; 63us; 64us; 65us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 2us; 63us; 64us; 1us; 63us; 1us; 66us; 1us; 67us; 4us; 68us; 69us; 70us; 71us; 1us; 68us; 2us; 69us; 71us; 1us; 69us; 1us; 72us; 2us; 72us; 89us; 2us; 72us; 94us; 1us; 72us; 1us; 72us; 1us; 73us; 1us; 74us; 6us; 75us; 76us; 77us; 78us; 79us; 80us; 6us; 75us; 76us; 77us; 78us; 79us; 80us; 1us; 75us; 3us; 75us; 491us; 492us; 1us; 76us; 5us; 76us; 493us; 494us; 495us; 496us; 1us; 77us; 1us; 78us; 1us; 78us; 1us; 78us; 1us; 79us; 1us; 80us; 1us; 80us; 1us; 80us; 2us; 81us; 111us; 1us; 81us; 1us; 82us; 3us; 83us; 108us; 109us; 3us; 83us; 901us; 902us; 1us; 83us; 3us; 84us; 901us; 902us; 5us; 85us; 86us; 87us; 88us; 89us; 2us; 85us; 86us; 1us; 85us; 1us; 86us; 2us; 87us; 88us; 1us; 87us; 1us; 88us; 1us; 89us; 1us; 90us; 3us; 91us; 901us; 902us; 3us; 92us; 93us; 94us; 2us; 92us; 93us; 1us; 92us; 1us; 93us; 1us; 94us; 1us; 96us; 1us; 96us; 1us; 96us; 1us; 97us; 1us; 98us; 5us; 99us; 100us; 101us; 102us; 104us; 5us; 99us; 100us; 101us; 102us; 104us; 2us; 99us; 100us; 2us; 99us; 100us; 1us; 99us; 1us; 100us; 1us; 101us; 1us; 102us; 1us; 103us; 3us; 103us; 901us; 902us; 1us; 104us; 1us; 104us; 1us; 104us; 1us; 104us; 1us; 104us; 1us; 104us; 1us; 104us; 1us; 104us; 1us; 104us; 1us; 104us; 2us; 106us; 107us; 47us; 106us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 1us; 107us; 47us; 107us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 1us; 107us; 1us; 108us; 1us; 108us; 1us; 109us; 1us; 109us; 1us; 109us; 1us; 109us; 1us; 110us; 1us; 110us; 1us; 110us; 1us; 111us; 2us; 113us; 114us; 1us; 114us; 4us; 115us; 116us; 117us; 118us; 3us; 115us; 117us; 120us; 2us; 115us; 117us; 1us; 115us; 1us; 115us; 2us; 116us; 489us; 1us; 116us; 1us; 116us; 1us; 117us; 1us; 118us; 1us; 119us; 2us; 120us; 974us; 1us; 120us; 3us; 121us; 901us; 902us; 1us; 121us; 1us; 121us; 2us; 122us; 123us; 3us; 122us; 901us; 902us; 1us; 122us; 1us; 122us; 1us; 123us; 3us; 123us; 901us; 902us; 1us; 123us; 1us; 123us; 1us; 123us; 1us; 124us; 1us; 124us; 1us; 125us; 1us; 125us; 2us; 126us; 900us; 1us; 126us; 1us; 127us; 1us; 127us; 1us; 128us; 1us; 128us; 2us; 129us; 130us; 1us; 129us; 1us; 129us; 2us; 131us; 132us; 1us; 131us; 1us; 131us; 1us; 132us; 3us; 133us; 142us; 143us; 1us; 133us; 1us; 133us; 1us; 133us; 1us; 133us; 1us; 133us; 1us; 133us; 1us; 134us; 1us; 134us; 1us; 135us; 1us; 136us; 1us; 137us; 1us; 137us; 1us; 137us; 1us; 138us; 3us; 139us; 140us; 141us; 2us; 139us; 140us; 1us; 139us; 1us; 140us; 1us; 141us; 1us; 141us; 2us; 142us; 143us; 2us; 142us; 143us; 1us; 142us; 1us; 143us; 2us; 144us; 145us; 2us; 144us; 145us; 1us; 144us; 1us; 145us; 2us; 146us; 147us; 2us; 146us; 147us; 1us; 146us; 1us; 147us; 1us; 148us; 1us; 149us; 1us; 151us; 1us; 151us; 1us; 151us; 3us; 152us; 169us; 170us; 4us; 152us; 209us; 215us; 218us; 1us; 152us; 1us; 153us; 1us; 154us; 1us; 155us; 1us; 156us; 2us; 157us; 158us; 1us; 158us; 1us; 160us; 1us; 160us; 2us; 161us; 162us; 2us; 161us; 162us; 1us; 161us; 1us; 162us; 2us; 163us; 164us; 1us; 164us; 1us; 164us; 7us; 165us; 166us; 167us; 168us; 169us; 170us; 171us; 12us; 165us; 166us; 167us; 168us; 169us; 170us; 171us; 260us; 261us; 262us; 263us; 264us; 7us; 165us; 166us; 167us; 168us; 169us; 170us; 171us; 12us; 165us; 166us; 167us; 168us; 169us; 170us; 171us; 260us; 261us; 262us; 263us; 264us; 1us; 165us; 1us; 165us; 1us; 165us; 1us; 165us; 1us; 165us; 1us; 165us; 1us; 165us; 1us; 165us; 1us; 165us; 1us; 166us; 4us; 166us; 822us; 823us; 824us; 1us; 167us; 4us; 167us; 822us; 823us; 824us; 1us; 168us; 1us; 168us; 1us; 169us; 1us; 169us; 1us; 170us; 1us; 170us; 1us; 171us; 1us; 171us; 1us; 171us; 1us; 172us; 1us; 172us; 1us; 172us; 1us; 173us; 1us; 173us; 1us; 173us; 4us; 175us; 176us; 177us; 178us; 1us; 176us; 1us; 176us; 1us; 177us; 1us; 178us; 1us; 178us; 1us; 178us; 1us; 178us; 1us; 178us; 1us; 178us; 1us; 178us; 4us; 179us; 180us; 189us; 190us; 2us; 179us; 180us; 2us; 179us; 180us; 2us; 179us; 180us; 2us; 179us; 180us; 1us; 179us; 1us; 179us; 1us; 180us; 1us; 181us; 1us; 181us; 1us; 182us; 1us; 183us; 1us; 184us; 1us; 184us; 1us; 184us; 1us; 185us; 3us; 186us; 187us; 188us; 2us; 186us; 187us; 1us; 186us; 1us; 187us; 2us; 188us; 195us; 1us; 188us; 2us; 189us; 190us; 2us; 189us; 190us; 1us; 189us; 1us; 190us; 2us; 191us; 192us; 2us; 191us; 192us; 1us; 191us; 1us; 192us; 1us; 193us; 1us; 194us; 1us; 195us; 1us; 195us; 1us; 197us; 1us; 197us; 1us; 197us; 1us; 198us; 1us; 198us; 2us; 199us; 200us; 2us; 199us; 200us; 1us; 199us; 1us; 200us; 2us; 201us; 202us; 1us; 202us; 1us; 202us; 1us; 203us; 1us; 203us; 1us; 203us; 1us; 203us; 1us; 203us; 1us; 203us; 2us; 204us; 205us; 2us; 204us; 205us; 2us; 204us; 205us; 1us; 204us; 1us; 204us; 1us; 205us; 2us; 206us; 207us; 1us; 207us; 11us; 208us; 209us; 210us; 211us; 212us; 213us; 214us; 215us; 216us; 217us; 218us; 16us; 208us; 209us; 210us; 211us; 212us; 213us; 214us; 215us; 216us; 217us; 218us; 260us; 261us; 262us; 263us; 264us; 11us; 208us; 209us; 210us; 211us; 212us; 213us; 214us; 215us; 216us; 217us; 218us; 16us; 208us; 209us; 210us; 211us; 212us; 213us; 214us; 215us; 216us; 217us; 218us; 260us; 261us; 262us; 263us; 264us; 1us; 208us; 1us; 209us; 2us; 210us; 216us; 1us; 210us; 1us; 210us; 1us; 211us; 4us; 211us; 822us; 823us; 824us; 1us; 211us; 1us; 212us; 1us; 212us; 1us; 212us; 1us; 212us; 1us; 212us; 1us; 212us; 1us; 212us; 1us; 212us; 1us; 213us; 1us; 214us; 1us; 214us; 1us; 215us; 1us; 215us; 1us; 216us; 1us; 216us; 1us; 217us; 1us; 217us; 1us; 217us; 1us; 217us; 1us; 217us; 1us; 217us; 1us; 218us; 1us; 218us; 1us; 219us; 1us; 219us; 1us; 219us; 1us; 219us; 1us; 219us; 1us; 219us; 1us; 220us; 1us; 220us; 1us; 220us; 1us; 220us; 1us; 220us; 1us; 220us; 1us; 220us; 1us; 220us; 1us; 222us; 1us; 222us; 1us; 223us; 1us; 223us; 1us; 223us; 1us; 224us; 1us; 225us; 1us; 225us; 1us; 227us; 1us; 228us; 1us; 229us; 1us; 230us; 1us; 231us; 1us; 233us; 1us; 233us; 1us; 233us; 1us; 235us; 1us; 235us; 1us; 235us; 1us; 237us; 1us; 237us; 1us; 237us; 3us; 239us; 240us; 241us; 2us; 239us; 240us; 1us; 239us; 1us; 240us; 1us; 240us; 1us; 240us; 1us; 241us; 1us; 242us; 1us; 244us; 1us; 244us; 1us; 245us; 2us; 247us; 248us; 1us; 247us; 1us; 248us; 2us; 249us; 250us; 2us; 249us; 250us; 1us; 249us; 1us; 250us; 1us; 251us; 2us; 252us; 253us; 2us; 252us; 253us; 1us; 252us; 4us; 254us; 255us; 256us; 257us; 5us; 254us; 255us; 256us; 257us; 370us; 3us; 254us; 255us; 256us; 1us; 254us; 1us; 254us; 1us; 255us; 1us; 255us; 1us; 256us; 1us; 257us; 1us; 257us; 1us; 257us; 1us; 258us; 1us; 259us; 5us; 260us; 261us; 262us; 263us; 264us; 5us; 260us; 261us; 262us; 263us; 264us; 4us; 260us; 818us; 901us; 902us; 1us; 260us; 1us; 260us; 1us; 260us; 1us; 261us; 1us; 262us; 1us; 263us; 5us; 264us; 825us; 853us; 854us; 860us; 1us; 264us; 1us; 264us; 3us; 265us; 266us; 267us; 2us; 265us; 266us; 1us; 265us; 1us; 266us; 1us; 267us; 1us; 267us; 2us; 268us; 850us; 2us; 268us; 401us; 1us; 268us; 1us; 269us; 1us; 270us; 1us; 271us; 1us; 272us; 1us; 273us; 3us; 274us; 275us; 276us; 4us; 274us; 276us; 901us; 902us; 1us; 275us; 3us; 275us; 901us; 902us; 1us; 276us; 1us; 277us; 1us; 278us; 2us; 278us; 279us; 1us; 278us; 2us; 279us; 282us; 3us; 279us; 283us; 284us; 1us; 279us; 2us; 279us; 283us; 1us; 279us; 1us; 280us; 1us; 281us; 1us; 281us; 1us; 282us; 1us; 282us; 1us; 282us; 1us; 282us; 1us; 283us; 1us; 286us; 1us; 286us; 1us; 286us; 1us; 286us; 1us; 286us; 1us; 287us; 2us; 289us; 427us; 1us; 292us; 2us; 292us; 293us; 2us; 293us; 790us; 2us; 293us; 792us; 1us; 293us; 1us; 293us; 1us; 294us; 1us; 295us; 1us; 295us; 1us; 295us; 1us; 295us; 8us; 296us; 297us; 298us; 299us; 300us; 302us; 303us; 304us; 1us; 296us; 1us; 296us; 7us; 297us; 298us; 299us; 300us; 302us; 303us; 304us; 1us; 297us; 3us; 298us; 303us; 304us; 1us; 298us; 1us; 299us; 1us; 300us; 1us; 300us; 1us; 300us; 1us; 301us; 2us; 301us; 305us; 1us; 301us; 1us; 301us; 1us; 301us; 1us; 301us; 1us; 301us; 1us; 302us; 1us; 302us; 1us; 303us; 1us; 305us; 1us; 305us; 1us; 306us; 1us; 307us; 1us; 307us; 1us; 308us; 1us; 308us; 1us; 308us; 2us; 309us; 322us; 1us; 310us; 2us; 311us; 312us; 1us; 311us; 1us; 311us; 4us; 313us; 314us; 315us; 316us; 4us; 313us; 314us; 315us; 316us; 4us; 313us; 314us; 315us; 316us; 1us; 313us; 1us; 314us; 1us; 314us; 1us; 314us; 1us; 315us; 1us; 315us; 1us; 315us; 1us; 316us; 1us; 316us; 1us; 316us; 1us; 317us; 6us; 318us; 319us; 903us; 904us; 906us; 907us; 1us; 318us; 1us; 318us; 1us; 319us; 1us; 319us; 1us; 319us; 5us; 320us; 321us; 323us; 324us; 900us; 1us; 320us; 2us; 321us; 324us; 2us; 321us; 324us; 2us; 321us; 324us; 1us; 322us; 1us; 323us; 1us; 323us; 1us; 325us; 5us; 326us; 327us; 822us; 823us; 824us; 1us; 326us; 1us; 326us; 2us; 328us; 329us; 2us; 328us; 974us; 1us; 328us; 1us; 329us; 1us; 330us; 1us; 330us; 1us; 331us; 1us; 331us; 1us; 331us; 1us; 331us; 1us; 331us; 1us; 332us; 1us; 332us; 1us; 333us; 1us; 333us; 1us; 334us; 1us; 335us; 1us; 335us; 1us; 335us; 1us; 335us; 1us; 335us; 2us; 336us; 337us; 1us; 337us; 1us; 337us; 1us; 339us; 3us; 339us; 901us; 902us; 1us; 340us; 3us; 340us; 901us; 902us; 1us; 341us; 1us; 341us; 1us; 341us; 1us; 342us; 1us; 343us; 1us; 343us; 1us; 344us; 1us; 344us; 1us; 344us; 1us; 344us; 1us; 345us; 1us; 345us; 1us; 345us; 1us; 346us; 1us; 347us; 1us; 348us; 1us; 349us; 1us; 350us; 1us; 351us; 1us; 352us; 1us; 352us; 1us; 352us; 1us; 352us; 1us; 352us; 1us; 352us; 1us; 352us; 1us; 352us; 2us; 353us; 356us; 2us; 354us; 357us; 1us; 356us; 1us; 356us; 1us; 357us; 1us; 357us; 2us; 358us; 359us; 5us; 358us; 359us; 361us; 362us; 363us; 1us; 359us; 3us; 360us; 901us; 902us; 4us; 361us; 362us; 363us; 365us; 1us; 361us; 1us; 361us; 1us; 361us; 1us; 362us; 1us; 363us; 1us; 364us; 2us; 364us; 366us; 1us; 364us; 2us; 365us; 366us; 1us; 367us; 1us; 367us; 1us; 368us; 1us; 368us; 1us; 368us; 1us; 370us; 1us; 370us; 1us; 371us; 3us; 372us; 373us; 374us; 3us; 372us; 373us; 374us; 3us; 372us; 373us; 374us; 3us; 372us; 373us; 374us; 2us; 372us; 373us; 1us; 372us; 1us; 373us; 1us; 374us; 2us; 375us; 376us; 2us; 375us; 376us; 1us; 375us; 1us; 376us; 1us; 377us; 1us; 378us; 2us; 378us; 379us; 1us; 379us; 1us; 381us; 2us; 381us; 382us; 1us; 381us; 1us; 381us; 1us; 382us; 1us; 382us; 1us; 383us; 2us; 384us; 385us; 1us; 384us; 1us; 384us; 1us; 385us; 1us; 386us; 1us; 387us; 1us; 388us; 1us; 389us; 1us; 390us; 1us; 391us; 1us; 392us; 1us; 393us; 1us; 394us; 1us; 395us; 1us; 396us; 1us; 397us; 1us; 398us; 2us; 398us; 438us; 1us; 399us; 1us; 400us; 1us; 401us; 1us; 402us; 2us; 403us; 404us; 1us; 404us; 1us; 404us; 6us; 405us; 417us; 418us; 419us; 424us; 426us; 1us; 406us; 1us; 407us; 1us; 407us; 2us; 408us; 409us; 3us; 408us; 410us; 411us; 1us; 408us; 1us; 408us; 1us; 409us; 1us; 411us; 1us; 411us; 5us; 412us; 413us; 414us; 415us; 416us; 2us; 412us; 414us; 1us; 412us; 1us; 413us; 1us; 414us; 2us; 415us; 489us; 1us; 415us; 1us; 416us; 6us; 417us; 418us; 418us; 419us; 424us; 426us; 6us; 417us; 418us; 419us; 419us; 424us; 426us; 6us; 417us; 418us; 419us; 423us; 424us; 426us; 6us; 417us; 418us; 419us; 424us; 424us; 426us; 6us; 417us; 418us; 419us; 424us; 425us; 426us; 6us; 417us; 418us; 419us; 424us; 426us; 426us; 6us; 417us; 418us; 419us; 424us; 426us; 536us; 7us; 417us; 418us; 419us; 424us; 426us; 537us; 538us; 1us; 417us; 1us; 417us; 1us; 418us; 1us; 419us; 2us; 420us; 423us; 2us; 421us; 425us; 1us; 422us; 1us; 423us; 1us; 424us; 1us; 425us; 1us; 426us; 5us; 427us; 428us; 429us; 430us; 444us; 3us; 428us; 429us; 430us; 1us; 428us; 1us; 429us; 1us; 429us; 1us; 430us; 1us; 430us; 1us; 431us; 3us; 431us; 862us; 863us; 1us; 432us; 4us; 433us; 434us; 435us; 436us; 1us; 433us; 1us; 434us; 1us; 434us; 1us; 435us; 1us; 435us; 1us; 437us; 1us; 438us; 1us; 438us; 1us; 439us; 1us; 439us; 1us; 439us; 1us; 440us; 1us; 440us; 1us; 440us; 1us; 441us; 1us; 441us; 1us; 441us; 1us; 442us; 1us; 443us; 2us; 443us; 924us; 1us; 443us; 1us; 444us; 1us; 445us; 1us; 446us; 1us; 447us; 1us; 448us; 8us; 449us; 450us; 451us; 452us; 903us; 904us; 906us; 907us; 2us; 449us; 450us; 1us; 449us; 1us; 450us; 3us; 451us; 489us; 904us; 2us; 451us; 904us; 1us; 452us; 7us; 453us; 455us; 456us; 459us; 461us; 464us; 466us; 7us; 455us; 456us; 456us; 459us; 461us; 464us; 466us; 7us; 455us; 456us; 459us; 460us; 461us; 464us; 466us; 7us; 455us; 456us; 459us; 461us; 461us; 464us; 466us; 7us; 455us; 456us; 459us; 461us; 463us; 464us; 466us; 7us; 455us; 456us; 459us; 461us; 464us; 464us; 466us; 7us; 455us; 456us; 459us; 461us; 464us; 465us; 466us; 7us; 455us; 456us; 459us; 461us; 464us; 466us; 466us; 7us; 455us; 456us; 459us; 461us; 464us; 466us; 470us; 8us; 455us; 456us; 459us; 461us; 464us; 466us; 472us; 473us; 13us; 455us; 456us; 459us; 461us; 464us; 466us; 532us; 533us; 723us; 724us; 725us; 726us; 727us; 7us; 455us; 456us; 459us; 461us; 464us; 466us; 599us; 1us; 455us; 1us; 455us; 1us; 456us; 2us; 457us; 463us; 2us; 458us; 465us; 1us; 459us; 1us; 459us; 1us; 460us; 1us; 461us; 1us; 462us; 1us; 463us; 1us; 464us; 1us; 465us; 1us; 466us; 1us; 467us; 2us; 468us; 469us; 1us; 468us; 2us; 469us; 974us; 1us; 469us; 3us; 470us; 901us; 902us; 1us; 470us; 1us; 472us; 2us; 473us; 974us; 1us; 473us; 2us; 474us; 475us; 2us; 474us; 475us; 1us; 474us; 1us; 475us; 1us; 476us; 1us; 477us; 1us; 477us; 1us; 477us; 47us; 478us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 2us; 479us; 480us; 1us; 479us; 2us; 481us; 482us; 1us; 481us; 1us; 481us; 51us; 483us; 484us; 485us; 486us; 487us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 53us; 483us; 484us; 485us; 486us; 487us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 666us; 667us; 54us; 483us; 484us; 485us; 486us; 487us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 719us; 720us; 721us; 2us; 483us; 484us; 1us; 483us; 1us; 486us; 1us; 486us; 1us; 487us; 1us; 487us; 1us; 487us; 1us; 487us; 5us; 488us; 493us; 494us; 495us; 496us; 1us; 489us; 2us; 489us; 519us; 2us; 489us; 522us; 2us; 489us; 527us; 2us; 489us; 530us; 2us; 489us; 532us; 2us; 489us; 650us; 2us; 489us; 660us; 2us; 489us; 685us; 2us; 489us; 689us; 2us; 489us; 694us; 3us; 489us; 694us; 904us; 2us; 489us; 709us; 1us; 490us; 2us; 491us; 492us; 2us; 491us; 492us; 1us; 491us; 1us; 492us; 4us; 493us; 494us; 495us; 496us; 1us; 493us; 1us; 494us; 2us; 495us; 496us; 1us; 495us; 1us; 496us; 1us; 497us; 1us; 498us; 1us; 499us; 2us; 500us; 501us; 2us; 500us; 501us; 1us; 500us; 1us; 501us; 3us; 502us; 503us; 504us; 3us; 502us; 503us; 504us; 1us; 502us; 1us; 503us; 1us; 504us; 1us; 504us; 3us; 505us; 506us; 507us; 48us; 505us; 506us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 1us; 505us; 1us; 506us; 1us; 507us; 1us; 508us; 47us; 508us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 2us; 509us; 510us; 47us; 509us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 1us; 511us; 1us; 511us; 2us; 512us; 513us; 1us; 512us; 6us; 514us; 515us; 516us; 517us; 518us; 519us; 50us; 514us; 515us; 516us; 517us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 3us; 514us; 515us; 516us; 2us; 514us; 515us; 1us; 514us; 1us; 515us; 1us; 516us; 1us; 516us; 1us; 517us; 1us; 518us; 1us; 519us; 15us; 520us; 521us; 522us; 523us; 524us; 525us; 526us; 527us; 528us; 529us; 530us; 531us; 532us; 533us; 541us; 6us; 520us; 521us; 522us; 523us; 524us; 541us; 4us; 520us; 521us; 522us; 523us; 2us; 520us; 521us; 1us; 520us; 1us; 521us; 1us; 522us; 1us; 523us; 1us; 524us; 5us; 525us; 526us; 527us; 528us; 529us; 4us; 525us; 526us; 527us; 528us; 2us; 525us; 526us; 1us; 525us; 1us; 526us; 1us; 527us; 1us; 528us; 1us; 529us; 1us; 530us; 1us; 530us; 1us; 530us; 1us; 531us; 1us; 532us; 2us; 533us; 1025us; 1us; 534us; 47us; 534us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 1us; 535us; 47us; 535us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 1us; 536us; 1us; 536us; 1us; 536us; 1us; 536us; 1us; 536us; 1us; 536us; 2us; 537us; 538us; 2us; 537us; 538us; 2us; 537us; 538us; 2us; 537us; 538us; 2us; 537us; 538us; 1us; 537us; 1us; 538us; 1us; 539us; 1us; 539us; 1us; 539us; 1us; 539us; 1us; 539us; 1us; 540us; 1us; 540us; 1us; 540us; 1us; 541us; 1us; 541us; 1us; 542us; 1us; 542us; 47us; 543us; 544us; 545us; 546us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 605us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 609us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 613us; 620us; 621us; 48us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 616us; 617us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 618us; 620us; 621us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 621us; 48us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 666us; 667us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 666us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 668us; 50us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 719us; 720us; 721us; 723us; 48us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 719us; 720us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 720us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 727us; 47us; 543us; 544us; 545us; 546us; 549us; 550us; 551us; 552us; 553us; 554us; 555us; 556us; 557us; 558us; 559us; 560us; 561us; 562us; 563us; 564us; 565us; 566us; 567us; 568us; 569us; 570us; 571us; 572us; 573us; 574us; 575us; 576us; 577us; 578us; 579us; 580us; 581us; 582us; 583us; 584us; 585us; 586us; 587us; 588us; 620us; 621us; 727us; 1us; 543us; 1us; 543us; 1us; 544us; 1us; 544us; 1us; 545us; 1us; 545us; 1us; 546us; 2us; 547us; 589us; 1us; 547us; 1us; 547us; 3us; 548us; 618us; 619us; 2us; 549us; 569us; 2us; 550us; 570us; 2us; 551us; 571us; 2us; 552us; 572us; 2us; 553us; 573us; 2us; 554us; 574us; 2us; 555us; 575us; 2us; 556us; 576us; 2us; 557us; 577us; 2us; 558us; 578us; 2us; 559us; 579us; 2us; 560us; 580us; 2us; 561us; 581us; 2us; 562us; 582us; 2us; 563us; 583us; 2us; 564us; 584us; 2us; 565us; 585us; 2us; 566us; 586us; 2us; 567us; 587us; 2us; 568us; 588us; 1us; 569us; 1us; 570us; 1us; 571us; 1us; 572us; 1us; 573us; 1us; 574us; 1us; 575us; 1us; 576us; 1us; 577us; 1us; 578us; 1us; 579us; 1us; 580us; 1us; 581us; 1us; 582us; 1us; 583us; 1us; 584us; 1us; 585us; 1us; 586us; 1us; 587us; 1us; 588us; 1us; 590us; 1us; 591us; 1us; 591us; 1us; 591us; 1us; 592us; 1us; 592us; 2us; 593us; 594us; 2us; 593us; 594us; 1us; 593us; 1us; 594us; 1us; 595us; 2us; 596us; 597us; 1us; 596us; 1us; 597us; 1us; 598us; 1us; 599us; 5us; 600us; 601us; 602us; 603us; 604us; 4us; 600us; 601us; 602us; 603us; 2us; 601us; 602us; 1us; 601us; 1us; 602us; 1us; 603us; 1us; 604us; 1us; 605us; 1us; 607us; 1us; 607us; 1us; 608us; 1us; 608us; 1us; 609us; 2us; 610us; 611us; 2us; 610us; 611us; 2us; 610us; 611us; 1us; 610us; 1us; 611us; 1us; 613us; 2us; 614us; 615us; 2us; 614us; 615us; 2us; 614us; 615us; 1us; 614us; 1us; 615us; 2us; 616us; 617us; 1us; 616us; 1us; 617us; 2us; 618us; 619us; 1us; 619us; 2us; 620us; 621us; 1us; 620us; 1us; 622us; 2us; 622us; 918us; 1us; 622us; 1us; 623us; 2us; 623us; 914us; 1us; 623us; 1us; 624us; 2us; 624us; 917us; 1us; 624us; 1us; 625us; 2us; 625us; 930us; 1us; 625us; 1us; 626us; 2us; 626us; 925us; 1us; 626us; 1us; 627us; 2us; 627us; 926us; 1us; 627us; 3us; 628us; 629us; 630us; 7us; 628us; 629us; 630us; 763us; 764us; 765us; 766us; 2us; 628us; 629us; 6us; 628us; 629us; 763us; 764us; 765us; 766us; 2us; 628us; 629us; 4us; 628us; 629us; 764us; 765us; 1us; 628us; 3us; 628us; 764us; 765us; 1us; 629us; 1us; 630us; 1us; 631us; 1us; 631us; 1us; 632us; 1us; 632us; 2us; 633us; 634us; 6us; 633us; 634us; 739us; 743us; 744us; 745us; 1us; 634us; 6us; 635us; 638us; 639us; 640us; 642us; 645us; 1us; 636us; 6us; 636us; 638us; 639us; 640us; 642us; 645us; 6us; 637us; 638us; 639us; 640us; 642us; 645us; 6us; 638us; 638us; 639us; 640us; 642us; 645us; 6us; 638us; 639us; 639us; 640us; 642us; 645us; 6us; 638us; 639us; 640us; 641us; 642us; 645us; 6us; 638us; 639us; 640us; 642us; 645us; 857us; 1us; 638us; 1us; 639us; 1us; 640us; 1us; 640us; 1us; 641us; 2us; 641us; 908us; 1us; 642us; 1us; 642us; 1us; 643us; 1us; 643us; 1us; 643us; 1us; 644us; 2us; 644us; 924us; 1us; 644us; 1us; 645us; 1us; 645us; 1us; 646us; 1us; 647us; 4us; 648us; 649us; 650us; 651us; 2us; 648us; 649us; 1us; 648us; 1us; 649us; 1us; 650us; 1us; 651us; 1us; 652us; 1us; 653us; 1us; 655us; 6us; 656us; 657us; 903us; 904us; 906us; 907us; 1us; 656us; 1us; 656us; 1us; 656us; 1us; 656us; 1us; 657us; 1us; 657us; 8us; 658us; 659us; 660us; 661us; 662us; 663us; 664us; 665us; 2us; 658us; 659us; 1us; 658us; 1us; 659us; 1us; 660us; 1us; 661us; 4us; 662us; 663us; 664us; 665us; 1us; 662us; 3us; 663us; 664us; 665us; 3us; 663us; 664us; 665us; 1us; 663us; 2us; 664us; 665us; 2us; 664us; 665us; 1us; 664us; 1us; 665us; 1us; 665us; 1us; 665us; 2us; 666us; 667us; 1us; 668us; 1us; 669us; 1us; 670us; 1us; 671us; 1us; 672us; 1us; 673us; 1us; 674us; 1us; 675us; 1us; 676us; 1us; 677us; 1us; 678us; 4us; 679us; 680us; 681us; 682us; 2us; 679us; 680us; 1us; 679us; 1us; 680us; 1us; 681us; 1us; 681us; 1us; 682us; 4us; 683us; 684us; 685us; 686us; 5us; 683us; 684us; 685us; 686us; 933us; 2us; 683us; 684us; 1us; 683us; 1us; 684us; 1us; 685us; 1us; 686us; 4us; 687us; 688us; 689us; 690us; 2us; 687us; 688us; 1us; 687us; 1us; 688us; 1us; 689us; 1us; 690us; 9us; 691us; 692us; 693us; 694us; 695us; 696us; 697us; 698us; 699us; 14us; 691us; 692us; 693us; 694us; 695us; 696us; 697us; 698us; 699us; 704us; 903us; 904us; 906us; 907us; 13us; 691us; 692us; 693us; 694us; 695us; 696us; 697us; 698us; 699us; 903us; 904us; 906us; 907us; 1us; 691us; 2us; 692us; 693us; 1us; 692us; 1us; 693us; 1us; 694us; 2us; 694us; 904us; 1us; 695us; 1us; 696us; 1us; 697us; 1us; 698us; 1us; 699us; 1us; 700us; 1us; 700us; 1us; 700us; 1us; 700us; 1us; 700us; 1us; 700us; 1us; 701us; 1us; 702us; 1us; 703us; 2us; 703us; 706us; 2us; 704us; 705us; 1us; 704us; 1us; 705us; 1us; 705us; 5us; 707us; 708us; 709us; 710us; 711us; 2us; 707us; 708us; 1us; 707us; 1us; 708us; 1us; 709us; 1us; 710us; 1us; 711us; 1us; 712us; 1us; 713us; 1us; 714us; 1us; 715us; 1us; 717us; 1us; 718us; 3us; 719us; 720us; 721us; 1us; 720us; 1us; 721us; 1us; 722us; 1us; 722us; 3us; 723us; 724us; 725us; 1us; 724us; 1us; 725us; 1us; 726us; 1us; 727us; 1us; 727us; 1us; 728us; 1us; 728us; 1us; 728us; 2us; 728us; 729us; 1us; 728us; 1us; 728us; 1us; 729us; 1us; 732us; 1us; 734us; 1us; 734us; 1us; 734us; 1us; 734us; 2us; 736us; 737us; 1us; 736us; 5us; 737us; 825us; 853us; 854us; 860us; 1us; 737us; 1us; 738us; 1us; 738us; 1us; 738us; 1us; 738us; 2us; 738us; 754us; 1us; 738us; 1us; 739us; 1us; 739us; 2us; 739us; 754us; 1us; 739us; 3us; 740us; 741us; 742us; 2us; 741us; 742us; 1us; 742us; 2us; 742us; 754us; 1us; 742us; 1us; 743us; 1us; 743us; 2us; 743us; 754us; 1us; 743us; 2us; 744us; 745us; 1us; 744us; 1us; 744us; 1us; 745us; 2us; 745us; 754us; 1us; 745us; 1us; 745us; 1us; 746us; 2us; 746us; 754us; 2us; 748us; 751us; 2us; 749us; 750us; 1us; 750us; 1us; 751us; 3us; 752us; 901us; 902us; 1us; 753us; 1us; 754us; 5us; 756us; 757us; 758us; 759us; 760us; 3us; 756us; 757us; 758us; 1us; 756us; 1us; 758us; 1us; 760us; 2us; 761us; 762us; 1us; 761us; 1us; 761us; 1us; 761us; 1us; 762us; 1us; 762us; 1us; 764us; 1us; 767us; 2us; 769us; 771us; 1us; 769us; 1us; 770us; 1us; 770us; 1us; 770us; 1us; 771us; 1us; 771us; 1us; 772us; 1us; 772us; 1us; 774us; 1us; 774us; 1us; 775us; 1us; 775us; 1us; 776us; 4us; 776us; 822us; 823us; 824us; 1us; 776us; 1us; 776us; 1us; 776us; 1us; 777us; 1us; 778us; 2us; 779us; 780us; 2us; 779us; 780us; 2us; 779us; 780us; 1us; 779us; 1us; 780us; 6us; 781us; 782us; 783us; 784us; 785us; 786us; 5us; 781us; 782us; 783us; 784us; 785us; 4us; 781us; 782us; 783us; 784us; 2us; 781us; 782us; 1us; 781us; 1us; 782us; 1us; 783us; 1us; 783us; 1us; 784us; 1us; 785us; 1us; 785us; 1us; 786us; 1us; 786us; 1us; 787us; 1us; 787us; 1us; 788us; 1us; 788us; 1us; 788us; 2us; 789us; 790us; 1us; 790us; 2us; 791us; 792us; 1us; 792us; 1us; 794us; 1us; 794us; 2us; 795us; 796us; 1us; 795us; 1us; 795us; 2us; 797us; 798us; 1us; 797us; 1us; 797us; 2us; 799us; 800us; 1us; 799us; 1us; 799us; 3us; 801us; 802us; 803us; 5us; 801us; 803us; 822us; 823us; 824us; 1us; 801us; 4us; 801us; 822us; 823us; 824us; 1us; 802us; 1us; 802us; 1us; 802us; 4us; 802us; 822us; 823us; 824us; 5us; 804us; 806us; 822us; 823us; 824us; 1us; 804us; 4us; 804us; 822us; 823us; 824us; 1us; 805us; 1us; 805us; 1us; 805us; 4us; 805us; 822us; 823us; 824us; 2us; 807us; 808us; 1us; 807us; 1us; 807us; 6us; 809us; 811us; 812us; 822us; 823us; 824us; 1us; 809us; 1us; 809us; 1us; 810us; 1us; 810us; 1us; 811us; 1us; 811us; 6us; 813us; 814us; 815us; 822us; 823us; 824us; 1us; 813us; 1us; 813us; 1us; 814us; 1us; 814us; 5us; 816us; 817us; 822us; 823us; 824us; 1us; 816us; 1us; 816us; 3us; 818us; 901us; 902us; 1us; 819us; 2us; 819us; 827us; 3us; 819us; 827us; 845us; 2us; 820us; 821us; 4us; 820us; 821us; 861us; 864us; 1us; 820us; 1us; 820us; 6us; 822us; 823us; 824us; 840us; 841us; 842us; 1us; 822us; 2us; 822us; 840us; 1us; 823us; 2us; 823us; 841us; 1us; 823us; 2us; 823us; 841us; 1us; 824us; 2us; 824us; 842us; 5us; 825us; 843us; 853us; 854us; 860us; 4us; 825us; 853us; 854us; 860us; 1us; 825us; 2us; 825us; 843us; 1us; 825us; 2us; 825us; 843us; 1us; 825us; 2us; 825us; 843us; 1us; 826us; 1us; 827us; 2us; 827us; 845us; 1us; 827us; 2us; 827us; 845us; 3us; 828us; 846us; 852us; 2us; 828us; 852us; 1us; 828us; 2us; 828us; 846us; 1us; 828us; 2us; 828us; 846us; 4us; 829us; 830us; 831us; 832us; 1us; 829us; 3us; 830us; 831us; 832us; 1us; 830us; 2us; 831us; 832us; 1us; 831us; 1us; 832us; 1us; 832us; 1us; 833us; 1us; 833us; 1us; 833us; 3us; 833us; 834us; 835us; 4us; 834us; 835us; 867us; 868us; 2us; 834us; 835us; 1us; 834us; 1us; 835us; 8us; 837us; 838us; 839us; 847us; 848us; 849us; 862us; 863us; 5us; 837us; 838us; 839us; 862us; 863us; 2us; 838us; 839us; 4us; 838us; 839us; 848us; 849us; 1us; 838us; 2us; 838us; 848us; 1us; 839us; 2us; 839us; 849us; 1us; 839us; 2us; 839us; 849us; 1us; 844us; 1us; 850us; 3us; 850us; 862us; 863us; 1us; 851us; 1us; 852us; 3us; 853us; 854us; 860us; 2us; 853us; 854us; 5us; 853us; 854us; 874us; 875us; 876us; 1us; 853us; 1us; 854us; 1us; 855us; 1us; 856us; 1us; 857us; 1us; 858us; 1us; 859us; 1us; 860us; 1us; 860us; 1us; 861us; 2us; 862us; 863us; 4us; 862us; 863us; 901us; 902us; 1us; 863us; 1us; 864us; 1us; 864us; 1us; 865us; 1us; 866us; 1us; 866us; 7us; 867us; 868us; 869us; 870us; 871us; 872us; 873us; 3us; 867us; 868us; 869us; 3us; 867us; 868us; 869us; 2us; 867us; 868us; 1us; 867us; 1us; 868us; 1us; 869us; 3us; 870us; 871us; 877us; 1us; 870us; 1us; 871us; 1us; 872us; 1us; 873us; 3us; 874us; 875us; 876us; 2us; 875us; 876us; 1us; 875us; 1us; 877us; 1us; 878us; 2us; 880us; 881us; 3us; 880us; 892us; 893us; 1us; 880us; 1us; 881us; 1us; 881us; 3us; 882us; 901us; 902us; 1us; 883us; 1us; 884us; 3us; 884us; 892us; 893us; 1us; 884us; 3us; 885us; 886us; 887us; 2us; 886us; 887us; 1us; 886us; 1us; 887us; 1us; 887us; 1us; 888us; 2us; 889us; 890us; 1us; 890us; 1us; 891us; 3us; 892us; 892us; 893us; 3us; 892us; 893us; 893us; 3us; 892us; 893us; 894us; 1us; 892us; 1us; 893us; 1us; 894us; 1us; 895us; 1us; 895us; 1us; 896us; 1us; 897us; 2us; 897us; 911us; 1us; 897us; 1us; 898us; 1us; 899us; 1us; 900us; 2us; 901us; 902us; 1us; 901us; 1us; 902us; 4us; 903us; 904us; 906us; 907us; 1us; 903us; 1us; 903us; 1us; 904us; 1us; 904us; 1us; 905us; 3us; 906us; 907us; 936us; 3us; 906us; 907us; 936us; 1us; 906us; 1us; 907us; 1us; 907us; 1us; 907us; 1us; 908us; 1us; 909us; 1us; 910us; 1us; 911us; 1us; 912us; 1us; 913us; 1us; 914us; 1us; 915us; 1us; 916us; 1us; 917us; 1us; 918us; 1us; 919us; 1us; 920us; 1us; 921us; 1us; 922us; 1us; 923us; 1us; 924us; 1us; 925us; 1us; 926us; 1us; 927us; 1us; 928us; 1us; 929us; 1us; 930us; 2us; 931us; 932us; 1us; 932us; 1us; 933us; 1us; 933us; 1us; 934us; 1us; 935us; 1us; 935us; 1us; 936us; 1us; 937us; 1us; 938us; 3us; 939us; 941us; 942us; 1us; 940us; 2us; 941us; 942us; 1us; 941us; 1us; 942us; 1us; 943us; 1us; 944us; 1us; 945us; 1us; 946us; 2us; 947us; 948us; 1us; 948us; 1us; 949us; 1us; 950us; 2us; 951us; 952us; 1us; 952us; 1us; 955us; 1us; 955us; 2us; 957us; 959us; 2us; 958us; 960us; 1us; 959us; 1us; 960us; 1us; 961us; 1us; 962us; 1us; 963us; 1us; 964us; 1us; 965us; 1us; 966us; 1us; 968us; 1us; 970us; 1us; 972us; 1us; 974us; 1us; 976us; 1us; 980us; 1us; 982us; 1us; 984us; 1us; 985us; 1us; 986us; 1us; 987us; 1us; 988us; 1us; 989us; 1us; 990us; 1us; 991us; 1us; 992us; 1us; 993us; 1us; 994us; 1us; 995us; 1us; 996us; 1us; 998us; 1us; 1000us; 2us; 1000us; 1020us; 1us; 1000us; 1us; 1001us; 1us; 1002us; 1us; 1003us; 2us; 1003us; 1021us; 1us; 1003us; 1us; 1004us; 1us; 1005us; 1us; 1006us; 1us; 1006us; 1us; 1007us; 1us; 1008us; 1us; 1009us; 1us; 1009us; 1us; 1010us; 1us; 1011us; 1us; 1012us; 1us; 1012us; 1us; 1013us; 1us; 1014us; 1us; 1015us; 1us; 1016us; 1us; 1017us; 1us; 1018us; 1us; 1019us; 1us; 1020us; 1us; 1021us; 1us; 1022us; 1us; 1023us; 1us; 1024us; 1us; 1025us; |] +let _fsyacc_stateToProdIdxsTableRowOffsets = [|0us; 2us; 4us; 6us; 8us; 10us; 12us; 14us; 16us; 18us; 20us; 22us; 25us; 27us; 29us; 31us; 33us; 35us; 37us; 39us; 42us; 44us; 47us; 49us; 52us; 54us; 56us; 58us; 60us; 62us; 64us; 66us; 69us; 71us; 79us; 87us; 135us; 137us; 140us; 142us; 144us; 146us; 150us; 152us; 155us; 157us; 159us; 161us; 164us; 166us; 168us; 170us; 174us; 176us; 180us; 183us; 185us; 188us; 190us; 192us; 194us; 196us; 199us; 201us; 204us; 206us; 208us; 210us; 212us; 219us; 226us; 230us; 232us; 234us; 246us; 257us; 260us; 262us; 264us; 266us; 270us; 273us; 275us; 277us; 279us; 283us; 285us; 287us; 290us; 293us; 296us; 298us; 300us; 302us; 304us; 308us; 311us; 313us; 315us; 317us; 320us; 322us; 324us; 326us; 337us; 347us; 397us; 400us; 402us; 404us; 406us; 411us; 413us; 416us; 418us; 420us; 423us; 426us; 428us; 430us; 432us; 434us; 441us; 448us; 450us; 454us; 456us; 462us; 464us; 466us; 468us; 470us; 472us; 474us; 476us; 478us; 481us; 483us; 485us; 489us; 493us; 495us; 499us; 505us; 508us; 510us; 512us; 515us; 517us; 519us; 521us; 523us; 527us; 531us; 534us; 536us; 538us; 540us; 542us; 544us; 546us; 548us; 550us; 556us; 562us; 565us; 568us; 570us; 572us; 574us; 576us; 578us; 582us; 584us; 586us; 588us; 590us; 592us; 594us; 596us; 598us; 600us; 602us; 605us; 653us; 655us; 703us; 705us; 707us; 709us; 711us; 713us; 715us; 717us; 719us; 721us; 723us; 725us; 728us; 730us; 735us; 739us; 742us; 744us; 746us; 749us; 751us; 753us; 755us; 757us; 759us; 762us; 764us; 768us; 770us; 772us; 775us; 779us; 781us; 783us; 785us; 789us; 791us; 793us; 795us; 797us; 799us; 801us; 803us; 806us; 808us; 810us; 812us; 814us; 816us; 819us; 821us; 823us; 826us; 828us; 830us; 832us; 836us; 838us; 840us; 842us; 844us; 846us; 848us; 850us; 852us; 854us; 856us; 858us; 860us; 862us; 864us; 868us; 871us; 873us; 875us; 877us; 879us; 882us; 885us; 887us; 889us; 892us; 895us; 897us; 899us; 902us; 905us; 907us; 909us; 911us; 913us; 915us; 917us; 919us; 923us; 928us; 930us; 932us; 934us; 936us; 938us; 941us; 943us; 945us; 947us; 950us; 953us; 955us; 957us; 960us; 962us; 964us; 972us; 985us; 993us; 1006us; 1008us; 1010us; 1012us; 1014us; 1016us; 1018us; 1020us; 1022us; 1024us; 1026us; 1031us; 1033us; 1038us; 1040us; 1042us; 1044us; 1046us; 1048us; 1050us; 1052us; 1054us; 1056us; 1058us; 1060us; 1062us; 1064us; 1066us; 1068us; 1073us; 1075us; 1077us; 1079us; 1081us; 1083us; 1085us; 1087us; 1089us; 1091us; 1093us; 1098us; 1101us; 1104us; 1107us; 1110us; 1112us; 1114us; 1116us; 1118us; 1120us; 1122us; 1124us; 1126us; 1128us; 1130us; 1132us; 1136us; 1139us; 1141us; 1143us; 1146us; 1148us; 1151us; 1154us; 1156us; 1158us; 1161us; 1164us; 1166us; 1168us; 1170us; 1172us; 1174us; 1176us; 1178us; 1180us; 1182us; 1184us; 1186us; 1189us; 1192us; 1194us; 1196us; 1199us; 1201us; 1203us; 1205us; 1207us; 1209us; 1211us; 1213us; 1215us; 1218us; 1221us; 1224us; 1226us; 1228us; 1230us; 1233us; 1235us; 1247us; 1264us; 1276us; 1293us; 1295us; 1297us; 1300us; 1302us; 1304us; 1306us; 1311us; 1313us; 1315us; 1317us; 1319us; 1321us; 1323us; 1325us; 1327us; 1329us; 1331us; 1333us; 1335us; 1337us; 1339us; 1341us; 1343us; 1345us; 1347us; 1349us; 1351us; 1353us; 1355us; 1357us; 1359us; 1361us; 1363us; 1365us; 1367us; 1369us; 1371us; 1373us; 1375us; 1377us; 1379us; 1381us; 1383us; 1385us; 1387us; 1389us; 1391us; 1393us; 1395us; 1397us; 1399us; 1401us; 1403us; 1405us; 1407us; 1409us; 1411us; 1413us; 1415us; 1417us; 1419us; 1421us; 1423us; 1425us; 1427us; 1429us; 1431us; 1435us; 1438us; 1440us; 1442us; 1444us; 1446us; 1448us; 1450us; 1452us; 1454us; 1456us; 1459us; 1461us; 1463us; 1466us; 1469us; 1471us; 1473us; 1475us; 1478us; 1481us; 1483us; 1488us; 1494us; 1498us; 1500us; 1502us; 1504us; 1506us; 1508us; 1510us; 1512us; 1514us; 1516us; 1518us; 1524us; 1530us; 1535us; 1537us; 1539us; 1541us; 1543us; 1545us; 1547us; 1553us; 1555us; 1557us; 1561us; 1564us; 1566us; 1568us; 1570us; 1572us; 1575us; 1578us; 1580us; 1582us; 1584us; 1586us; 1588us; 1590us; 1594us; 1599us; 1601us; 1605us; 1607us; 1609us; 1611us; 1614us; 1616us; 1619us; 1623us; 1625us; 1628us; 1630us; 1632us; 1634us; 1636us; 1638us; 1640us; 1642us; 1644us; 1646us; 1648us; 1650us; 1652us; 1654us; 1656us; 1658us; 1661us; 1663us; 1666us; 1669us; 1672us; 1674us; 1676us; 1678us; 1680us; 1682us; 1684us; 1686us; 1695us; 1697us; 1699us; 1707us; 1709us; 1713us; 1715us; 1717us; 1719us; 1721us; 1723us; 1725us; 1728us; 1730us; 1732us; 1734us; 1736us; 1738us; 1740us; 1742us; 1744us; 1746us; 1748us; 1750us; 1752us; 1754us; 1756us; 1758us; 1760us; 1763us; 1765us; 1768us; 1770us; 1772us; 1777us; 1782us; 1787us; 1789us; 1791us; 1793us; 1795us; 1797us; 1799us; 1801us; 1803us; 1805us; 1807us; 1809us; 1816us; 1818us; 1820us; 1822us; 1824us; 1826us; 1832us; 1834us; 1837us; 1840us; 1843us; 1845us; 1847us; 1849us; 1851us; 1857us; 1859us; 1861us; 1864us; 1867us; 1869us; 1871us; 1873us; 1875us; 1877us; 1879us; 1881us; 1883us; 1885us; 1887us; 1889us; 1891us; 1893us; 1895us; 1897us; 1899us; 1901us; 1903us; 1905us; 1908us; 1910us; 1912us; 1914us; 1918us; 1920us; 1924us; 1926us; 1928us; 1930us; 1932us; 1934us; 1936us; 1938us; 1940us; 1942us; 1944us; 1946us; 1948us; 1950us; 1952us; 1954us; 1956us; 1958us; 1960us; 1962us; 1964us; 1966us; 1968us; 1970us; 1972us; 1974us; 1976us; 1978us; 1981us; 1984us; 1986us; 1988us; 1990us; 1992us; 1995us; 2001us; 2003us; 2007us; 2012us; 2014us; 2016us; 2018us; 2020us; 2022us; 2024us; 2027us; 2029us; 2032us; 2034us; 2036us; 2038us; 2040us; 2042us; 2044us; 2046us; 2048us; 2052us; 2056us; 2060us; 2064us; 2067us; 2069us; 2071us; 2073us; 2076us; 2079us; 2081us; 2083us; 2085us; 2087us; 2090us; 2092us; 2094us; 2097us; 2099us; 2101us; 2103us; 2105us; 2107us; 2110us; 2112us; 2114us; 2116us; 2118us; 2120us; 2122us; 2124us; 2126us; 2128us; 2130us; 2132us; 2134us; 2136us; 2138us; 2140us; 2142us; 2145us; 2147us; 2149us; 2151us; 2153us; 2156us; 2158us; 2160us; 2167us; 2169us; 2171us; 2173us; 2176us; 2180us; 2182us; 2184us; 2186us; 2188us; 2190us; 2196us; 2199us; 2201us; 2203us; 2205us; 2208us; 2210us; 2212us; 2219us; 2226us; 2233us; 2240us; 2247us; 2254us; 2261us; 2269us; 2271us; 2273us; 2275us; 2277us; 2280us; 2283us; 2285us; 2287us; 2289us; 2291us; 2293us; 2299us; 2303us; 2305us; 2307us; 2309us; 2311us; 2313us; 2315us; 2319us; 2321us; 2326us; 2328us; 2330us; 2332us; 2334us; 2336us; 2338us; 2340us; 2342us; 2344us; 2346us; 2348us; 2350us; 2352us; 2354us; 2356us; 2358us; 2360us; 2362us; 2364us; 2367us; 2369us; 2371us; 2373us; 2375us; 2377us; 2379us; 2388us; 2391us; 2393us; 2395us; 2399us; 2402us; 2404us; 2412us; 2420us; 2428us; 2436us; 2444us; 2452us; 2460us; 2468us; 2476us; 2485us; 2499us; 2507us; 2509us; 2511us; 2513us; 2516us; 2519us; 2521us; 2523us; 2525us; 2527us; 2529us; 2531us; 2533us; 2535us; 2537us; 2539us; 2542us; 2544us; 2547us; 2549us; 2553us; 2555us; 2557us; 2560us; 2562us; 2565us; 2568us; 2570us; 2572us; 2574us; 2576us; 2578us; 2580us; 2628us; 2631us; 2633us; 2636us; 2638us; 2640us; 2692us; 2746us; 2801us; 2804us; 2806us; 2808us; 2810us; 2812us; 2814us; 2816us; 2818us; 2824us; 2826us; 2829us; 2832us; 2835us; 2838us; 2841us; 2844us; 2847us; 2850us; 2853us; 2856us; 2860us; 2863us; 2865us; 2868us; 2871us; 2873us; 2875us; 2880us; 2882us; 2884us; 2887us; 2889us; 2891us; 2893us; 2895us; 2897us; 2900us; 2903us; 2905us; 2907us; 2911us; 2915us; 2917us; 2919us; 2921us; 2923us; 2927us; 2976us; 2978us; 2980us; 2982us; 2984us; 3032us; 3035us; 3083us; 3085us; 3087us; 3090us; 3092us; 3099us; 3150us; 3154us; 3157us; 3159us; 3161us; 3163us; 3165us; 3167us; 3169us; 3171us; 3187us; 3194us; 3199us; 3202us; 3204us; 3206us; 3208us; 3210us; 3212us; 3218us; 3223us; 3226us; 3228us; 3230us; 3232us; 3234us; 3236us; 3238us; 3240us; 3242us; 3244us; 3246us; 3249us; 3251us; 3299us; 3301us; 3349us; 3351us; 3353us; 3355us; 3357us; 3359us; 3361us; 3364us; 3367us; 3370us; 3373us; 3376us; 3378us; 3380us; 3382us; 3384us; 3386us; 3388us; 3390us; 3392us; 3394us; 3396us; 3398us; 3400us; 3402us; 3404us; 3452us; 3500us; 3548us; 3596us; 3644us; 3692us; 3740us; 3788us; 3836us; 3884us; 3932us; 3980us; 4028us; 4076us; 4124us; 4172us; 4220us; 4268us; 4316us; 4364us; 4412us; 4460us; 4508us; 4556us; 4605us; 4653us; 4701us; 4750us; 4798us; 4846us; 4897us; 4946us; 4994us; 5042us; 5090us; 5092us; 5094us; 5096us; 5098us; 5100us; 5102us; 5104us; 5107us; 5109us; 5111us; 5115us; 5118us; 5121us; 5124us; 5127us; 5130us; 5133us; 5136us; 5139us; 5142us; 5145us; 5148us; 5151us; 5154us; 5157us; 5160us; 5163us; 5166us; 5169us; 5172us; 5175us; 5177us; 5179us; 5181us; 5183us; 5185us; 5187us; 5189us; 5191us; 5193us; 5195us; 5197us; 5199us; 5201us; 5203us; 5205us; 5207us; 5209us; 5211us; 5213us; 5215us; 5217us; 5219us; 5221us; 5223us; 5225us; 5227us; 5230us; 5233us; 5235us; 5237us; 5239us; 5242us; 5244us; 5246us; 5248us; 5250us; 5256us; 5261us; 5264us; 5266us; 5268us; 5270us; 5272us; 5274us; 5276us; 5278us; 5280us; 5282us; 5284us; 5287us; 5290us; 5293us; 5295us; 5297us; 5299us; 5302us; 5305us; 5308us; 5310us; 5312us; 5315us; 5317us; 5319us; 5322us; 5324us; 5327us; 5329us; 5331us; 5334us; 5336us; 5338us; 5341us; 5343us; 5345us; 5348us; 5350us; 5352us; 5355us; 5357us; 5359us; 5362us; 5364us; 5366us; 5369us; 5371us; 5375us; 5383us; 5386us; 5393us; 5396us; 5401us; 5403us; 5407us; 5409us; 5411us; 5413us; 5415us; 5417us; 5419us; 5422us; 5429us; 5431us; 5438us; 5440us; 5447us; 5454us; 5461us; 5468us; 5475us; 5482us; 5484us; 5486us; 5488us; 5490us; 5492us; 5495us; 5497us; 5499us; 5501us; 5503us; 5505us; 5507us; 5510us; 5512us; 5514us; 5516us; 5518us; 5520us; 5525us; 5528us; 5530us; 5532us; 5534us; 5536us; 5538us; 5540us; 5542us; 5549us; 5551us; 5553us; 5555us; 5557us; 5559us; 5561us; 5570us; 5573us; 5575us; 5577us; 5579us; 5581us; 5586us; 5588us; 5592us; 5596us; 5598us; 5601us; 5604us; 5606us; 5608us; 5610us; 5612us; 5615us; 5617us; 5619us; 5621us; 5623us; 5625us; 5627us; 5629us; 5631us; 5633us; 5635us; 5637us; 5642us; 5645us; 5647us; 5649us; 5651us; 5653us; 5655us; 5660us; 5666us; 5669us; 5671us; 5673us; 5675us; 5677us; 5682us; 5685us; 5687us; 5689us; 5691us; 5693us; 5703us; 5718us; 5732us; 5734us; 5737us; 5739us; 5741us; 5743us; 5746us; 5748us; 5750us; 5752us; 5754us; 5756us; 5758us; 5760us; 5762us; 5764us; 5766us; 5768us; 5770us; 5772us; 5774us; 5777us; 5780us; 5782us; 5784us; 5786us; 5792us; 5795us; 5797us; 5799us; 5801us; 5803us; 5805us; 5807us; 5809us; 5811us; 5813us; 5815us; 5817us; 5821us; 5823us; 5825us; 5827us; 5829us; 5833us; 5835us; 5837us; 5839us; 5841us; 5843us; 5845us; 5847us; 5849us; 5852us; 5854us; 5856us; 5858us; 5860us; 5862us; 5864us; 5866us; 5868us; 5871us; 5873us; 5879us; 5881us; 5883us; 5885us; 5887us; 5889us; 5892us; 5894us; 5896us; 5898us; 5901us; 5903us; 5907us; 5910us; 5912us; 5915us; 5917us; 5919us; 5921us; 5924us; 5926us; 5929us; 5931us; 5933us; 5935us; 5938us; 5940us; 5942us; 5944us; 5947us; 5950us; 5953us; 5955us; 5957us; 5961us; 5963us; 5965us; 5971us; 5975us; 5977us; 5979us; 5981us; 5984us; 5986us; 5988us; 5990us; 5992us; 5994us; 5996us; 5998us; 6001us; 6003us; 6005us; 6007us; 6009us; 6011us; 6013us; 6015us; 6017us; 6019us; 6021us; 6023us; 6025us; 6027us; 6032us; 6034us; 6036us; 6038us; 6040us; 6042us; 6045us; 6048us; 6051us; 6053us; 6055us; 6062us; 6068us; 6073us; 6076us; 6078us; 6080us; 6082us; 6084us; 6086us; 6088us; 6090us; 6092us; 6094us; 6096us; 6098us; 6100us; 6102us; 6104us; 6107us; 6109us; 6112us; 6114us; 6116us; 6118us; 6121us; 6123us; 6125us; 6128us; 6130us; 6132us; 6135us; 6137us; 6139us; 6143us; 6149us; 6151us; 6156us; 6158us; 6160us; 6162us; 6167us; 6173us; 6175us; 6180us; 6182us; 6184us; 6186us; 6191us; 6194us; 6196us; 6198us; 6205us; 6207us; 6209us; 6211us; 6213us; 6215us; 6217us; 6224us; 6226us; 6228us; 6230us; 6232us; 6238us; 6240us; 6242us; 6246us; 6248us; 6251us; 6255us; 6258us; 6263us; 6265us; 6267us; 6274us; 6276us; 6279us; 6281us; 6284us; 6286us; 6289us; 6291us; 6294us; 6300us; 6305us; 6307us; 6310us; 6312us; 6315us; 6317us; 6320us; 6322us; 6324us; 6327us; 6329us; 6332us; 6336us; 6339us; 6341us; 6344us; 6346us; 6349us; 6354us; 6356us; 6360us; 6362us; 6365us; 6367us; 6369us; 6371us; 6373us; 6375us; 6377us; 6381us; 6386us; 6389us; 6391us; 6393us; 6402us; 6408us; 6411us; 6416us; 6418us; 6421us; 6423us; 6426us; 6428us; 6431us; 6433us; 6435us; 6439us; 6441us; 6443us; 6447us; 6450us; 6456us; 6458us; 6460us; 6462us; 6464us; 6466us; 6468us; 6470us; 6472us; 6474us; 6476us; 6479us; 6484us; 6486us; 6488us; 6490us; 6492us; 6494us; 6496us; 6504us; 6508us; 6512us; 6515us; 6517us; 6519us; 6521us; 6525us; 6527us; 6529us; 6531us; 6533us; 6537us; 6540us; 6542us; 6544us; 6546us; 6549us; 6553us; 6555us; 6557us; 6559us; 6563us; 6565us; 6567us; 6571us; 6573us; 6577us; 6580us; 6582us; 6584us; 6586us; 6588us; 6591us; 6593us; 6595us; 6599us; 6603us; 6607us; 6609us; 6611us; 6613us; 6615us; 6617us; 6619us; 6621us; 6624us; 6626us; 6628us; 6630us; 6632us; 6635us; 6637us; 6639us; 6644us; 6646us; 6648us; 6650us; 6652us; 6654us; 6658us; 6662us; 6664us; 6666us; 6668us; 6670us; 6672us; 6674us; 6676us; 6678us; 6680us; 6682us; 6684us; 6686us; 6688us; 6690us; 6692us; 6694us; 6696us; 6698us; 6700us; 6702us; 6704us; 6706us; 6708us; 6710us; 6712us; 6714us; 6716us; 6719us; 6721us; 6723us; 6725us; 6727us; 6729us; 6731us; 6733us; 6735us; 6737us; 6741us; 6743us; 6746us; 6748us; 6750us; 6752us; 6754us; 6756us; 6758us; 6761us; 6763us; 6765us; 6767us; 6770us; 6772us; 6774us; 6776us; 6779us; 6782us; 6784us; 6786us; 6788us; 6790us; 6792us; 6794us; 6796us; 6798us; 6800us; 6802us; 6804us; 6806us; 6808us; 6810us; 6812us; 6814us; 6816us; 6818us; 6820us; 6822us; 6824us; 6826us; 6828us; 6830us; 6832us; 6834us; 6836us; 6838us; 6840us; 6842us; 6845us; 6847us; 6849us; 6851us; 6853us; 6856us; 6858us; 6860us; 6862us; 6864us; 6866us; 6868us; 6870us; 6872us; 6874us; 6876us; 6878us; 6880us; 6882us; 6884us; 6886us; 6888us; 6890us; 6892us; 6894us; 6896us; 6898us; 6900us; 6902us; 6904us; 6906us; |] +let _fsyacc_action_rows = 1760 +let _fsyacc_actionTableElements = [|16us; 16437us; 21us; 79us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 72us; 199us; 87us; 9us; 100us; 170us; 107us; 16496us; 108us; 16496us; 119us; 16496us; 147us; 16496us; 192us; 41us; 0us; 49152us; 82us; 16446us; 21us; 94us; 23us; 16496us; 24us; 16496us; 28us; 16496us; 29us; 16496us; 30us; 16496us; 31us; 16496us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 39us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 44us; 16496us; 61us; 16496us; 70us; 16496us; 71us; 16496us; 72us; 199us; 73us; 16496us; 74us; 16496us; 85us; 16496us; 87us; 9us; 88us; 16496us; 89us; 16496us; 91us; 16496us; 97us; 16496us; 99us; 16496us; 100us; 664us; 105us; 16496us; 106us; 16496us; 107us; 16496us; 113us; 16496us; 114us; 16496us; 115us; 16496us; 117us; 16496us; 119us; 16496us; 120us; 16496us; 121us; 16496us; 122us; 16496us; 123us; 16496us; 124us; 16496us; 128us; 16496us; 131us; 16496us; 132us; 16496us; 134us; 16496us; 135us; 16496us; 143us; 16496us; 144us; 16496us; 145us; 16496us; 147us; 16496us; 151us; 16496us; 152us; 16496us; 155us; 16496us; 156us; 16496us; 159us; 16496us; 160us; 16496us; 161us; 16496us; 162us; 16496us; 163us; 16496us; 164us; 16496us; 165us; 16496us; 166us; 16496us; 167us; 16496us; 168us; 16496us; 169us; 16496us; 170us; 16496us; 171us; 16496us; 172us; 16496us; 173us; 16496us; 174us; 16496us; 176us; 16496us; 177us; 16496us; 179us; 16496us; 180us; 16496us; 183us; 16496us; 188us; 16496us; 189us; 16496us; 190us; 16496us; 191us; 16496us; 192us; 47us; 0us; 49152us; 7us; 16496us; 10us; 17us; 20us; 8us; 67us; 16us; 72us; 199us; 83us; 7us; 87us; 9us; 100us; 664us; 0us; 49152us; 0us; 16387us; 0us; 16388us; 0us; 16389us; 1us; 32768us; 188us; 10us; 0us; 16394us; 2us; 16390us; 189us; 13us; 190us; 12us; 0us; 16391us; 0us; 16392us; 0us; 16393us; 0us; 16395us; 0us; 16396us; 0us; 16397us; 0us; 16398us; 4us; 32768us; 10us; 17us; 20us; 1691us; 67us; 16us; 83us; 1690us; 0us; 16399us; 4us; 32768us; 10us; 17us; 20us; 1691us; 67us; 16us; 83us; 1690us; 0us; 16400us; 4us; 32768us; 10us; 17us; 20us; 1691us; 67us; 16us; 83us; 1690us; 0us; 16401us; 5us; 16496us; 10us; 17us; 67us; 16us; 72us; 199us; 87us; 9us; 100us; 664us; 0us; 16402us; 5us; 16496us; 10us; 17us; 67us; 16us; 72us; 199us; 87us; 9us; 100us; 664us; 0us; 16403us; 5us; 16496us; 10us; 17us; 67us; 16us; 72us; 199us; 87us; 9us; 100us; 664us; 0us; 16404us; 16us; 16405us; 31us; 16496us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 39us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 72us; 199us; 100us; 664us; 107us; 16496us; 119us; 16496us; 135us; 16496us; 147us; 16496us; 159us; 16496us; 0us; 16406us; 3us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 74us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1727us; 36us; 1730us; 37us; 1732us; 38us; 1735us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 107us; 1731us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 119us; 653us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 135us; 670us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 147us; 1736us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 25us; 16407us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 0us; 16408us; 2us; 32768us; 10us; 38us; 192us; 39us; 0us; 16409us; 1us; 32768us; 10us; 40us; 0us; 16410us; 4us; 16436us; 10us; 42us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 0us; 16411us; 2us; 32768us; 10us; 44us; 192us; 45us; 0us; 16412us; 1us; 32768us; 10us; 46us; 0us; 16413us; 4us; 32768us; 10us; 48us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 0us; 16414us; 3us; 16610us; 41us; 459us; 42us; 458us; 43us; 460us; 2us; 32768us; 44us; 1629us; 188us; 1628us; 1us; 16415us; 76us; 1631us; 2us; 32768us; 44us; 1629us; 188us; 1628us; 1us; 16416us; 76us; 1631us; 1us; 16417us; 148us; 52us; 0us; 16418us; 1us; 16420us; 148us; 52us; 0us; 16419us; 1us; 17355us; 69us; 1707us; 16us; 16437us; 21us; 79us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 72us; 199us; 87us; 9us; 100us; 170us; 107us; 16496us; 108us; 16496us; 119us; 16496us; 147us; 16496us; 192us; 87us; 0us; 16421us; 1us; 16422us; 148us; 52us; 0us; 16423us; 1us; 16425us; 148us; 52us; 0us; 16424us; 1us; 17355us; 69us; 1707us; 82us; 16446us; 21us; 94us; 23us; 16496us; 24us; 16496us; 28us; 16496us; 29us; 16496us; 30us; 16496us; 31us; 16496us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 39us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 44us; 16496us; 61us; 16496us; 70us; 16496us; 71us; 16496us; 72us; 199us; 73us; 16496us; 74us; 16496us; 85us; 16496us; 87us; 9us; 88us; 16496us; 89us; 16496us; 91us; 16496us; 97us; 16496us; 99us; 16496us; 100us; 664us; 105us; 16496us; 106us; 16496us; 107us; 16496us; 113us; 16496us; 114us; 16496us; 115us; 16496us; 117us; 16496us; 119us; 16496us; 120us; 16496us; 121us; 16496us; 122us; 16496us; 123us; 16496us; 124us; 16496us; 128us; 16496us; 131us; 16496us; 132us; 16496us; 134us; 16496us; 135us; 16496us; 143us; 16496us; 144us; 16496us; 145us; 16496us; 147us; 16496us; 151us; 16496us; 152us; 16496us; 155us; 16496us; 156us; 16496us; 159us; 16496us; 160us; 16496us; 161us; 16496us; 162us; 16496us; 163us; 16496us; 164us; 16496us; 165us; 16496us; 166us; 16496us; 167us; 16496us; 168us; 16496us; 169us; 16496us; 170us; 16496us; 171us; 16496us; 172us; 16496us; 173us; 16496us; 174us; 16496us; 176us; 16496us; 177us; 16496us; 179us; 16496us; 180us; 16496us; 183us; 16496us; 188us; 16496us; 189us; 16496us; 190us; 16496us; 191us; 16496us; 192us; 114us; 0us; 16426us; 3us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 8us; 32768us; 35us; 1727us; 36us; 1730us; 37us; 1732us; 38us; 1735us; 107us; 1731us; 108us; 172us; 119us; 653us; 147us; 1736us; 18us; 16437us; 21us; 79us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 69us; 1722us; 72us; 199us; 77us; 1721us; 87us; 9us; 100us; 170us; 107us; 16496us; 108us; 16496us; 119us; 16496us; 147us; 16496us; 192us; 87us; 0us; 16427us; 0us; 16428us; 4us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 192us; 109us; 74us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1727us; 36us; 1730us; 37us; 1732us; 38us; 1735us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 107us; 1731us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 119us; 653us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 135us; 670us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 147us; 1736us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 83us; 16446us; 21us; 94us; 23us; 16496us; 24us; 16496us; 28us; 16496us; 29us; 16496us; 30us; 16496us; 31us; 16496us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 39us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 44us; 16496us; 61us; 16496us; 69us; 133us; 70us; 16496us; 71us; 16496us; 72us; 199us; 73us; 16496us; 74us; 16496us; 85us; 16496us; 87us; 9us; 88us; 16496us; 89us; 16496us; 91us; 16496us; 97us; 16496us; 99us; 16496us; 100us; 664us; 105us; 16496us; 106us; 16496us; 107us; 16496us; 113us; 16496us; 114us; 16496us; 115us; 16496us; 117us; 16496us; 119us; 16496us; 120us; 16496us; 121us; 16496us; 122us; 16496us; 123us; 16496us; 124us; 16496us; 128us; 16496us; 131us; 16496us; 132us; 16496us; 134us; 16496us; 135us; 16496us; 143us; 16496us; 144us; 16496us; 145us; 16496us; 147us; 16496us; 151us; 16496us; 152us; 16496us; 155us; 16496us; 156us; 16496us; 159us; 16496us; 160us; 16496us; 161us; 16496us; 162us; 16496us; 163us; 16496us; 164us; 16496us; 165us; 16496us; 166us; 16496us; 167us; 16496us; 168us; 16496us; 169us; 16496us; 170us; 16496us; 171us; 16496us; 172us; 16496us; 173us; 16496us; 174us; 16496us; 176us; 16496us; 177us; 16496us; 179us; 16496us; 180us; 16496us; 183us; 16496us; 188us; 16496us; 189us; 16496us; 190us; 16496us; 191us; 16496us; 192us; 114us; 0us; 16429us; 0us; 16430us; 0us; 16431us; 15us; 16437us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 72us; 199us; 87us; 9us; 100us; 170us; 107us; 16496us; 108us; 16496us; 119us; 16496us; 147us; 16496us; 192us; 84us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 1us; 17357us; 20us; 1708us; 0us; 16432us; 0us; 16433us; 6us; 16436us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 0us; 16434us; 0us; 16435us; 3us; 16436us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 3us; 17340us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 15us; 16440us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 72us; 199us; 87us; 9us; 100us; 170us; 107us; 16496us; 108us; 16496us; 119us; 16496us; 147us; 16496us; 192us; 91us; 0us; 16438us; 3us; 32768us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 4us; 16496us; 72us; 199us; 87us; 9us; 100us; 170us; 192us; 91us; 0us; 16439us; 81us; 16446us; 23us; 16496us; 24us; 16496us; 28us; 16496us; 29us; 16496us; 30us; 16496us; 31us; 16496us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 39us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 44us; 16496us; 61us; 16496us; 70us; 16496us; 71us; 16496us; 72us; 199us; 73us; 16496us; 74us; 16496us; 85us; 16496us; 87us; 9us; 88us; 16496us; 89us; 16496us; 91us; 16496us; 97us; 16496us; 99us; 16496us; 100us; 664us; 105us; 16496us; 106us; 16496us; 107us; 16496us; 113us; 16496us; 114us; 16496us; 115us; 16496us; 117us; 16496us; 119us; 16496us; 120us; 16496us; 121us; 16496us; 122us; 16496us; 123us; 16496us; 124us; 16496us; 128us; 16496us; 131us; 16496us; 132us; 16496us; 134us; 16496us; 135us; 16496us; 143us; 16496us; 144us; 16496us; 145us; 16496us; 147us; 16496us; 151us; 16496us; 152us; 16496us; 155us; 16496us; 156us; 16496us; 159us; 16496us; 160us; 16496us; 161us; 16496us; 162us; 16496us; 163us; 16496us; 164us; 16496us; 165us; 16496us; 166us; 16496us; 167us; 16496us; 168us; 16496us; 169us; 16496us; 170us; 16496us; 171us; 16496us; 172us; 16496us; 173us; 16496us; 174us; 16496us; 176us; 16496us; 177us; 16496us; 179us; 16496us; 180us; 16496us; 183us; 16496us; 188us; 16496us; 189us; 16496us; 190us; 16496us; 191us; 16496us; 192us; 99us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 1us; 17357us; 20us; 1708us; 0us; 16441us; 0us; 16442us; 6us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 0us; 16443us; 0us; 16444us; 0us; 16445us; 4us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 192us; 109us; 74us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1727us; 36us; 1730us; 37us; 1732us; 38us; 1735us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 107us; 1731us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 119us; 653us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 135us; 670us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 147us; 1736us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 28us; 16449us; 20us; 1687us; 61us; 1088us; 62us; 1081us; 67us; 1686us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 83us; 1685us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 81us; 16448us; 23us; 16496us; 24us; 16496us; 28us; 16496us; 29us; 16496us; 30us; 16496us; 31us; 16496us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 39us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 44us; 16496us; 61us; 16496us; 70us; 16496us; 71us; 16496us; 72us; 199us; 73us; 16496us; 74us; 16496us; 85us; 16496us; 87us; 9us; 88us; 16496us; 89us; 16496us; 91us; 16496us; 97us; 16496us; 99us; 16496us; 100us; 664us; 105us; 16496us; 106us; 16496us; 107us; 16496us; 113us; 16496us; 114us; 16496us; 115us; 16496us; 117us; 16496us; 119us; 16496us; 120us; 16496us; 121us; 16496us; 122us; 16496us; 123us; 16496us; 124us; 16496us; 128us; 16496us; 131us; 16496us; 132us; 16496us; 134us; 16496us; 135us; 16496us; 143us; 16496us; 144us; 16496us; 145us; 16496us; 147us; 16496us; 151us; 16496us; 152us; 16496us; 155us; 16496us; 156us; 16496us; 159us; 16496us; 160us; 16496us; 161us; 16496us; 162us; 16496us; 163us; 16496us; 164us; 16496us; 165us; 16496us; 166us; 16496us; 167us; 16496us; 168us; 16496us; 169us; 16496us; 170us; 16496us; 171us; 16496us; 172us; 16496us; 173us; 16496us; 174us; 16496us; 176us; 16496us; 177us; 16496us; 179us; 16496us; 180us; 16496us; 183us; 16496us; 188us; 16496us; 189us; 16496us; 190us; 16496us; 191us; 16496us; 192us; 114us; 0us; 16447us; 0us; 16450us; 0us; 16451us; 21us; 16454us; 20us; 1687us; 31us; 16496us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 39us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 67us; 1686us; 72us; 199us; 83us; 1685us; 87us; 9us; 100us; 664us; 107us; 16496us; 119us; 16496us; 135us; 16496us; 147us; 16496us; 159us; 16496us; 192us; 114us; 0us; 16452us; 81us; 16455us; 23us; 16496us; 24us; 16496us; 28us; 16496us; 29us; 16496us; 30us; 16496us; 31us; 16496us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 39us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 44us; 16496us; 61us; 16496us; 70us; 16496us; 71us; 16496us; 72us; 199us; 73us; 16496us; 74us; 16496us; 85us; 16496us; 87us; 9us; 88us; 16496us; 89us; 16496us; 91us; 16496us; 97us; 16496us; 99us; 16496us; 100us; 664us; 105us; 16496us; 106us; 16496us; 107us; 16496us; 113us; 16496us; 114us; 16496us; 115us; 16496us; 117us; 16496us; 119us; 16496us; 120us; 16496us; 121us; 16496us; 122us; 16496us; 123us; 16496us; 124us; 16496us; 128us; 16496us; 131us; 16496us; 132us; 16496us; 134us; 16496us; 135us; 16496us; 143us; 16496us; 144us; 16496us; 145us; 16496us; 147us; 16496us; 151us; 16496us; 152us; 16496us; 155us; 16496us; 156us; 16496us; 159us; 16496us; 160us; 16496us; 161us; 16496us; 162us; 16496us; 163us; 16496us; 164us; 16496us; 165us; 16496us; 166us; 16496us; 167us; 16496us; 168us; 16496us; 169us; 16496us; 170us; 16496us; 171us; 16496us; 172us; 16496us; 173us; 16496us; 174us; 16496us; 176us; 16496us; 177us; 16496us; 179us; 16496us; 180us; 16496us; 183us; 16496us; 188us; 16496us; 189us; 16496us; 190us; 16496us; 191us; 16496us; 192us; 114us; 0us; 16453us; 3us; 32768us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 6us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 4us; 32768us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 140us; 156us; 4us; 16496us; 72us; 199us; 87us; 9us; 100us; 664us; 192us; 114us; 0us; 16456us; 0us; 16457us; 0us; 16458us; 3us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 11us; 32768us; 31us; 672us; 35us; 1727us; 36us; 1730us; 37us; 1732us; 38us; 1735us; 39us; 685us; 107us; 1731us; 119us; 653us; 135us; 670us; 147us; 1736us; 159us; 666us; 0us; 16459us; 1us; 16459us; 125us; 928us; 0us; 16460us; 67us; 16460us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 933us; 0us; 16461us; 1us; 16496us; 72us; 199us; 1us; 16558us; 129us; 326us; 0us; 16462us; 0us; 16463us; 1us; 32768us; 69us; 133us; 5us; 32768us; 21us; 142us; 44us; 1629us; 54us; 1717us; 134us; 1718us; 188us; 1628us; 0us; 16464us; 2us; 16495us; 10us; 926us; 192us; 913us; 0us; 16465us; 0us; 16466us; 8us; 16496us; 44us; 1629us; 55us; 1719us; 72us; 199us; 87us; 9us; 100us; 170us; 134us; 1720us; 188us; 1628us; 192us; 91us; 4us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 76us; 1631us; 0us; 16467us; 1us; 16468us; 76us; 1631us; 6us; 16496us; 54us; 1717us; 72us; 199us; 87us; 9us; 100us; 664us; 134us; 1718us; 192us; 115us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16469us; 0us; 16470us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16471us; 0us; 16472us; 0us; 16473us; 0us; 16474us; 1us; 16475us; 76us; 1631us; 81us; 16446us; 23us; 16496us; 24us; 16496us; 28us; 16496us; 29us; 16496us; 30us; 16496us; 31us; 16496us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 39us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 44us; 16496us; 61us; 16496us; 70us; 16496us; 71us; 16496us; 72us; 199us; 73us; 16496us; 74us; 16496us; 85us; 16496us; 87us; 9us; 88us; 16496us; 89us; 16496us; 91us; 16496us; 97us; 16496us; 99us; 16496us; 100us; 664us; 105us; 16496us; 106us; 16496us; 107us; 16496us; 113us; 16496us; 114us; 16496us; 115us; 16496us; 117us; 16496us; 119us; 16496us; 120us; 16496us; 121us; 16496us; 122us; 16496us; 123us; 16496us; 124us; 16496us; 128us; 16496us; 131us; 16496us; 132us; 16496us; 134us; 16496us; 135us; 16496us; 143us; 16496us; 144us; 16496us; 145us; 16496us; 147us; 16496us; 151us; 16496us; 152us; 16496us; 155us; 16496us; 156us; 16496us; 159us; 16496us; 160us; 16496us; 161us; 16496us; 162us; 16496us; 163us; 16496us; 164us; 16496us; 165us; 16496us; 166us; 16496us; 167us; 16496us; 168us; 16496us; 169us; 16496us; 170us; 16496us; 171us; 16496us; 172us; 16496us; 173us; 16496us; 174us; 16496us; 176us; 16496us; 177us; 16496us; 179us; 16496us; 180us; 16496us; 183us; 16496us; 188us; 16496us; 189us; 16496us; 190us; 16496us; 191us; 16496us; 192us; 116us; 3us; 32768us; 10us; 926us; 140us; 154us; 192us; 913us; 0us; 16476us; 0us; 16477us; 0us; 16478us; 6us; 16496us; 18us; 16580us; 19us; 16580us; 21us; 366us; 72us; 199us; 140us; 16580us; 192us; 372us; 3us; 32768us; 18us; 1700us; 19us; 1701us; 140us; 1702us; 0us; 16480us; 0us; 16481us; 0us; 16482us; 3us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 8us; 32768us; 35us; 1727us; 36us; 1730us; 37us; 1732us; 38us; 1735us; 107us; 1731us; 108us; 172us; 119us; 653us; 147us; 1736us; 2us; 32768us; 69us; 1722us; 77us; 1721us; 5us; 32768us; 21us; 138us; 44us; 1629us; 55us; 1719us; 134us; 1720us; 188us; 1628us; 0us; 16483us; 0us; 16484us; 0us; 16485us; 0us; 16486us; 2us; 32768us; 44us; 1629us; 188us; 1628us; 1us; 16487us; 76us; 1631us; 1us; 16496us; 72us; 199us; 1us; 17365us; 109us; 1711us; 1us; 17367us; 116us; 1712us; 3us; 16610us; 41us; 459us; 42us; 458us; 43us; 460us; 3us; 32768us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 2us; 16672us; 32us; 1726us; 157us; 17383us; 1us; 32768us; 77us; 179us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 16489us; 69us; 182us; 0us; 16488us; 67us; 32768us; 21us; 184us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 25us; 16490us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 28us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 0us; 16491us; 3us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 0us; 16492us; 15us; 16437us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 72us; 199us; 87us; 9us; 100us; 170us; 107us; 16496us; 108us; 16496us; 119us; 16496us; 147us; 16496us; 192us; 87us; 1us; 32768us; 140us; 191us; 3us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 0us; 16493us; 15us; 16437us; 35us; 16496us; 36us; 16496us; 37us; 16496us; 38us; 16496us; 41us; 16496us; 42us; 16496us; 43us; 16496us; 72us; 199us; 87us; 9us; 100us; 170us; 107us; 16496us; 108us; 16496us; 119us; 16496us; 147us; 16496us; 192us; 87us; 1us; 32768us; 140us; 195us; 0us; 16494us; 0us; 16495us; 1us; 16497us; 72us; 199us; 0us; 16498us; 14us; 32768us; 10us; 926us; 15us; 1758us; 35us; 1728us; 36us; 1730us; 37us; 1733us; 38us; 1735us; 44us; 1629us; 59us; 1756us; 93us; 1757us; 107us; 1731us; 147us; 1736us; 160us; 230us; 188us; 1628us; 192us; 204us; 2us; 17359us; 20us; 1696us; 83us; 1697us; 8us; 32768us; 10us; 926us; 15us; 1758us; 35us; 1754us; 37us; 1755us; 53us; 202us; 59us; 1756us; 93us; 1757us; 192us; 913us; 1us; 17357us; 20us; 1708us; 0us; 16499us; 1us; 16873us; 53us; 205us; 1us; 17357us; 20us; 1708us; 0us; 16500us; 0us; 16501us; 0us; 16502us; 0us; 16503us; 9us; 17358us; 35us; 1727us; 36us; 1730us; 37us; 1732us; 38us; 1735us; 44us; 1629us; 107us; 1731us; 147us; 1736us; 160us; 230us; 188us; 1628us; 0us; 16504us; 3us; 17381us; 33us; 1725us; 34us; 1724us; 76us; 1631us; 26us; 17115us; 71us; 1279us; 73us; 1313us; 91us; 1285us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16505us; 3us; 32768us; 21us; 219us; 44us; 1629us; 188us; 1628us; 3us; 17381us; 33us; 1725us; 34us; 1724us; 76us; 1631us; 26us; 17115us; 71us; 1279us; 73us; 1313us; 91us; 1285us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16506us; 2us; 32768us; 44us; 1629us; 188us; 1628us; 4us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 76us; 1631us; 2us; 17381us; 33us; 1725us; 34us; 1724us; 26us; 17115us; 71us; 1279us; 73us; 1313us; 91us; 1285us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16507us; 1us; 32768us; 77us; 225us; 0us; 16508us; 1us; 32768us; 77us; 227us; 0us; 16509us; 1us; 17284us; 77us; 229us; 0us; 16510us; 1us; 32768us; 77us; 231us; 0us; 16511us; 1us; 16496us; 72us; 199us; 0us; 16512us; 1us; 16514us; 129us; 235us; 1us; 16496us; 72us; 199us; 0us; 16513us; 2us; 16622us; 69us; 238us; 86us; 468us; 7us; 16496us; 21us; 241us; 47us; 527us; 54us; 529us; 72us; 199us; 110us; 528us; 134us; 266us; 149us; 252us; 0us; 16515us; 0us; 16516us; 12us; 16496us; 10us; 16534us; 14us; 16534us; 15us; 16534us; 16us; 16534us; 21us; 262us; 47us; 527us; 54us; 529us; 72us; 199us; 110us; 528us; 134us; 266us; 149us; 252us; 192us; 16534us; 1us; 17357us; 20us; 1708us; 5us; 16496us; 14us; 16534us; 15us; 16534us; 16us; 16534us; 72us; 199us; 86us; 16534us; 1us; 16622us; 86us; 468us; 3us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 1us; 16622us; 86us; 468us; 0us; 16517us; 1us; 16622us; 86us; 468us; 0us; 16518us; 0us; 16519us; 0us; 16520us; 1us; 32768us; 118us; 253us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16521us; 0us; 16522us; 5us; 16496us; 10us; 16534us; 21us; 270us; 72us; 199us; 140us; 16534us; 192us; 260us; 3us; 32768us; 10us; 926us; 140us; 258us; 192us; 913us; 0us; 16523us; 0us; 16524us; 1us; 32768us; 140us; 261us; 0us; 16525us; 6us; 16496us; 10us; 16534us; 14us; 16534us; 15us; 16534us; 16us; 16534us; 72us; 199us; 192us; 16534us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16526us; 0us; 16527us; 5us; 16496us; 10us; 16534us; 21us; 270us; 72us; 199us; 140us; 16534us; 192us; 16534us; 3us; 32768us; 10us; 926us; 140us; 268us; 192us; 913us; 0us; 16528us; 0us; 16529us; 6us; 16496us; 10us; 16534us; 14us; 16534us; 15us; 16534us; 16us; 16534us; 72us; 199us; 192us; 16534us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16530us; 0us; 16531us; 0us; 16532us; 0us; 16533us; 2us; 17359us; 20us; 1696us; 83us; 1697us; 10us; 16496us; 10us; 16534us; 14us; 16534us; 15us; 16534us; 16us; 16534us; 18us; 16534us; 19us; 16534us; 72us; 199us; 86us; 16534us; 140us; 16534us; 192us; 16534us; 0us; 16535us; 5us; 32768us; 35us; 1727us; 36us; 1730us; 46us; 281us; 107us; 1731us; 108us; 316us; 10us; 32768us; 29us; 676us; 31us; 672us; 35us; 1727us; 36us; 1730us; 39us; 685us; 46us; 281us; 107us; 1731us; 108us; 435us; 135us; 670us; 159us; 666us; 0us; 16536us; 0us; 16537us; 0us; 16538us; 0us; 16539us; 0us; 16540us; 1us; 16541us; 46us; 287us; 0us; 16542us; 3us; 32768us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 0us; 16544us; 3us; 32768us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 2us; 32768us; 19us; 292us; 192us; 293us; 0us; 16545us; 0us; 16546us; 1us; 16547us; 96us; 295us; 3us; 32768us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 0us; 16548us; 3us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 3us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 10us; 32768us; 13us; 531us; 45us; 279us; 46us; 282us; 48us; 286us; 49us; 283us; 50us; 284us; 52us; 312us; 108us; 314us; 110us; 530us; 117us; 320us; 42us; 32768us; 13us; 531us; 44us; 1629us; 45us; 279us; 46us; 282us; 48us; 286us; 49us; 283us; 50us; 284us; 52us; 312us; 56us; 602us; 66us; 1523us; 73us; 518us; 87us; 1555us; 90us; 1622us; 91us; 515us; 105us; 1568us; 108us; 314us; 110us; 530us; 112us; 1566us; 117us; 320us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 17365us; 109us; 1711us; 3us; 16610us; 41us; 459us; 42us; 458us; 43us; 460us; 3us; 32768us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 2us; 16672us; 32us; 1726us; 157us; 17383us; 1us; 32768us; 77us; 306us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 2us; 16543us; 25us; 290us; 86us; 288us; 1us; 16489us; 69us; 182us; 0us; 16549us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 6us; 16550us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 6us; 16551us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 1us; 17367us; 116us; 1712us; 0us; 16552us; 1us; 17367us; 116us; 1712us; 0us; 16553us; 1us; 16496us; 72us; 199us; 0us; 16554us; 1us; 32768us; 77us; 321us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16555us; 3us; 16610us; 41us; 459us; 42us; 458us; 43us; 460us; 1us; 16675us; 84us; 561us; 0us; 16556us; 1us; 16496us; 72us; 199us; 1us; 16558us; 129us; 326us; 0us; 16557us; 40us; 16496us; 10us; 16559us; 13us; 16559us; 14us; 16559us; 15us; 16559us; 16us; 16559us; 18us; 16559us; 19us; 16559us; 20us; 16559us; 29us; 16559us; 31us; 16559us; 35us; 16559us; 36us; 16559us; 37us; 16559us; 38us; 16559us; 39us; 16559us; 45us; 16559us; 46us; 16559us; 48us; 16559us; 49us; 16559us; 50us; 16559us; 52us; 16559us; 67us; 16559us; 69us; 330us; 72us; 199us; 83us; 16559us; 86us; 157us; 87us; 16559us; 100us; 16559us; 107us; 16559us; 108us; 16559us; 110us; 16559us; 117us; 16559us; 119us; 16559us; 129us; 16559us; 135us; 16559us; 140us; 16559us; 147us; 16559us; 148us; 16559us; 159us; 16559us; 192us; 16559us; 6us; 16496us; 21us; 340us; 47us; 527us; 54us; 529us; 72us; 199us; 110us; 528us; 149us; 352us; 0us; 16560us; 0us; 16561us; 3us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 2us; 17381us; 33us; 1725us; 34us; 1724us; 1us; 32768us; 91us; 780us; 1us; 16627us; 130us; 479us; 1us; 32768us; 69us; 338us; 6us; 16496us; 21us; 340us; 47us; 527us; 54us; 529us; 72us; 199us; 110us; 528us; 149us; 352us; 0us; 16562us; 11us; 16496us; 10us; 16580us; 14us; 16580us; 15us; 16580us; 16us; 16580us; 21us; 362us; 47us; 527us; 54us; 529us; 72us; 199us; 110us; 528us; 149us; 352us; 192us; 372us; 1us; 17357us; 20us; 1708us; 7us; 16496us; 10us; 16580us; 14us; 16580us; 15us; 16580us; 16us; 16580us; 72us; 199us; 86us; 16580us; 192us; 372us; 1us; 16620us; 86us; 465us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 1us; 16620us; 86us; 465us; 0us; 16563us; 0us; 16564us; 1us; 16620us; 86us; 465us; 0us; 16565us; 0us; 16566us; 0us; 16567us; 1us; 32768us; 118us; 353us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16568us; 0us; 16569us; 5us; 16496us; 10us; 16580us; 21us; 366us; 72us; 199us; 140us; 16580us; 192us; 360us; 3us; 32768us; 10us; 926us; 140us; 358us; 192us; 913us; 0us; 16570us; 0us; 16571us; 4us; 16496us; 10us; 16580us; 72us; 199us; 140us; 361us; 192us; 372us; 0us; 16572us; 6us; 16496us; 10us; 16580us; 14us; 16580us; 15us; 16580us; 16us; 16580us; 72us; 199us; 192us; 372us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16573us; 0us; 16574us; 6us; 16496us; 10us; 16580us; 14us; 16580us; 15us; 16580us; 16us; 16580us; 72us; 199us; 192us; 372us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16575us; 0us; 16576us; 0us; 16577us; 0us; 16578us; 10us; 16496us; 10us; 16580us; 14us; 16580us; 15us; 16580us; 16us; 16580us; 18us; 16580us; 19us; 16580us; 72us; 199us; 86us; 16580us; 140us; 16580us; 192us; 372us; 0us; 16579us; 2us; 17359us; 20us; 1696us; 83us; 1697us; 10us; 16496us; 10us; 16580us; 14us; 16580us; 15us; 16580us; 16us; 16580us; 18us; 16580us; 19us; 16580us; 72us; 199us; 86us; 16580us; 140us; 16580us; 192us; 372us; 0us; 16581us; 1us; 17365us; 109us; 1711us; 0us; 16582us; 1us; 17365us; 109us; 1711us; 2us; 32768us; 19us; 381us; 192us; 382us; 0us; 16583us; 0us; 16584us; 1us; 16585us; 129us; 384us; 1us; 17365us; 109us; 1711us; 0us; 16586us; 1us; 16496us; 72us; 199us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 17177us; 77us; 1448us; 1us; 32768us; 69us; 390us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16587us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 17177us; 77us; 1448us; 3us; 32768us; 25us; 379us; 69us; 395us; 86us; 377us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16588us; 0us; 16589us; 1us; 16590us; 46us; 399us; 0us; 16591us; 3us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 3us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 15us; 32768us; 13us; 531us; 29us; 676us; 31us; 672us; 39us; 685us; 45us; 280us; 46us; 282us; 48us; 398us; 49us; 283us; 50us; 284us; 52us; 471us; 108us; 435us; 110us; 530us; 117us; 427us; 135us; 670us; 159us; 666us; 47us; 32768us; 13us; 531us; 29us; 676us; 31us; 672us; 39us; 685us; 44us; 1629us; 45us; 280us; 46us; 282us; 48us; 398us; 49us; 283us; 50us; 284us; 52us; 471us; 56us; 602us; 66us; 1523us; 73us; 518us; 87us; 1555us; 90us; 1622us; 91us; 515us; 105us; 1568us; 108us; 435us; 110us; 530us; 112us; 1566us; 117us; 427us; 120us; 1567us; 135us; 670us; 145us; 1565us; 159us; 666us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16592us; 0us; 16593us; 2us; 17365us; 108us; 441us; 109us; 1711us; 1us; 17353us; 18us; 1706us; 0us; 16594us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 7us; 16618us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 86us; 462us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 0us; 16595us; 1us; 17365us; 109us; 1711us; 3us; 32768us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 2us; 16672us; 32us; 1726us; 157us; 17383us; 1us; 32768us; 77us; 416us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 2us; 16543us; 25us; 290us; 86us; 288us; 1us; 17353us; 18us; 1706us; 0us; 16596us; 0us; 16597us; 1us; 17353us; 18us; 1706us; 0us; 16598us; 1us; 17353us; 18us; 1706us; 0us; 16599us; 1us; 17353us; 18us; 1706us; 0us; 16600us; 34us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 16627us; 130us; 479us; 1us; 32768us; 69us; 430us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 17353us; 18us; 1706us; 0us; 16601us; 1us; 16496us; 72us; 199us; 0us; 16602us; 1us; 17367us; 116us; 1712us; 3us; 16610us; 41us; 459us; 42us; 458us; 43us; 460us; 1us; 32768us; 188us; 1628us; 1us; 32768us; 77us; 439us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16603us; 1us; 17367us; 116us; 1712us; 3us; 16610us; 41us; 459us; 42us; 458us; 43us; 460us; 1us; 32768us; 188us; 1628us; 1us; 16605us; 77us; 449us; 1us; 32768us; 69us; 446us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 2us; 16543us; 25us; 290us; 86us; 288us; 0us; 16604us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16606us; 1us; 32768us; 76us; 452us; 3us; 32768us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 0us; 16607us; 0us; 16608us; 3us; 32768us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 0us; 16609us; 0us; 16611us; 0us; 16612us; 0us; 16613us; 0us; 16614us; 0us; 16615us; 2us; 16496us; 21us; 485us; 72us; 199us; 3us; 32768us; 18us; 1700us; 19us; 1701us; 140us; 1702us; 0us; 16617us; 6us; 16496us; 18us; 16580us; 19us; 16580us; 21us; 366us; 72us; 199us; 140us; 16580us; 192us; 372us; 3us; 32768us; 18us; 1700us; 19us; 1701us; 140us; 1702us; 0us; 16619us; 5us; 16496us; 18us; 16534us; 19us; 16534us; 21us; 270us; 72us; 199us; 140us; 16534us; 3us; 32768us; 18us; 1700us; 19us; 1701us; 140us; 1702us; 0us; 16621us; 36us; 32768us; 10us; 926us; 15us; 1758us; 35us; 1754us; 37us; 1755us; 44us; 1629us; 59us; 1756us; 66us; 1522us; 87us; 1555us; 90us; 1622us; 91us; 1509us; 93us; 1757us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 913us; 29us; 16630us; 33us; 1725us; 34us; 1724us; 71us; 17381us; 73us; 17381us; 91us; 17381us; 105us; 17381us; 120us; 17381us; 130us; 482us; 134us; 17381us; 145us; 17381us; 152us; 17381us; 162us; 17381us; 163us; 17381us; 164us; 17381us; 165us; 17381us; 166us; 17381us; 167us; 17381us; 168us; 17381us; 169us; 17381us; 170us; 17381us; 171us; 17381us; 172us; 17381us; 173us; 17381us; 174us; 17381us; 176us; 17381us; 177us; 17381us; 189us; 17381us; 190us; 17381us; 191us; 17381us; 0us; 16623us; 26us; 32768us; 71us; 1279us; 73us; 1313us; 91us; 1285us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 16630us; 130us; 482us; 0us; 16624us; 0us; 16625us; 0us; 16626us; 1us; 32768us; 188us; 1628us; 0us; 16628us; 0us; 16629us; 2us; 32768us; 151us; 484us; 188us; 1628us; 0us; 16631us; 0us; 16632us; 1us; 16496us; 72us; 199us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16633us; 0us; 16634us; 0us; 16635us; 2us; 17359us; 20us; 1696us; 83us; 1697us; 14us; 16496us; 10us; 16637us; 13us; 16637us; 14us; 16637us; 15us; 16637us; 16us; 16637us; 18us; 16637us; 19us; 16637us; 20us; 16637us; 58us; 16637us; 59us; 16637us; 60us; 16637us; 72us; 199us; 110us; 16637us; 140us; 16637us; 0us; 16636us; 3us; 32768us; 46us; 504us; 49us; 505us; 192us; 501us; 4us; 17365us; 46us; 504us; 49us; 505us; 109us; 1711us; 192us; 501us; 3us; 17365us; 108us; 441us; 109us; 1711us; 192us; 500us; 1us; 17353us; 18us; 1706us; 0us; 16638us; 1us; 17353us; 18us; 1706us; 0us; 16639us; 0us; 16640us; 1us; 17365us; 109us; 1711us; 1us; 17353us; 18us; 1706us; 0us; 16641us; 0us; 16642us; 0us; 16643us; 3us; 16616us; 41us; 459us; 42us; 458us; 43us; 460us; 32us; 32768us; 44us; 1629us; 56us; 602us; 66us; 1523us; 73us; 518us; 87us; 1555us; 90us; 1622us; 91us; 515us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 2us; 17202us; 76us; 1631us; 152us; 509us; 1us; 32768us; 190us; 510us; 2us; 32768us; 10us; 926us; 192us; 913us; 0us; 16644us; 0us; 16645us; 0us; 16646us; 0us; 16647us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 524us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1569us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 16648us; 2us; 16496us; 72us; 199us; 192us; 522us; 5us; 32768us; 10us; 926us; 58us; 1740us; 59us; 1737us; 60us; 1739us; 192us; 913us; 0us; 16649us; 0us; 16650us; 3us; 32768us; 58us; 1740us; 59us; 1737us; 60us; 1739us; 0us; 16651us; 29us; 32768us; 44us; 1629us; 66us; 1558us; 87us; 1555us; 90us; 1622us; 91us; 1559us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 16785us; 87us; 1723us; 0us; 16652us; 0us; 16653us; 0us; 16654us; 0us; 16655us; 0us; 16656us; 0us; 16657us; 5us; 32768us; 44us; 1629us; 90us; 1622us; 91us; 538us; 185us; 1625us; 188us; 1628us; 3us; 16658us; 32us; 1726us; 76us; 1631us; 157us; 17383us; 2us; 32768us; 44us; 1629us; 188us; 1628us; 1us; 16659us; 76us; 1631us; 0us; 16660us; 0us; 16661us; 1us; 16496us; 72us; 199us; 4us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 96us; 543us; 0us; 16662us; 2us; 16675us; 84us; 561us; 96us; 543us; 1us; 16668us; 96us; 544us; 1us; 16496us; 72us; 199us; 2us; 16496us; 72us; 199us; 141us; 553us; 0us; 16663us; 0us; 16664us; 2us; 32768us; 90us; 1622us; 185us; 1625us; 0us; 16665us; 1us; 32768us; 157us; 550us; 1us; 16496us; 72us; 199us; 1us; 32768us; 158us; 552us; 0us; 16666us; 0us; 16667us; 1us; 32768us; 157us; 555us; 3us; 16496us; 72us; 199us; 84us; 16669us; 158us; 16669us; 1us; 16675us; 84us; 561us; 1us; 32768us; 158us; 558us; 0us; 16670us; 0us; 16671us; 27us; 16673us; 10us; 16811us; 15us; 16811us; 20us; 16811us; 25us; 16811us; 35us; 16811us; 37us; 16811us; 56us; 16811us; 57us; 16811us; 58us; 16811us; 59us; 16811us; 60us; 16811us; 64us; 16811us; 69us; 16811us; 77us; 16811us; 78us; 16811us; 83us; 16811us; 84us; 16811us; 86us; 16811us; 88us; 16811us; 92us; 16811us; 93us; 16811us; 94us; 16811us; 96us; 16811us; 97us; 16811us; 125us; 16811us; 130us; 16811us; 192us; 16811us; 4us; 32768us; 50us; 568us; 90us; 1622us; 91us; 583us; 185us; 1625us; 1us; 16676us; 129us; 565us; 1us; 17174us; 129us; 565us; 1us; 17176us; 129us; 565us; 4us; 32768us; 50us; 568us; 90us; 1622us; 91us; 583us; 185us; 1625us; 0us; 16677us; 0us; 16678us; 2us; 32768us; 90us; 1622us; 185us; 1625us; 1us; 32768us; 77us; 570us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16679us; 2us; 32768us; 77us; 575us; 79us; 573us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16680us; 5us; 32768us; 54us; 576us; 91us; 580us; 145us; 579us; 149us; 590us; 188us; 577us; 0us; 16681us; 3us; 16688us; 32us; 1578us; 54us; 578us; 157us; 1580us; 0us; 16682us; 0us; 16683us; 1us; 16496us; 72us; 199us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 16684us; 2us; 32768us; 90us; 1622us; 185us; 1625us; 4us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 101us; 593us; 1us; 32768us; 77us; 586us; 1us; 32768us; 91us; 587us; 1us; 16496us; 72us; 199us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 16685us; 2us; 32768us; 32us; 1578us; 157us; 1580us; 0us; 16686us; 0us; 16687us; 2us; 32768us; 90us; 1622us; 185us; 1625us; 0us; 16689us; 0us; 16690us; 1us; 16496us; 72us; 199us; 0us; 16691us; 1us; 32768us; 56us; 602us; 1us; 16496us; 72us; 199us; 0us; 16692us; 2us; 16693us; 20us; 1708us; 56us; 17357us; 0us; 16694us; 1us; 16696us; 56us; 602us; 1us; 16496us; 72us; 199us; 0us; 16695us; 3us; 16610us; 41us; 459us; 42us; 458us; 43us; 460us; 3us; 32768us; 91us; 620us; 99us; 1639us; 188us; 1628us; 4us; 17357us; 20us; 1708us; 69us; 616us; 77us; 613us; 118us; 610us; 0us; 16697us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 73us; 518us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 17357us; 20us; 1708us; 0us; 16698us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 17357us; 20us; 1708us; 0us; 16699us; 18us; 32768us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 17357us; 20us; 1708us; 0us; 16700us; 0us; 16701us; 29us; 32768us; 56us; 1674us; 61us; 1656us; 62us; 1654us; 69us; 1658us; 70us; 623us; 74us; 1662us; 78us; 621us; 82us; 1666us; 88us; 1663us; 89us; 1664us; 95us; 1657us; 101us; 1659us; 141us; 1669us; 142us; 1665us; 152us; 1671us; 155us; 1668us; 157us; 1660us; 158us; 1661us; 178us; 1667us; 179us; 1655us; 180us; 1652us; 181us; 1651us; 182us; 1653us; 183us; 1646us; 184us; 1650us; 185us; 1649us; 186us; 1648us; 187us; 1647us; 192us; 1637us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 16702us; 1us; 32768us; 57us; 624us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 16703us; 4us; 17284us; 20us; 1708us; 56us; 17357us; 69us; 628us; 118us; 632us; 0us; 16704us; 18us; 32768us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 17357us; 20us; 1708us; 45us; 16705us; 10us; 16708us; 13us; 16708us; 14us; 16708us; 15us; 16708us; 16us; 16708us; 18us; 16708us; 19us; 16708us; 20us; 16708us; 29us; 16708us; 31us; 16708us; 35us; 16708us; 36us; 16708us; 37us; 16708us; 38us; 16708us; 39us; 16708us; 41us; 16708us; 42us; 16708us; 43us; 16708us; 45us; 16708us; 46us; 16708us; 48us; 16708us; 49us; 16708us; 50us; 16708us; 52us; 16708us; 67us; 16708us; 72us; 16708us; 83us; 16708us; 86us; 16708us; 87us; 16708us; 92us; 16708us; 93us; 16708us; 94us; 16708us; 100us; 16708us; 107us; 16708us; 108us; 16708us; 110us; 16708us; 117us; 16708us; 119us; 16708us; 129us; 16708us; 135us; 16708us; 140us; 16708us; 147us; 16708us; 148us; 16708us; 159us; 16708us; 192us; 16708us; 0us; 16706us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 73us; 518us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16707us; 0us; 16709us; 7us; 16711us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 95us; 636us; 185us; 1625us; 188us; 1628us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16710us; 2us; 17359us; 20us; 1696us; 83us; 1697us; 6us; 16496us; 10us; 17358us; 58us; 17358us; 59us; 17358us; 60us; 17358us; 72us; 199us; 192us; 17358us; 0us; 16712us; 0us; 16713us; 1us; 17367us; 116us; 1712us; 0us; 16714us; 3us; 16610us; 41us; 459us; 42us; 458us; 43us; 460us; 1us; 32768us; 188us; 1628us; 1us; 32768us; 77us; 647us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16715us; 1us; 16620us; 86us; 465us; 0us; 16716us; 1us; 16622us; 86us; 468us; 0us; 16717us; 0us; 16718us; 1us; 16496us; 72us; 199us; 3us; 16610us; 41us; 459us; 42us; 458us; 43us; 460us; 1us; 32768us; 188us; 1628us; 1us; 16722us; 69us; 662us; 0us; 16719us; 1us; 16720us; 118us; 660us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 73us; 518us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16721us; 2us; 32768us; 44us; 1629us; 188us; 1628us; 1us; 16723us; 76us; 1631us; 2us; 32768us; 44us; 1629us; 188us; 1628us; 1us; 16724us; 76us; 1631us; 1us; 17361us; 102us; 1710us; 2us; 16496us; 72us; 199us; 192us; 720us; 0us; 16725us; 0us; 16726us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16727us; 1us; 17361us; 102us; 1710us; 2us; 16496us; 72us; 199us; 192us; 720us; 3us; 32768us; 10us; 926us; 18us; 683us; 192us; 913us; 0us; 16728us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 3us; 32768us; 10us; 926us; 18us; 683us; 192us; 913us; 0us; 16729us; 0us; 16730us; 0us; 16731us; 0us; 16732us; 0us; 16733us; 0us; 16734us; 0us; 16735us; 1us; 16496us; 72us; 199us; 3us; 16610us; 41us; 459us; 42us; 458us; 43us; 460us; 1us; 32768us; 188us; 1628us; 2us; 17381us; 33us; 1725us; 34us; 1724us; 1us; 32768us; 91us; 690us; 4us; 16496us; 72us; 199us; 92us; 16739us; 93us; 16739us; 94us; 16739us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 16736us; 1us; 16737us; 96us; 695us; 1us; 16738us; 96us; 697us; 1us; 16496us; 72us; 199us; 0us; 16740us; 1us; 16496us; 72us; 199us; 0us; 16741us; 3us; 32768us; 40us; 709us; 44us; 1629us; 188us; 1628us; 6us; 16742us; 33us; 1725us; 34us; 1724us; 70us; 17381us; 88us; 708us; 95us; 707us; 188us; 1628us; 0us; 16743us; 1us; 16744us; 76us; 1631us; 5us; 16749us; 33us; 1725us; 34us; 1724us; 70us; 17381us; 88us; 708us; 95us; 707us; 1us; 32768us; 70us; 705us; 1us; 32768us; 57us; 706us; 0us; 16745us; 0us; 16746us; 0us; 16747us; 1us; 32768us; 95us; 711us; 1us; 16750us; 95us; 711us; 0us; 16748us; 3us; 32768us; 40us; 710us; 44us; 1629us; 188us; 1628us; 1us; 16753us; 129us; 715us; 0us; 16751us; 2us; 16496us; 72us; 199us; 192us; 720us; 1us; 16753us; 129us; 715us; 0us; 16752us; 1us; 17365us; 109us; 1711us; 0us; 16754us; 0us; 16755us; 1us; 17367us; 116us; 1712us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 17177us; 77us; 1448us; 3us; 32768us; 10us; 926us; 69us; 725us; 192us; 913us; 68us; 32768us; 21us; 729us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 727us; 0us; 16756us; 0us; 16757us; 0us; 16758us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16759us; 0us; 16760us; 0us; 16761us; 0us; 16764us; 1us; 16762us; 84us; 737us; 0us; 16763us; 2us; 32768us; 90us; 1622us; 185us; 1625us; 2us; 32768us; 69us; 739us; 129us; 741us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16765us; 2us; 32768us; 90us; 1622us; 185us; 1625us; 0us; 16766us; 0us; 16767us; 2us; 32768us; 54us; 747us; 77us; 745us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16768us; 0us; 16769us; 0us; 16770us; 0us; 16771us; 0us; 16772us; 0us; 16773us; 0us; 16774us; 0us; 16775us; 0us; 16776us; 0us; 16777us; 0us; 16778us; 0us; 16779us; 0us; 16780us; 0us; 16781us; 0us; 16782us; 1us; 16782us; 141us; 824us; 0us; 16783us; 0us; 16784us; 0us; 16785us; 0us; 16786us; 1us; 16787us; 32us; 767us; 1us; 32768us; 157us; 1597us; 0us; 16788us; 5us; 16789us; 56us; 798us; 78us; 799us; 88us; 806us; 96us; 804us; 130us; 796us; 0us; 16790us; 1us; 32768us; 188us; 1628us; 0us; 16791us; 1us; 16793us; 77us; 775us; 2us; 16794us; 77us; 775us; 96us; 778us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16792us; 3us; 32768us; 72us; 199us; 74us; 771us; 188us; 1628us; 3us; 32768us; 72us; 199us; 74us; 771us; 188us; 1628us; 0us; 16795us; 8us; 32768us; 10us; 926us; 72us; 199us; 74us; 771us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 188us; 1628us; 192us; 785us; 5us; 32768us; 10us; 926us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 192us; 913us; 0us; 16796us; 0us; 16797us; 0us; 16798us; 3us; 16873us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 16799us; 0us; 16800us; 3us; 16802us; 78us; 799us; 88us; 806us; 96us; 804us; 1us; 16803us; 78us; 799us; 2us; 16807us; 78us; 799us; 88us; 806us; 2us; 16808us; 78us; 799us; 88us; 806us; 1us; 16809us; 78us; 799us; 1us; 16810us; 78us; 799us; 6us; 32768us; 56us; 798us; 69us; 1002us; 78us; 799us; 88us; 806us; 96us; 804us; 130us; 796us; 6us; 32768us; 56us; 798us; 69us; 1008us; 78us; 799us; 88us; 806us; 96us; 804us; 130us; 796us; 1us; 32768us; 188us; 1628us; 0us; 16801us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 16804us; 96us; 803us; 0us; 16805us; 0us; 16806us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 29us; 16674us; 10us; 16828us; 15us; 16828us; 20us; 16828us; 25us; 16828us; 32us; 1726us; 35us; 16828us; 37us; 16828us; 56us; 16828us; 57us; 16828us; 58us; 16828us; 59us; 16828us; 60us; 16828us; 64us; 16828us; 69us; 16828us; 77us; 16828us; 78us; 16828us; 83us; 16828us; 84us; 16828us; 86us; 16828us; 88us; 16828us; 92us; 16828us; 93us; 16828us; 94us; 16828us; 96us; 16828us; 97us; 16828us; 125us; 16828us; 130us; 16828us; 157us; 17383us; 192us; 16828us; 36us; 32768us; 33us; 810us; 34us; 812us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16812us; 34us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16813us; 34us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16814us; 29us; 32768us; 44us; 1629us; 66us; 1558us; 87us; 1555us; 90us; 1622us; 91us; 1559us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 16815us; 76us; 1572us; 0us; 16816us; 36us; 16820us; 33us; 821us; 34us; 819us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16817us; 34us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16818us; 34us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16819us; 0us; 16821us; 1us; 32768us; 164us; 825us; 0us; 16822us; 2us; 32768us; 44us; 1629us; 188us; 1628us; 3us; 32768us; 58us; 1740us; 59us; 1737us; 60us; 1739us; 0us; 16823us; 36us; 16855us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 32768us; 57us; 831us; 0us; 16824us; 36us; 16855us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 32768us; 64us; 834us; 0us; 16825us; 0us; 16826us; 1us; 32768us; 188us; 1628us; 1us; 17308us; 188us; 1628us; 0us; 16827us; 0us; 16828us; 0us; 16829us; 0us; 16830us; 0us; 16831us; 0us; 16832us; 62us; 16838us; 10us; 926us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 56us; 1674us; 61us; 1656us; 62us; 1654us; 66us; 835us; 69us; 1658us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 837us; 81us; 814us; 82us; 1666us; 88us; 1663us; 89us; 1664us; 91us; 844us; 95us; 1657us; 99us; 1639us; 101us; 1659us; 105us; 842us; 120us; 841us; 141us; 1669us; 142us; 1665us; 145us; 843us; 152us; 1273us; 155us; 1668us; 157us; 1660us; 158us; 1661us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 178us; 1667us; 179us; 1655us; 180us; 1652us; 181us; 1651us; 182us; 1653us; 183us; 1646us; 184us; 1650us; 185us; 1649us; 186us; 1648us; 187us; 1647us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 848us; 5us; 32768us; 10us; 926us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 192us; 913us; 0us; 16833us; 0us; 16834us; 3us; 16873us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 2us; 16835us; 32us; 17288us; 157us; 17288us; 0us; 16836us; 6us; 16837us; 56us; 865us; 77us; 868us; 78us; 871us; 88us; 876us; 96us; 874us; 130us; 863us; 4us; 16840us; 77us; 868us; 78us; 871us; 88us; 876us; 96us; 874us; 3us; 16844us; 77us; 868us; 78us; 871us; 88us; 876us; 2us; 16845us; 77us; 868us; 78us; 871us; 3us; 16847us; 77us; 868us; 78us; 871us; 88us; 876us; 3us; 16848us; 77us; 868us; 78us; 871us; 88us; 876us; 2us; 16849us; 77us; 868us; 78us; 871us; 2us; 16850us; 77us; 868us; 78us; 871us; 6us; 16854us; 56us; 865us; 77us; 868us; 78us; 871us; 88us; 876us; 96us; 874us; 130us; 863us; 8us; 17359us; 20us; 1696us; 56us; 865us; 77us; 868us; 78us; 871us; 83us; 1697us; 88us; 876us; 96us; 874us; 130us; 863us; 15us; 32768us; 10us; 926us; 15us; 1758us; 35us; 1754us; 37us; 1755us; 56us; 865us; 59us; 1756us; 69us; 1335us; 77us; 868us; 78us; 871us; 88us; 876us; 93us; 1757us; 96us; 874us; 125us; 1331us; 130us; 863us; 192us; 918us; 7us; 16990us; 56us; 865us; 77us; 868us; 78us; 871us; 84us; 1135us; 88us; 876us; 96us; 874us; 130us; 863us; 1us; 32768us; 188us; 1628us; 0us; 16839us; 36us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 16841us; 96us; 873us; 1us; 16842us; 88us; 875us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16843us; 36us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 36us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16846us; 36us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 36us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 36us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 36us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16851us; 2us; 17359us; 20us; 1696us; 83us; 1697us; 0us; 16852us; 2us; 17358us; 44us; 1629us; 188us; 1628us; 0us; 16853us; 2us; 32768us; 69us; 883us; 76us; 1631us; 36us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16856us; 36us; 16855us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16857us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16858us; 0us; 16859us; 0us; 16860us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 3us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 0us; 16861us; 25us; 16862us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 1us; 16864us; 17us; 897us; 0us; 16863us; 1us; 16866us; 77us; 899us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16865us; 29us; 16869us; 20us; 1696us; 27us; 908us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 83us; 1697us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 103us; 906us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 30us; 16869us; 20us; 1696us; 27us; 908us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 83us; 1697us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 103us; 906us; 126us; 1072us; 141us; 1253us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 30us; 16869us; 20us; 1696us; 27us; 908us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 83us; 1697us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 103us; 906us; 126us; 1072us; 141us; 1326us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 66us; 16868us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16867us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16870us; 1us; 32768us; 21us; 909us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 3us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 0us; 16871us; 69us; 16872us; 20us; 934us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 933us; 0us; 16873us; 2us; 16873us; 18us; 1716us; 136us; 1715us; 2us; 16873us; 18us; 1716us; 136us; 1715us; 2us; 16873us; 18us; 1716us; 136us; 1715us; 2us; 16873us; 29us; 1714us; 135us; 1713us; 2us; 16873us; 18us; 1716us; 136us; 1715us; 1us; 16873us; 57us; 1224us; 1us; 16873us; 57us; 1240us; 1us; 16873us; 153us; 1277us; 1us; 16873us; 64us; 1283us; 3us; 16873us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 3us; 16873us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 3us; 16873us; 58us; 1740us; 59us; 1737us; 60us; 1739us; 0us; 16874us; 1us; 32768us; 125us; 928us; 67us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 930us; 0us; 16875us; 0us; 16876us; 69us; 32768us; 20us; 934us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 933us; 0us; 16877us; 0us; 16878us; 68us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 936us; 0us; 16879us; 0us; 16880us; 0us; 16881us; 0us; 16882us; 0us; 16883us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 4us; 32768us; 10us; 926us; 25us; 1118us; 86us; 1116us; 192us; 913us; 0us; 16884us; 0us; 16885us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 5us; 32768us; 10us; 926us; 25us; 1118us; 86us; 1116us; 127us; 948us; 192us; 913us; 0us; 16886us; 0us; 16887us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16888us; 68us; 32768us; 10us; 926us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 913us; 29us; 32768us; 10us; 926us; 27us; 1141us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 103us; 1140us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 192us; 913us; 0us; 16889us; 0us; 16890us; 0us; 16891us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16892us; 58us; 16894us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 156us; 1001us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16893us; 67us; 32768us; 21us; 892us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16895us; 59us; 16897us; 21us; 892us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 156us; 1001us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16896us; 68us; 32768us; 10us; 926us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 914us; 29us; 32768us; 10us; 926us; 29us; 1714us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 135us; 1713us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 192us; 913us; 68us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 969us; 4us; 32768us; 10us; 926us; 18us; 1716us; 136us; 1715us; 192us; 913us; 0us; 16898us; 0us; 16899us; 2us; 32768us; 18us; 1716us; 136us; 1715us; 0us; 16900us; 0us; 16901us; 0us; 16902us; 0us; 16903us; 43us; 32768us; 10us; 926us; 15us; 1758us; 35us; 1754us; 37us; 1755us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 59us; 1756us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 93us; 1757us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 917us; 10us; 17357us; 10us; 926us; 15us; 1758us; 20us; 1708us; 29us; 1714us; 35us; 1754us; 37us; 1755us; 59us; 1756us; 93us; 1757us; 135us; 1713us; 192us; 913us; 74us; 32768us; 10us; 926us; 15us; 1758us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1754us; 37us; 1755us; 39us; 685us; 44us; 1218us; 59us; 1756us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 93us; 1757us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 915us; 9us; 32768us; 10us; 926us; 15us; 1758us; 18us; 1716us; 35us; 1754us; 37us; 1755us; 59us; 1756us; 93us; 1757us; 136us; 1715us; 192us; 913us; 0us; 16904us; 0us; 16905us; 0us; 16906us; 0us; 16907us; 0us; 16908us; 4us; 32768us; 10us; 926us; 29us; 1714us; 135us; 1713us; 192us; 913us; 69us; 32768us; 10us; 926us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 916us; 4us; 32768us; 10us; 926us; 18us; 1716us; 136us; 1715us; 192us; 913us; 0us; 16909us; 0us; 16910us; 0us; 16911us; 0us; 16912us; 0us; 16913us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 2us; 32768us; 18us; 1716us; 136us; 1715us; 0us; 16914us; 0us; 16915us; 0us; 16916us; 0us; 16917us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 25us; 16918us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 25us; 16919us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 32768us; 125us; 1004us; 1us; 17357us; 20us; 1708us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16920us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 3us; 32768us; 10us; 926us; 18us; 683us; 192us; 913us; 1us; 17357us; 20us; 1708us; 68us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1013us; 0us; 16921us; 0us; 16922us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 32768us; 125us; 1016us; 1us; 17357us; 20us; 1708us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16923us; 67us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 3us; 32768us; 10us; 926us; 18us; 683us; 192us; 913us; 0us; 16924us; 1us; 32768us; 97us; 1329us; 0us; 16925us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16926us; 25us; 16930us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 20us; 16933us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 20us; 16934us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 9us; 16935us; 61us; 1088us; 78us; 1086us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 180us; 1087us; 182us; 1090us; 185us; 1084us; 187us; 1091us; 20us; 16936us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 18us; 16937us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 18us; 16938us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 9us; 16939us; 61us; 1088us; 78us; 1086us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 180us; 1087us; 182us; 1090us; 185us; 1084us; 187us; 1091us; 9us; 16940us; 61us; 1088us; 78us; 1086us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 180us; 1087us; 182us; 1090us; 185us; 1084us; 187us; 1091us; 9us; 16941us; 61us; 1088us; 78us; 1086us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 180us; 1087us; 182us; 1090us; 185us; 1084us; 187us; 1091us; 9us; 16942us; 61us; 1088us; 78us; 1086us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 180us; 1087us; 182us; 1090us; 185us; 1084us; 187us; 1091us; 9us; 16943us; 61us; 1088us; 78us; 1086us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 180us; 1087us; 182us; 1090us; 185us; 1084us; 187us; 1091us; 9us; 16944us; 61us; 1088us; 78us; 1086us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 180us; 1087us; 182us; 1090us; 185us; 1084us; 187us; 1091us; 9us; 16945us; 61us; 1088us; 78us; 1086us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 180us; 1087us; 182us; 1090us; 185us; 1084us; 187us; 1091us; 1us; 16946us; 187us; 1091us; 8us; 16947us; 61us; 1088us; 78us; 1086us; 81us; 1061us; 95us; 1089us; 155us; 1085us; 180us; 1087us; 182us; 1090us; 187us; 1091us; 4us; 16948us; 95us; 1089us; 155us; 1085us; 182us; 1090us; 187us; 1091us; 4us; 16949us; 95us; 1089us; 155us; 1085us; 182us; 1090us; 187us; 1091us; 1us; 16950us; 187us; 1091us; 1us; 16951us; 187us; 1091us; 1us; 16952us; 187us; 1091us; 25us; 16989us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 25us; 16993us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 25us; 16997us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 29us; 32768us; 10us; 926us; 27us; 1141us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 103us; 1140us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 192us; 913us; 23us; 17002us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 23us; 17005us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 26us; 32768us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 141us; 1253us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 24us; 17050us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 24us; 17052us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 26us; 17107us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 141us; 1326us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 26us; 17103us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 141us; 1327us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 25us; 17104us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 27us; 32768us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 104us; 1419us; 126us; 1072us; 137us; 1420us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 25us; 17111us; 61us; 1088us; 62us; 1081us; 69us; 1079us; 78us; 1086us; 79us; 1063us; 80us; 1065us; 81us; 1061us; 82us; 1067us; 88us; 1076us; 89us; 1077us; 95us; 1089us; 96us; 1157us; 101us; 1075us; 126us; 1072us; 142us; 1073us; 155us; 1085us; 157us; 1082us; 158us; 1083us; 180us; 1087us; 181us; 1078us; 182us; 1090us; 184us; 1074us; 185us; 1084us; 186us; 1080us; 187us; 1091us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16927us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16928us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16929us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 16973us; 68us; 1069us; 67us; 32768us; 21us; 892us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16931us; 1us; 16932us; 96us; 1155us; 67us; 32768us; 15us; 1092us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1093us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1094us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1095us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1096us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1097us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1098us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1099us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1100us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1101us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1102us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1103us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1104us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1105us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1106us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1107us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1108us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1109us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1110us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 67us; 32768us; 15us; 1111us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16953us; 0us; 16954us; 0us; 16955us; 0us; 16956us; 0us; 16957us; 0us; 16958us; 0us; 16959us; 0us; 16960us; 0us; 16961us; 0us; 16962us; 0us; 16963us; 0us; 16964us; 0us; 16965us; 0us; 16966us; 0us; 16967us; 0us; 16968us; 0us; 16969us; 0us; 16970us; 0us; 16971us; 0us; 16972us; 0us; 16974us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 16975us; 38us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 56us; 1123us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1126us; 0us; 16976us; 38us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 56us; 1123us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1126us; 3us; 32768us; 10us; 926us; 19us; 1120us; 192us; 913us; 0us; 16977us; 0us; 16978us; 0us; 16979us; 37us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1125us; 0us; 16980us; 0us; 16981us; 0us; 16982us; 0us; 16983us; 2us; 32768us; 97us; 1136us; 192us; 1134us; 2us; 16984us; 56us; 1130us; 192us; 1133us; 37us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1132us; 0us; 16985us; 0us; 16986us; 0us; 16987us; 0us; 16988us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 16991us; 3us; 16996us; 26us; 1147us; 138us; 1146us; 139us; 1152us; 0us; 16992us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 32768us; 21us; 1142us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16994us; 0us; 16995us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 32768us; 21us; 1148us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 5us; 32768us; 10us; 926us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 192us; 913us; 0us; 16998us; 0us; 16999us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17000us; 0us; 17001us; 73us; 32768us; 10us; 926us; 15us; 1758us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1754us; 37us; 1755us; 39us; 685us; 44us; 1218us; 59us; 1756us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 93us; 1757us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 913us; 0us; 17003us; 73us; 32768us; 10us; 926us; 15us; 1758us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1754us; 37us; 1755us; 39us; 685us; 44us; 1218us; 59us; 1756us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 93us; 1757us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 913us; 0us; 17004us; 42us; 32768us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 42us; 17302us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17006us; 42us; 32768us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 42us; 17298us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17007us; 42us; 32768us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 42us; 17301us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17008us; 42us; 32768us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 42us; 17314us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17009us; 42us; 32768us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 42us; 17309us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17010us; 42us; 32768us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 42us; 17310us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17011us; 30us; 32768us; 44us; 1629us; 66us; 1522us; 87us; 1555us; 90us; 1622us; 91us; 1509us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1186us; 30us; 32768us; 44us; 1629us; 66us; 1522us; 87us; 1555us; 90us; 1622us; 91us; 1509us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1186us; 2us; 17381us; 33us; 1725us; 34us; 1724us; 33us; 17147us; 13us; 17150us; 20us; 17150us; 25us; 17150us; 33us; 1725us; 34us; 1724us; 71us; 17381us; 73us; 17381us; 86us; 17150us; 91us; 17381us; 105us; 17381us; 110us; 17150us; 120us; 17381us; 134us; 17381us; 145us; 17381us; 152us; 17381us; 162us; 17381us; 163us; 17381us; 164us; 17381us; 165us; 17381us; 166us; 17381us; 167us; 17381us; 168us; 17381us; 169us; 17381us; 170us; 17381us; 171us; 17381us; 172us; 17381us; 173us; 17381us; 174us; 17381us; 176us; 17381us; 177us; 17381us; 189us; 17381us; 190us; 17381us; 191us; 17381us; 27us; 32768us; 71us; 1279us; 73us; 1313us; 91us; 1285us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1185us; 27us; 32768us; 71us; 1279us; 73us; 1313us; 91us; 1285us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1185us; 0us; 17012us; 5us; 17012us; 13us; 17149us; 25us; 17149us; 86us; 17149us; 110us; 17149us; 130us; 482us; 0us; 17013us; 0us; 17014us; 42us; 32768us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17015us; 42us; 32768us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 117us; 1177us; 120us; 1260us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17016us; 34us; 17017us; 44us; 1218us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1195us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 37us; 17017us; 25us; 1372us; 44us; 1218us; 69us; 1359us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 86us; 1368us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1195us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17018us; 5us; 17019us; 32us; 1204us; 33us; 1203us; 34us; 1202us; 74us; 1216us; 76us; 1208us; 33us; 32768us; 44us; 1218us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 5us; 17020us; 32us; 1204us; 33us; 1203us; 34us; 1202us; 74us; 1216us; 76us; 1208us; 5us; 17021us; 32us; 1204us; 33us; 1203us; 34us; 1202us; 74us; 1216us; 76us; 1208us; 2us; 17022us; 32us; 1204us; 33us; 1203us; 1us; 17023us; 32us; 1204us; 5us; 17025us; 32us; 1204us; 33us; 1203us; 34us; 1202us; 74us; 1216us; 76us; 1208us; 5us; 17241us; 32us; 1204us; 33us; 1203us; 34us; 1202us; 74us; 1216us; 76us; 1208us; 33us; 32768us; 44us; 1218us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 33us; 32768us; 44us; 1218us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 32768us; 157us; 1580us; 0us; 17024us; 33us; 32768us; 44us; 1218us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 33us; 17292us; 44us; 1218us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 6us; 17038us; 10us; 926us; 70us; 1236us; 91us; 1229us; 99us; 1639us; 188us; 1628us; 192us; 913us; 0us; 17026us; 1us; 32768us; 76us; 1211us; 6us; 17038us; 10us; 926us; 70us; 1236us; 91us; 1229us; 99us; 1639us; 188us; 1628us; 192us; 913us; 0us; 17027us; 3us; 32768us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 3us; 17308us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 0us; 17028us; 2us; 32768us; 91us; 1113us; 188us; 1112us; 0us; 17029us; 0us; 17030us; 0us; 17031us; 68us; 17100us; 10us; 926us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 919us; 3us; 32768us; 10us; 926us; 57us; 1222us; 192us; 913us; 0us; 17032us; 0us; 17033us; 0us; 17034us; 0us; 17035us; 0us; 17036us; 0us; 17037us; 0us; 17039us; 85us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 56us; 1674us; 61us; 1160us; 62us; 1654us; 69us; 1658us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1214us; 78us; 1230us; 82us; 1666us; 85us; 963us; 88us; 1172us; 89us; 1175us; 91us; 1287us; 95us; 1657us; 97us; 1024us; 99us; 1639us; 101us; 1659us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 141us; 1669us; 142us; 1665us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1273us; 155us; 1169us; 156us; 1001us; 157us; 1660us; 158us; 1661us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 178us; 1667us; 179us; 1166us; 180us; 1163us; 181us; 1651us; 182us; 1653us; 183us; 1207us; 184us; 1650us; 185us; 1649us; 186us; 1648us; 187us; 1647us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1637us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 1us; 32768us; 76us; 1232us; 1us; 32768us; 174us; 1233us; 0us; 17040us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 17041us; 70us; 32768us; 10us; 926us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 95us; 1255us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 141us; 1254us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 920us; 3us; 32768us; 10us; 926us; 57us; 1238us; 192us; 913us; 0us; 17042us; 0us; 17043us; 0us; 17044us; 0us; 17045us; 2us; 32768us; 57us; 1243us; 96us; 1244us; 0us; 17046us; 68us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 95us; 1255us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 141us; 1254us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 2us; 32768us; 57us; 1246us; 96us; 1247us; 0us; 17047us; 68us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 95us; 1255us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 141us; 1254us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 2us; 32768us; 57us; 1249us; 96us; 1250us; 0us; 17048us; 68us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 95us; 1255us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 141us; 1254us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 32768us; 57us; 1252us; 0us; 17049us; 66us; 17051us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17053us; 0us; 17054us; 0us; 17055us; 0us; 17056us; 0us; 17057us; 0us; 17058us; 0us; 17059us; 0us; 17060us; 0us; 17061us; 0us; 17062us; 68us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 140us; 1271us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1269us; 3us; 32768us; 10us; 926us; 140us; 1267us; 192us; 913us; 0us; 17063us; 0us; 17064us; 1us; 32768us; 140us; 1270us; 0us; 17065us; 0us; 17066us; 68us; 32768us; 10us; 926us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 921us; 69us; 32768us; 10us; 926us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 153us; 1672us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 921us; 3us; 32768us; 10us; 926us; 153us; 1275us; 192us; 913us; 0us; 17067us; 0us; 17068us; 0us; 17069us; 0us; 17070us; 68us; 17100us; 10us; 926us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 922us; 3us; 32768us; 10us; 926us; 64us; 1281us; 192us; 913us; 0us; 17071us; 0us; 17072us; 0us; 17073us; 0us; 17074us; 77us; 32768us; 10us; 926us; 15us; 1297us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1294us; 37us; 1295us; 39us; 685us; 44us; 1218us; 59us; 1296us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 87us; 1337us; 88us; 1171us; 89us; 1174us; 91us; 1286us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 923us; 93us; 32768us; 10us; 926us; 15us; 1297us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1294us; 37us; 1295us; 39us; 685us; 44us; 1218us; 56us; 1674us; 59us; 1296us; 61us; 1160us; 62us; 1654us; 69us; 1658us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1214us; 82us; 1666us; 85us; 963us; 87us; 1337us; 88us; 1172us; 89us; 1175us; 91us; 1286us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 95us; 1657us; 97us; 1024us; 99us; 1639us; 101us; 1659us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 141us; 1669us; 142us; 1665us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1273us; 155us; 1169us; 156us; 1001us; 157us; 1660us; 158us; 1661us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 178us; 1667us; 179us; 1166us; 180us; 1163us; 181us; 1651us; 182us; 1653us; 183us; 1207us; 184us; 1650us; 185us; 1626us; 186us; 1648us; 187us; 1647us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 924us; 93us; 32768us; 10us; 926us; 15us; 1297us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1294us; 37us; 1295us; 39us; 685us; 44us; 1218us; 56us; 1674us; 59us; 1296us; 61us; 1160us; 62us; 1654us; 69us; 1658us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1214us; 82us; 1666us; 85us; 963us; 87us; 1337us; 88us; 1172us; 89us; 1175us; 91us; 1286us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 95us; 1657us; 97us; 1024us; 99us; 1639us; 101us; 1659us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 141us; 1669us; 142us; 1665us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1273us; 155us; 1169us; 156us; 1001us; 157us; 1660us; 158us; 1661us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 178us; 1667us; 179us; 1166us; 180us; 1163us; 181us; 1651us; 182us; 1653us; 183us; 1207us; 184us; 1650us; 185us; 1626us; 186us; 1648us; 187us; 1647us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 924us; 0us; 17075us; 9us; 32768us; 10us; 926us; 15us; 1752us; 35us; 1749us; 37us; 1750us; 59us; 1751us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 192us; 913us; 0us; 17076us; 0us; 17077us; 0us; 17078us; 0us; 17078us; 0us; 17079us; 0us; 17080us; 0us; 17081us; 0us; 17082us; 0us; 17083us; 1us; 32768us; 77us; 1300us; 1us; 32768us; 91us; 1301us; 1us; 16496us; 72us; 199us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17084us; 0us; 17085us; 0us; 17086us; 0us; 17087us; 4us; 17087us; 92us; 17090us; 93us; 17090us; 94us; 17090us; 101us; 17090us; 4us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 101us; 1311us; 0us; 17088us; 1us; 32768us; 185us; 1625us; 0us; 17089us; 73us; 32768us; 10us; 926us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 52us; 1353us; 58us; 1740us; 59us; 1737us; 60us; 1739us; 61us; 1159us; 66us; 1363us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1178us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 925us; 5us; 32768us; 10us; 926us; 58us; 1740us; 59us; 1737us; 60us; 1739us; 192us; 913us; 0us; 17091us; 0us; 17092us; 0us; 17093us; 0us; 17094us; 0us; 17095us; 0us; 17096us; 0us; 17097us; 0us; 17098us; 0us; 17099us; 0us; 17101us; 0us; 17102us; 68us; 32768us; 10us; 926us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 913us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17105us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17106us; 73us; 32768us; 10us; 926us; 15us; 1758us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1754us; 37us; 1755us; 39us; 685us; 44us; 1218us; 59us; 1756us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 93us; 1757us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 913us; 0us; 17108us; 0us; 17109us; 0us; 17110us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 66us; 32768us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 2us; 32768us; 189us; 13us; 190us; 12us; 3us; 17117us; 35us; 1727us; 36us; 1730us; 107us; 1731us; 0us; 17114us; 35us; 17119us; 44us; 1218us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 77us; 1349us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1195us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 32768us; 87us; 1723us; 0us; 17112us; 0us; 17113us; 0us; 17116us; 1us; 32768us; 91us; 1346us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 17118us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1351us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17120us; 34us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1569us; 0us; 17121us; 29us; 32768us; 44us; 1629us; 66us; 1522us; 87us; 1555us; 90us; 1622us; 91us; 1509us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 2us; 17381us; 33us; 1725us; 34us; 1724us; 26us; 17115us; 71us; 1279us; 73us; 1313us; 91us; 1285us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17139us; 2us; 17131us; 20us; 1381us; 83us; 1382us; 0us; 17122us; 67us; 32768us; 21us; 892us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17139us; 2us; 17131us; 20us; 1381us; 83us; 1382us; 0us; 17123us; 1us; 17124us; 69us; 1364us; 67us; 17125us; 21us; 892us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17139us; 2us; 17131us; 20us; 1381us; 83us; 1382us; 0us; 17126us; 3us; 32768us; 44us; 1629us; 66us; 1386us; 188us; 1628us; 0us; 17139us; 2us; 17131us; 20us; 1381us; 83us; 1382us; 0us; 17127us; 5us; 17131us; 20us; 1381us; 44us; 1629us; 66us; 1386us; 83us; 1382us; 188us; 1628us; 1us; 32768us; 19us; 1374us; 0us; 17128us; 0us; 17139us; 2us; 17131us; 20us; 1381us; 83us; 1382us; 1us; 32768us; 19us; 1378us; 0us; 17129us; 0us; 17130us; 3us; 17130us; 44us; 1629us; 66us; 1386us; 188us; 1628us; 1us; 17132us; 83us; 1384us; 1us; 17133us; 20us; 1383us; 0us; 17134us; 0us; 17135us; 1us; 17136us; 76us; 1631us; 0us; 17137us; 0us; 17138us; 8us; 17143us; 10us; 926us; 15us; 1758us; 35us; 1754us; 37us; 1755us; 59us; 1756us; 69us; 1389us; 93us; 1757us; 192us; 913us; 74us; 17141us; 10us; 926us; 15us; 1758us; 21us; 892us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 35us; 1754us; 37us; 1755us; 39us; 685us; 44us; 1218us; 59us; 1756us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 93us; 1757us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 913us; 0us; 17140us; 0us; 17142us; 0us; 17144us; 3us; 17357us; 20us; 1708us; 25us; 1403us; 86us; 1401us; 1us; 17357us; 20us; 1708us; 3us; 17157us; 13us; 531us; 110us; 530us; 192us; 1412us; 0us; 17145us; 2us; 32768us; 13us; 531us; 110us; 530us; 0us; 17146us; 0us; 17148us; 0us; 17151us; 3us; 16496us; 21us; 485us; 72us; 199us; 192us; 720us; 0us; 17153us; 2us; 16496us; 72us; 199us; 192us; 720us; 1us; 32768us; 19us; 1405us; 0us; 17154us; 3us; 17351us; 18us; 1703us; 19us; 1704us; 140us; 1705us; 0us; 17155us; 3us; 17157us; 13us; 531us; 110us; 530us; 192us; 1412us; 0us; 17156us; 3us; 17157us; 13us; 531us; 110us; 530us; 192us; 1412us; 0us; 17158us; 3us; 17157us; 13us; 531us; 110us; 530us; 192us; 1412us; 0us; 17159us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 8us; 17152us; 25us; 1403us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 86us; 1401us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 3us; 17351us; 18us; 1703us; 19us; 1704us; 140us; 1705us; 1us; 17357us; 20us; 1708us; 0us; 17160us; 0us; 17161us; 0us; 17162us; 34us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 32768us; 97us; 1423us; 68us; 32768us; 21us; 887us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1425us; 0us; 17163us; 0us; 17164us; 35us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 66us; 835us; 70us; 829us; 71us; 832us; 73us; 826us; 74us; 836us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1437us; 2us; 32768us; 97us; 1428us; 192us; 1435us; 69us; 32768us; 10us; 926us; 17us; 1432us; 23us; 1426us; 24us; 1441us; 28us; 1019us; 29us; 676us; 30us; 1007us; 31us; 672us; 39us; 685us; 44us; 1218us; 61us; 1159us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 85us; 963us; 88us; 1171us; 89us; 1174us; 91us; 1287us; 97us; 1024us; 99us; 1639us; 105us; 1261us; 106us; 944us; 113us; 955us; 114us; 959us; 115us; 940us; 117us; 1177us; 120us; 1260us; 121us; 974us; 122us; 1421us; 123us; 1439us; 124us; 950us; 128us; 1014us; 131us; 957us; 132us; 961us; 134us; 1265us; 143us; 1187us; 144us; 1189us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 155us; 1168us; 156us; 1001us; 159us; 666us; 160us; 997us; 161us; 999us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 179us; 1165us; 180us; 1162us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 913us; 3us; 32768us; 10us; 926us; 19us; 1430us; 192us; 913us; 0us; 17165us; 0us; 17166us; 1us; 32768us; 19us; 1433us; 0us; 17167us; 0us; 17168us; 1us; 32768us; 19us; 1436us; 0us; 17169us; 1us; 32768us; 19us; 1438us; 0us; 17170us; 38us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 56us; 1123us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1126us; 0us; 17171us; 38us; 32768us; 41us; 459us; 42us; 458us; 43us; 460us; 44us; 451us; 56us; 1123us; 66us; 835us; 70us; 829us; 71us; 832us; 72us; 199us; 73us; 826us; 74us; 836us; 81us; 814us; 91us; 844us; 99us; 1639us; 105us; 842us; 120us; 841us; 145us; 843us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 761us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1126us; 1us; 32768us; 19us; 1443us; 0us; 17172us; 1us; 17173us; 84us; 1445us; 4us; 32768us; 50us; 568us; 90us; 1622us; 91us; 583us; 185us; 1625us; 1us; 17175us; 84us; 1447us; 4us; 32768us; 50us; 568us; 90us; 1622us; 91us; 583us; 185us; 1625us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17178us; 1us; 17180us; 97us; 1451us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17179us; 1us; 17182us; 95us; 1454us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17181us; 1us; 17184us; 95us; 1457us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 72us; 199us; 74us; 1470us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17183us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 74us; 1463us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 7us; 17187us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 77us; 1461us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 6us; 17185us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 1us; 32768us; 188us; 1628us; 1us; 32768us; 77us; 1465us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 6us; 17186us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 7us; 17190us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 77us; 1468us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 6us; 17188us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 1us; 32768us; 188us; 1628us; 1us; 32768us; 77us; 1472us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 6us; 17189us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 1us; 17192us; 97us; 1475us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17191us; 8us; 17196us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 95us; 1478us; 182us; 1482us; 185us; 1625us; 188us; 1628us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17193us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17194us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17195us; 8us; 17199us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 95us; 1485us; 182us; 1487us; 185us; 1625us; 188us; 1628us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17197us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17198us; 7us; 17201us; 34us; 1503us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 95us; 1490us; 185us; 1625us; 188us; 1628us; 29us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17200us; 1us; 17202us; 76us; 1631us; 0us; 17203us; 1us; 17203us; 79us; 1518us; 1us; 17203us; 79us; 1519us; 1us; 17205us; 185us; 1498us; 4us; 17205us; 32us; 1578us; 76us; 1575us; 157us; 1580us; 185us; 1498us; 1us; 32768us; 174us; 1499us; 0us; 17204us; 6us; 32768us; 34us; 1504us; 44us; 1629us; 70us; 1528us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 0us; 17206us; 62us; 17206us; 10us; 17224us; 13us; 17224us; 14us; 17224us; 15us; 17224us; 16us; 17224us; 18us; 17224us; 19us; 17224us; 20us; 17224us; 25us; 17224us; 29us; 17224us; 31us; 17224us; 33us; 17224us; 39us; 17224us; 41us; 17224us; 42us; 17224us; 43us; 17224us; 45us; 17224us; 46us; 17224us; 48us; 17224us; 49us; 17224us; 50us; 17224us; 52us; 17224us; 58us; 17224us; 59us; 17224us; 60us; 17224us; 71us; 17224us; 72us; 17224us; 73us; 17224us; 83us; 17224us; 86us; 17224us; 91us; 17224us; 105us; 17224us; 108us; 17224us; 110us; 17224us; 117us; 17224us; 120us; 17224us; 130us; 17224us; 134us; 17224us; 135us; 17224us; 140us; 17224us; 145us; 17224us; 152us; 17224us; 159us; 17224us; 162us; 17224us; 163us; 17224us; 164us; 17224us; 165us; 17224us; 166us; 17224us; 167us; 17224us; 168us; 17224us; 169us; 17224us; 170us; 17224us; 171us; 17224us; 172us; 17224us; 173us; 17224us; 174us; 17224us; 176us; 17224us; 177us; 17224us; 189us; 17224us; 190us; 17224us; 191us; 17224us; 192us; 17224us; 1us; 32768us; 70us; 1528us; 1us; 32768us; 70us; 1528us; 0us; 17207us; 62us; 17207us; 10us; 17225us; 13us; 17225us; 14us; 17225us; 15us; 17225us; 16us; 17225us; 18us; 17225us; 19us; 17225us; 20us; 17225us; 25us; 17225us; 29us; 17225us; 31us; 17225us; 33us; 17225us; 39us; 17225us; 41us; 17225us; 42us; 17225us; 43us; 17225us; 45us; 17225us; 46us; 17225us; 48us; 17225us; 49us; 17225us; 50us; 17225us; 52us; 17225us; 58us; 17225us; 59us; 17225us; 60us; 17225us; 71us; 17225us; 72us; 17225us; 73us; 17225us; 83us; 17225us; 86us; 17225us; 91us; 17225us; 105us; 17225us; 108us; 17225us; 110us; 17225us; 117us; 17225us; 120us; 17225us; 130us; 17225us; 134us; 17225us; 135us; 17225us; 140us; 17225us; 145us; 17225us; 152us; 17225us; 159us; 17225us; 162us; 17225us; 163us; 17225us; 164us; 17225us; 165us; 17225us; 166us; 17225us; 167us; 17225us; 168us; 17225us; 169us; 17225us; 170us; 17225us; 171us; 17225us; 172us; 17225us; 173us; 17225us; 174us; 17225us; 176us; 17225us; 177us; 17225us; 189us; 17225us; 190us; 17225us; 191us; 17225us; 192us; 17225us; 0us; 17208us; 62us; 17208us; 10us; 17226us; 13us; 17226us; 14us; 17226us; 15us; 17226us; 16us; 17226us; 18us; 17226us; 19us; 17226us; 20us; 17226us; 25us; 17226us; 29us; 17226us; 31us; 17226us; 33us; 17226us; 39us; 17226us; 41us; 17226us; 42us; 17226us; 43us; 17226us; 45us; 17226us; 46us; 17226us; 48us; 17226us; 49us; 17226us; 50us; 17226us; 52us; 17226us; 58us; 17226us; 59us; 17226us; 60us; 17226us; 71us; 17226us; 72us; 17226us; 73us; 17226us; 83us; 17226us; 86us; 17226us; 91us; 17226us; 105us; 17226us; 108us; 17226us; 110us; 17226us; 117us; 17226us; 120us; 17226us; 130us; 17226us; 134us; 17226us; 135us; 17226us; 140us; 17226us; 145us; 17226us; 152us; 17226us; 159us; 17226us; 162us; 17226us; 163us; 17226us; 164us; 17226us; 165us; 17226us; 166us; 17226us; 167us; 17226us; 168us; 17226us; 169us; 17226us; 170us; 17226us; 171us; 17226us; 172us; 17226us; 173us; 17226us; 174us; 17226us; 176us; 17226us; 177us; 17226us; 189us; 17226us; 190us; 17226us; 191us; 17226us; 192us; 17226us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1569us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1569us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 4us; 32768us; 44us; 1629us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 4us; 32768us; 44us; 1629us; 90us; 1622us; 185us; 1625us; 188us; 1628us; 0us; 17209us; 62us; 17209us; 10us; 17227us; 13us; 17227us; 14us; 17227us; 15us; 17227us; 16us; 17227us; 18us; 17227us; 19us; 17227us; 20us; 17227us; 25us; 17227us; 29us; 17227us; 31us; 17227us; 33us; 17227us; 39us; 17227us; 41us; 17227us; 42us; 17227us; 43us; 17227us; 45us; 17227us; 46us; 17227us; 48us; 17227us; 49us; 17227us; 50us; 17227us; 52us; 17227us; 58us; 17227us; 59us; 17227us; 60us; 17227us; 71us; 17227us; 72us; 17227us; 73us; 17227us; 83us; 17227us; 86us; 17227us; 91us; 17227us; 105us; 17227us; 108us; 17227us; 110us; 17227us; 117us; 17227us; 120us; 17227us; 130us; 17227us; 134us; 17227us; 135us; 17227us; 140us; 17227us; 145us; 17227us; 152us; 17227us; 159us; 17227us; 162us; 17227us; 163us; 17227us; 164us; 17227us; 165us; 17227us; 166us; 17227us; 167us; 17227us; 168us; 17227us; 169us; 17227us; 170us; 17227us; 171us; 17227us; 172us; 17227us; 173us; 17227us; 174us; 17227us; 176us; 17227us; 177us; 17227us; 189us; 17227us; 190us; 17227us; 191us; 17227us; 192us; 17227us; 0us; 17210us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17211us; 62us; 17211us; 10us; 17229us; 13us; 17229us; 14us; 17229us; 15us; 17229us; 16us; 17229us; 18us; 17229us; 19us; 17229us; 20us; 17229us; 25us; 17229us; 29us; 17229us; 31us; 17229us; 33us; 17229us; 39us; 17229us; 41us; 17229us; 42us; 17229us; 43us; 17229us; 45us; 17229us; 46us; 17229us; 48us; 17229us; 49us; 17229us; 50us; 17229us; 52us; 17229us; 58us; 17229us; 59us; 17229us; 60us; 17229us; 71us; 17229us; 72us; 17229us; 73us; 17229us; 83us; 17229us; 86us; 17229us; 91us; 17229us; 105us; 17229us; 108us; 17229us; 110us; 17229us; 117us; 17229us; 120us; 17229us; 130us; 17229us; 134us; 17229us; 135us; 17229us; 140us; 17229us; 145us; 17229us; 152us; 17229us; 159us; 17229us; 162us; 17229us; 163us; 17229us; 164us; 17229us; 165us; 17229us; 166us; 17229us; 167us; 17229us; 168us; 17229us; 169us; 17229us; 170us; 17229us; 171us; 17229us; 172us; 17229us; 173us; 17229us; 174us; 17229us; 176us; 17229us; 177us; 17229us; 189us; 17229us; 190us; 17229us; 191us; 17229us; 192us; 17229us; 1us; 17236us; 79us; 1525us; 1us; 17236us; 79us; 1524us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17212us; 62us; 17212us; 10us; 17230us; 13us; 17230us; 14us; 17230us; 15us; 17230us; 16us; 17230us; 18us; 17230us; 19us; 17230us; 20us; 17230us; 25us; 17230us; 29us; 17230us; 31us; 17230us; 33us; 17230us; 39us; 17230us; 41us; 17230us; 42us; 17230us; 43us; 17230us; 45us; 17230us; 46us; 17230us; 48us; 17230us; 49us; 17230us; 50us; 17230us; 52us; 17230us; 58us; 17230us; 59us; 17230us; 60us; 17230us; 71us; 17230us; 72us; 17230us; 73us; 17230us; 83us; 17230us; 86us; 17230us; 91us; 17230us; 105us; 17230us; 108us; 17230us; 110us; 17230us; 117us; 17230us; 120us; 17230us; 130us; 17230us; 134us; 17230us; 135us; 17230us; 140us; 17230us; 145us; 17230us; 152us; 17230us; 159us; 17230us; 162us; 17230us; 163us; 17230us; 164us; 17230us; 165us; 17230us; 166us; 17230us; 167us; 17230us; 168us; 17230us; 169us; 17230us; 170us; 17230us; 171us; 17230us; 172us; 17230us; 173us; 17230us; 174us; 17230us; 176us; 17230us; 177us; 17230us; 189us; 17230us; 190us; 17230us; 191us; 17230us; 192us; 17230us; 2us; 32768us; 57us; 1529us; 96us; 1530us; 0us; 17213us; 2us; 32768us; 57us; 1531us; 96us; 1532us; 0us; 17214us; 2us; 32768us; 57us; 1533us; 96us; 1534us; 0us; 17215us; 1us; 32768us; 57us; 1535us; 0us; 17216us; 1us; 32768us; 96us; 1537us; 30us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17220us; 1us; 17217us; 96us; 1541us; 4us; 32768us; 10us; 926us; 96us; 1541us; 158us; 1584us; 192us; 913us; 30us; 17263us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17218us; 0us; 17219us; 64us; 17221us; 10us; 17231us; 13us; 17231us; 14us; 17231us; 15us; 17231us; 16us; 17231us; 18us; 17231us; 19us; 17231us; 20us; 17231us; 25us; 17231us; 29us; 17231us; 31us; 17231us; 33us; 17231us; 39us; 17231us; 41us; 17231us; 42us; 17231us; 43us; 17231us; 45us; 17231us; 46us; 17231us; 48us; 17231us; 49us; 17231us; 50us; 17231us; 52us; 17231us; 58us; 17231us; 59us; 17231us; 60us; 17231us; 71us; 17231us; 72us; 17231us; 73us; 17231us; 76us; 1572us; 83us; 17231us; 86us; 17231us; 91us; 17231us; 105us; 17231us; 108us; 17231us; 110us; 17231us; 117us; 17231us; 120us; 17231us; 130us; 17231us; 134us; 17231us; 135us; 17231us; 140us; 17231us; 145us; 17231us; 152us; 17231us; 159us; 17231us; 162us; 17231us; 163us; 17231us; 164us; 17231us; 165us; 17231us; 166us; 17231us; 167us; 17231us; 168us; 17231us; 169us; 17231us; 170us; 17231us; 171us; 17231us; 172us; 17231us; 173us; 17231us; 174us; 17231us; 176us; 17231us; 177us; 17231us; 185us; 1547us; 189us; 17231us; 190us; 17231us; 191us; 17231us; 192us; 17231us; 2us; 17221us; 76us; 1572us; 185us; 1546us; 2us; 32768us; 61us; 1550us; 174us; 1548us; 2us; 32768us; 61us; 1551us; 174us; 1549us; 0us; 17222us; 62us; 17222us; 10us; 17232us; 13us; 17232us; 14us; 17232us; 15us; 17232us; 16us; 17232us; 18us; 17232us; 19us; 17232us; 20us; 17232us; 25us; 17232us; 29us; 17232us; 31us; 17232us; 33us; 17232us; 39us; 17232us; 41us; 17232us; 42us; 17232us; 43us; 17232us; 45us; 17232us; 46us; 17232us; 48us; 17232us; 49us; 17232us; 50us; 17232us; 52us; 17232us; 58us; 17232us; 59us; 17232us; 60us; 17232us; 71us; 17232us; 72us; 17232us; 73us; 17232us; 83us; 17232us; 86us; 17232us; 91us; 17232us; 105us; 17232us; 108us; 17232us; 110us; 17232us; 117us; 17232us; 120us; 17232us; 130us; 17232us; 134us; 17232us; 135us; 17232us; 140us; 17232us; 145us; 17232us; 152us; 17232us; 159us; 17232us; 162us; 17232us; 163us; 17232us; 164us; 17232us; 165us; 17232us; 166us; 17232us; 167us; 17232us; 168us; 17232us; 169us; 17232us; 170us; 17232us; 171us; 17232us; 172us; 17232us; 173us; 17232us; 174us; 17232us; 176us; 17232us; 177us; 17232us; 189us; 17232us; 190us; 17232us; 191us; 17232us; 192us; 17232us; 1us; 32768us; 174us; 1552us; 1us; 32768us; 174us; 1553us; 0us; 17223us; 62us; 17223us; 10us; 17233us; 13us; 17233us; 14us; 17233us; 15us; 17233us; 16us; 17233us; 18us; 17233us; 19us; 17233us; 20us; 17233us; 25us; 17233us; 29us; 17233us; 31us; 17233us; 33us; 17233us; 39us; 17233us; 41us; 17233us; 42us; 17233us; 43us; 17233us; 45us; 17233us; 46us; 17233us; 48us; 17233us; 49us; 17233us; 50us; 17233us; 52us; 17233us; 58us; 17233us; 59us; 17233us; 60us; 17233us; 71us; 17233us; 72us; 17233us; 73us; 17233us; 83us; 17233us; 86us; 17233us; 91us; 17233us; 105us; 17233us; 108us; 17233us; 110us; 17233us; 117us; 17233us; 120us; 17233us; 130us; 17233us; 134us; 17233us; 135us; 17233us; 140us; 17233us; 145us; 17233us; 152us; 17233us; 159us; 17233us; 162us; 17233us; 163us; 17233us; 164us; 17233us; 165us; 17233us; 166us; 17233us; 167us; 17233us; 168us; 17233us; 169us; 17233us; 170us; 17233us; 171us; 17233us; 172us; 17233us; 173us; 17233us; 174us; 17233us; 176us; 17233us; 177us; 17233us; 189us; 17233us; 190us; 17233us; 191us; 17233us; 192us; 17233us; 0us; 17228us; 29us; 32768us; 44us; 1629us; 66us; 1558us; 87us; 1555us; 90us; 1622us; 91us; 1559us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 1us; 17234us; 76us; 1572us; 0us; 17235us; 0us; 17236us; 31us; 32768us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 1569us; 5us; 32768us; 10us; 926us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 192us; 913us; 6us; 17258us; 10us; 926us; 69us; 1593us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 192us; 913us; 0us; 17237us; 0us; 17238us; 0us; 17239us; 0us; 17240us; 33us; 32768us; 44us; 1218us; 70us; 1220us; 71us; 1279us; 73us; 1313us; 74us; 1213us; 91us; 1287us; 99us; 1639us; 105us; 1261us; 120us; 1260us; 134us; 1265us; 145us; 1259us; 151us; 1210us; 152us; 1272us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 183us; 1206us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17242us; 0us; 17243us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 17244us; 0us; 17245us; 2us; 32768us; 44us; 1629us; 188us; 1628us; 3us; 17246us; 32us; 1578us; 76us; 1631us; 157us; 1580us; 0us; 17247us; 7us; 32768us; 10us; 926us; 15us; 1758us; 35us; 1754us; 37us; 1755us; 59us; 1756us; 93us; 1757us; 192us; 913us; 0us; 17248us; 0us; 17249us; 1us; 32768us; 157us; 1580us; 0us; 17250us; 33us; 17263us; 10us; 926us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 158us; 1590us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 913us; 1us; 32768us; 96us; 1582us; 37us; 17263us; 10us; 926us; 15us; 1758us; 35us; 1754us; 37us; 1755us; 44us; 1629us; 59us; 1756us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 93us; 1757us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 192us; 913us; 0us; 17220us; 0us; 17251us; 0us; 17252us; 0us; 17253us; 3us; 17261us; 10us; 926us; 158us; 1588us; 192us; 913us; 0us; 17254us; 0us; 17255us; 0us; 17256us; 0us; 17257us; 1us; 17258us; 69us; 1593us; 30us; 17260us; 44us; 1629us; 66us; 1523us; 87us; 1555us; 90us; 1622us; 91us; 1510us; 105us; 1568us; 112us; 1566us; 120us; 1567us; 145us; 1565us; 162us; 763us; 163us; 762us; 164us; 760us; 165us; 759us; 166us; 758us; 167us; 756us; 168us; 757us; 169us; 755us; 170us; 753us; 171us; 751us; 172us; 749us; 173us; 754us; 174us; 752us; 176us; 750us; 177us; 748us; 182us; 1480us; 185us; 1625us; 188us; 1628us; 189us; 13us; 190us; 12us; 191us; 765us; 0us; 17259us; 0us; 17261us; 0us; 17262us; 8us; 32768us; 44us; 1629us; 66us; 1600us; 90us; 1622us; 91us; 1604us; 174us; 1612us; 182us; 1621us; 185us; 1625us; 188us; 1628us; 3us; 32768us; 95us; 1619us; 158us; 1599us; 182us; 1620us; 0us; 17264us; 1us; 32768us; 158us; 1601us; 0us; 17265us; 1us; 17266us; 76us; 1631us; 0us; 17267us; 7us; 32768us; 44us; 1629us; 90us; 1622us; 91us; 1604us; 174us; 1612us; 182us; 1621us; 185us; 1625us; 188us; 1628us; 5us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 95us; 1619us; 182us; 1620us; 0us; 17268us; 1us; 17269us; 185us; 1608us; 2us; 32768us; 61us; 1610us; 174us; 1609us; 0us; 17270us; 1us; 32768us; 174us; 1611us; 0us; 17271us; 0us; 17272us; 6us; 17273us; 44us; 1629us; 90us; 1622us; 91us; 1604us; 174us; 1612us; 185us; 1625us; 188us; 1628us; 0us; 17274us; 0us; 17275us; 0us; 17276us; 0us; 17277us; 0us; 17278us; 7us; 32768us; 44us; 1629us; 90us; 1622us; 91us; 1604us; 174us; 1612us; 182us; 1621us; 185us; 1625us; 188us; 1628us; 7us; 32768us; 44us; 1629us; 90us; 1622us; 91us; 1604us; 174us; 1612us; 182us; 1621us; 185us; 1625us; 188us; 1628us; 7us; 32768us; 44us; 1629us; 90us; 1622us; 91us; 1604us; 174us; 1612us; 182us; 1621us; 185us; 1625us; 188us; 1628us; 1us; 32768us; 188us; 1628us; 0us; 17279us; 0us; 17280us; 1us; 32768us; 188us; 1628us; 1us; 17295us; 188us; 1628us; 0us; 17281us; 0us; 17282us; 0us; 17283us; 0us; 17284us; 8us; 32768us; 10us; 926us; 15us; 1758us; 35us; 1754us; 37us; 1755us; 59us; 1756us; 93us; 1757us; 188us; 1628us; 192us; 913us; 0us; 17285us; 0us; 17286us; 27us; 32768us; 56us; 1674us; 61us; 1656us; 62us; 1654us; 69us; 1658us; 74us; 1662us; 82us; 1666us; 88us; 1663us; 89us; 1664us; 95us; 1657us; 101us; 1659us; 141us; 1669us; 142us; 1665us; 152us; 1671us; 155us; 1668us; 157us; 1660us; 158us; 1661us; 178us; 1667us; 179us; 1655us; 180us; 1652us; 181us; 1651us; 182us; 1653us; 183us; 1646us; 184us; 1650us; 185us; 1649us; 186us; 1648us; 187us; 1647us; 192us; 1637us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 17287us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 17288us; 0us; 17289us; 1us; 32768us; 56us; 1641us; 5us; 32768us; 66us; 1643us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 188us; 1673us; 0us; 17290us; 1us; 32768us; 56us; 1644us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 17291us; 0us; 17292us; 0us; 17293us; 0us; 17294us; 0us; 17295us; 0us; 17296us; 0us; 17297us; 0us; 17298us; 0us; 17299us; 0us; 17300us; 0us; 17301us; 0us; 17302us; 0us; 17303us; 0us; 17304us; 0us; 17305us; 0us; 17306us; 0us; 17307us; 0us; 17308us; 0us; 17309us; 0us; 17310us; 0us; 17311us; 0us; 17312us; 0us; 17313us; 0us; 17314us; 1us; 17315us; 141us; 1670us; 0us; 17316us; 1us; 32768us; 153us; 1672us; 0us; 17317us; 0us; 17318us; 1us; 32768us; 188us; 1673us; 0us; 17319us; 0us; 17320us; 0us; 17321us; 0us; 17322us; 1us; 17323us; 76us; 1681us; 0us; 17324us; 4us; 32768us; 91us; 1634us; 99us; 1639us; 188us; 1628us; 192us; 1683us; 0us; 17325us; 0us; 17326us; 0us; 17327us; 0us; 17328us; 0us; 17329us; 0us; 17330us; 3us; 17331us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 0us; 17332us; 0us; 17333us; 0us; 17334us; 2us; 17335us; 20us; 1691us; 83us; 1690us; 0us; 17336us; 3us; 17340us; 20us; 1687us; 67us; 1686us; 83us; 1685us; 0us; 17339us; 1us; 17341us; 83us; 1698us; 1us; 17342us; 20us; 1699us; 0us; 17343us; 0us; 17344us; 0us; 17345us; 0us; 17346us; 0us; 17347us; 0us; 17348us; 0us; 17349us; 0us; 17350us; 0us; 17352us; 0us; 17354us; 0us; 17356us; 0us; 17358us; 0us; 17360us; 0us; 17364us; 0us; 17366us; 0us; 17368us; 0us; 17369us; 0us; 17370us; 0us; 17371us; 0us; 17372us; 0us; 17373us; 0us; 17374us; 0us; 17375us; 0us; 17376us; 0us; 17377us; 0us; 17378us; 0us; 17379us; 0us; 17380us; 0us; 17382us; 3us; 32768us; 35us; 1727us; 36us; 1730us; 107us; 1731us; 3us; 17404us; 35us; 1727us; 36us; 1730us; 107us; 1731us; 0us; 17384us; 0us; 17385us; 0us; 17386us; 3us; 32768us; 37us; 1732us; 38us; 1735us; 147us; 1736us; 3us; 17405us; 37us; 1732us; 38us; 1735us; 147us; 1736us; 0us; 17387us; 0us; 17388us; 0us; 17389us; 3us; 32768us; 58us; 1740us; 59us; 1737us; 60us; 1739us; 0us; 17390us; 0us; 17391us; 0us; 17392us; 3us; 32768us; 92us; 1744us; 93us; 1741us; 94us; 1743us; 0us; 17393us; 0us; 17394us; 0us; 17395us; 3us; 32768us; 14us; 1748us; 15us; 1745us; 16us; 1747us; 0us; 17396us; 0us; 17397us; 0us; 17398us; 0us; 17399us; 0us; 17400us; 0us; 17401us; 0us; 17402us; 0us; 17403us; 0us; 17404us; 0us; 17405us; 0us; 17406us; 0us; 17407us; 0us; 17408us; 0us; 17409us; |] +let _fsyacc_actionTableRowOffsets = [|0us; 17us; 18us; 101us; 102us; 110us; 111us; 112us; 113us; 114us; 116us; 117us; 120us; 121us; 122us; 123us; 124us; 125us; 126us; 127us; 132us; 133us; 138us; 139us; 144us; 145us; 151us; 152us; 158us; 159us; 165us; 166us; 183us; 184us; 188us; 263us; 289us; 290us; 293us; 294us; 296us; 297us; 302us; 303us; 306us; 307us; 309us; 310us; 315us; 316us; 320us; 323us; 325us; 328us; 330us; 332us; 333us; 335us; 336us; 338us; 355us; 356us; 358us; 359us; 361us; 362us; 364us; 447us; 448us; 452us; 461us; 480us; 481us; 482us; 487us; 562us; 646us; 647us; 648us; 649us; 665us; 671us; 673us; 674us; 675us; 682us; 683us; 684us; 688us; 692us; 708us; 709us; 713us; 718us; 719us; 801us; 807us; 809us; 810us; 811us; 818us; 819us; 820us; 821us; 826us; 901us; 930us; 1012us; 1013us; 1014us; 1015us; 1037us; 1038us; 1120us; 1121us; 1125us; 1132us; 1137us; 1142us; 1143us; 1144us; 1145us; 1149us; 1161us; 1162us; 1164us; 1165us; 1233us; 1234us; 1236us; 1238us; 1239us; 1240us; 1242us; 1248us; 1249us; 1252us; 1253us; 1254us; 1263us; 1268us; 1269us; 1271us; 1278us; 1284us; 1285us; 1286us; 1292us; 1293us; 1294us; 1295us; 1296us; 1298us; 1380us; 1384us; 1385us; 1386us; 1387us; 1394us; 1398us; 1399us; 1400us; 1401us; 1405us; 1414us; 1417us; 1423us; 1424us; 1425us; 1426us; 1427us; 1430us; 1432us; 1434us; 1436us; 1438us; 1442us; 1446us; 1449us; 1451us; 1483us; 1485us; 1486us; 1554us; 1580us; 1647us; 1676us; 1677us; 1681us; 1682us; 1698us; 1700us; 1704us; 1705us; 1721us; 1723us; 1724us; 1725us; 1727us; 1728us; 1743us; 1746us; 1755us; 1757us; 1758us; 1760us; 1762us; 1763us; 1764us; 1765us; 1766us; 1776us; 1777us; 1781us; 1808us; 1809us; 1813us; 1817us; 1844us; 1845us; 1848us; 1853us; 1856us; 1883us; 1884us; 1886us; 1887us; 1889us; 1890us; 1892us; 1893us; 1895us; 1896us; 1898us; 1899us; 1901us; 1903us; 1904us; 1907us; 1915us; 1916us; 1917us; 1930us; 1932us; 1938us; 1940us; 1944us; 1946us; 1947us; 1949us; 1950us; 1951us; 1952us; 1954us; 1986us; 1987us; 1988us; 1994us; 1998us; 1999us; 2000us; 2002us; 2003us; 2010us; 2016us; 2017us; 2018us; 2024us; 2028us; 2029us; 2030us; 2037us; 2043us; 2044us; 2045us; 2046us; 2047us; 2050us; 2061us; 2062us; 2068us; 2079us; 2080us; 2081us; 2082us; 2083us; 2084us; 2086us; 2087us; 2091us; 2092us; 2096us; 2099us; 2100us; 2101us; 2103us; 2107us; 2108us; 2112us; 2116us; 2127us; 2170us; 2172us; 2176us; 2180us; 2183us; 2185us; 2217us; 2220us; 2222us; 2223us; 2253us; 2260us; 2290us; 2297us; 2299us; 2300us; 2302us; 2303us; 2305us; 2306us; 2308us; 2340us; 2341us; 2345us; 2347us; 2348us; 2350us; 2352us; 2353us; 2394us; 2401us; 2402us; 2403us; 2407us; 2410us; 2412us; 2414us; 2416us; 2423us; 2424us; 2436us; 2438us; 2446us; 2448us; 2454us; 2456us; 2457us; 2458us; 2460us; 2461us; 2462us; 2463us; 2465us; 2497us; 2498us; 2499us; 2505us; 2509us; 2510us; 2511us; 2516us; 2517us; 2524us; 2530us; 2531us; 2532us; 2539us; 2545us; 2546us; 2547us; 2548us; 2549us; 2560us; 2561us; 2564us; 2575us; 2576us; 2578us; 2579us; 2581us; 2584us; 2585us; 2586us; 2588us; 2590us; 2591us; 2593us; 2629us; 2631us; 2633us; 2701us; 2702us; 2738us; 2740us; 2744us; 2812us; 2813us; 2814us; 2816us; 2817us; 2821us; 2825us; 2841us; 2889us; 2890us; 2891us; 2894us; 2896us; 2897us; 2927us; 2935us; 2936us; 2938us; 2942us; 2945us; 2947us; 2979us; 2982us; 2984us; 2985us; 2986us; 2988us; 2989us; 2991us; 2992us; 2994us; 2995us; 3030us; 3032us; 3034us; 3102us; 3104us; 3105us; 3107us; 3108us; 3110us; 3114us; 3116us; 3118us; 3149us; 3150us; 3152us; 3156us; 3158us; 3160us; 3162us; 3230us; 3233us; 3234us; 3265us; 3266us; 3268us; 3272us; 3273us; 3274us; 3278us; 3279us; 3280us; 3281us; 3282us; 3283us; 3284us; 3287us; 3291us; 3292us; 3299us; 3303us; 3304us; 3310us; 3314us; 3315us; 3352us; 3382us; 3383us; 3410us; 3412us; 3413us; 3414us; 3415us; 3417us; 3418us; 3419us; 3422us; 3423us; 3424us; 3426us; 3432us; 3433us; 3434us; 3435us; 3438us; 3453us; 3454us; 3458us; 3463us; 3467us; 3469us; 3470us; 3472us; 3473us; 3474us; 3476us; 3478us; 3479us; 3480us; 3481us; 3485us; 3518us; 3521us; 3523us; 3526us; 3527us; 3528us; 3529us; 3530us; 3562us; 3566us; 3567us; 3570us; 3576us; 3577us; 3578us; 3582us; 3583us; 3613us; 3615us; 3616us; 3617us; 3618us; 3619us; 3620us; 3621us; 3627us; 3631us; 3634us; 3636us; 3637us; 3638us; 3640us; 3645us; 3646us; 3649us; 3651us; 3653us; 3656us; 3657us; 3658us; 3661us; 3662us; 3664us; 3666us; 3668us; 3669us; 3670us; 3672us; 3676us; 3678us; 3680us; 3681us; 3682us; 3710us; 3715us; 3717us; 3719us; 3721us; 3726us; 3727us; 3728us; 3731us; 3733us; 3764us; 3765us; 3768us; 3799us; 3800us; 3806us; 3807us; 3811us; 3812us; 3813us; 3815us; 3819us; 3820us; 3823us; 3828us; 3830us; 3832us; 3834us; 3838us; 3839us; 3842us; 3843us; 3844us; 3847us; 3848us; 3849us; 3851us; 3852us; 3854us; 3856us; 3857us; 3860us; 3861us; 3863us; 3865us; 3866us; 3870us; 3874us; 3879us; 3880us; 3911us; 3913us; 3914us; 3946us; 3948us; 3949us; 3968us; 3970us; 3971us; 3972us; 4002us; 4006us; 4007us; 4009us; 4013us; 4014us; 4019us; 4020us; 4039us; 4041us; 4087us; 4088us; 4119us; 4120us; 4121us; 4129us; 4159us; 4160us; 4163us; 4170us; 4171us; 4172us; 4174us; 4175us; 4179us; 4181us; 4183us; 4214us; 4215us; 4217us; 4218us; 4220us; 4221us; 4222us; 4224us; 4228us; 4230us; 4232us; 4233us; 4235us; 4266us; 4267us; 4270us; 4272us; 4275us; 4277us; 4279us; 4282us; 4283us; 4284us; 4352us; 4353us; 4355us; 4358us; 4362us; 4363us; 4431us; 4435us; 4436us; 4437us; 4438us; 4439us; 4440us; 4441us; 4442us; 4444us; 4448us; 4450us; 4453us; 4455us; 4460us; 4464us; 4465us; 4467us; 4469us; 4471us; 4472us; 4474us; 4475us; 4479us; 4486us; 4487us; 4489us; 4495us; 4497us; 4499us; 4500us; 4501us; 4502us; 4504us; 4506us; 4507us; 4511us; 4513us; 4514us; 4517us; 4519us; 4520us; 4522us; 4523us; 4524us; 4526us; 4562us; 4564us; 4568us; 4637us; 4638us; 4639us; 4640us; 4707us; 4713us; 4714us; 4715us; 4716us; 4717us; 4719us; 4720us; 4723us; 4726us; 4794us; 4795us; 4798us; 4799us; 4800us; 4803us; 4834us; 4835us; 4836us; 4837us; 4838us; 4839us; 4840us; 4841us; 4842us; 4843us; 4844us; 4845us; 4846us; 4847us; 4848us; 4849us; 4851us; 4852us; 4853us; 4854us; 4855us; 4857us; 4859us; 4860us; 4866us; 4867us; 4869us; 4870us; 4872us; 4875us; 4906us; 4907us; 4911us; 4915us; 4916us; 4925us; 4931us; 4932us; 4933us; 4934us; 4938us; 4939us; 4940us; 4944us; 4946us; 4949us; 4952us; 4954us; 4956us; 4963us; 4970us; 4972us; 4973us; 5009us; 5045us; 5047us; 5048us; 5049us; 5085us; 5121us; 5157us; 5193us; 5223us; 5260us; 5261us; 5296us; 5297us; 5332us; 5333us; 5363us; 5365us; 5366us; 5403us; 5404us; 5439us; 5440us; 5475us; 5476us; 5477us; 5479us; 5480us; 5483us; 5487us; 5488us; 5525us; 5527us; 5528us; 5565us; 5567us; 5568us; 5569us; 5571us; 5573us; 5574us; 5575us; 5576us; 5577us; 5578us; 5579us; 5642us; 5648us; 5649us; 5650us; 5654us; 5657us; 5658us; 5665us; 5670us; 5674us; 5677us; 5681us; 5685us; 5688us; 5691us; 5698us; 5707us; 5723us; 5731us; 5733us; 5734us; 5771us; 5773us; 5775us; 5806us; 5807us; 5844us; 5881us; 5882us; 5919us; 5956us; 5993us; 6030us; 6031us; 6034us; 6035us; 6038us; 6039us; 6042us; 6079us; 6080us; 6117us; 6118us; 6185us; 6191us; 6192us; 6193us; 6194us; 6261us; 6265us; 6266us; 6292us; 6294us; 6295us; 6297us; 6328us; 6329us; 6359us; 6390us; 6421us; 6488us; 6489us; 6556us; 6557us; 6559us; 6626us; 6630us; 6631us; 6701us; 6702us; 6705us; 6708us; 6711us; 6714us; 6717us; 6719us; 6721us; 6723us; 6725us; 6729us; 6733us; 6737us; 6738us; 6740us; 6808us; 6809us; 6810us; 6880us; 6881us; 6882us; 6951us; 6952us; 6953us; 6954us; 6955us; 6956us; 7023us; 7028us; 7029us; 7030us; 7097us; 7103us; 7104us; 7105us; 7173us; 7174us; 7243us; 7273us; 7274us; 7275us; 7276us; 7343us; 7344us; 7403us; 7404us; 7472us; 7473us; 7533us; 7534us; 7603us; 7633us; 7702us; 7707us; 7708us; 7709us; 7712us; 7713us; 7714us; 7715us; 7716us; 7760us; 7771us; 7846us; 7856us; 7857us; 7858us; 7859us; 7860us; 7861us; 7866us; 7936us; 7941us; 7942us; 7943us; 7944us; 7945us; 7946us; 8014us; 8017us; 8018us; 8019us; 8020us; 8021us; 8088us; 8114us; 8181us; 8207us; 8243us; 8311us; 8313us; 8315us; 8383us; 8384us; 8420us; 8488us; 8492us; 8494us; 8563us; 8564us; 8565us; 8632us; 8634us; 8636us; 8704us; 8705us; 8773us; 8777us; 8778us; 8780us; 8781us; 8848us; 8849us; 8875us; 8896us; 8917us; 8927us; 8948us; 8967us; 8986us; 8996us; 9006us; 9016us; 9026us; 9036us; 9046us; 9056us; 9058us; 9067us; 9072us; 9077us; 9079us; 9081us; 9083us; 9109us; 9135us; 9161us; 9191us; 9215us; 9239us; 9266us; 9291us; 9316us; 9343us; 9370us; 9396us; 9424us; 9450us; 9481us; 9482us; 9513us; 9514us; 9545us; 9546us; 9613us; 9615us; 9683us; 9684us; 9686us; 9754us; 9822us; 9890us; 9958us; 10026us; 10094us; 10162us; 10230us; 10298us; 10366us; 10434us; 10502us; 10570us; 10638us; 10706us; 10774us; 10842us; 10910us; 10978us; 11046us; 11047us; 11048us; 11049us; 11050us; 11051us; 11052us; 11053us; 11054us; 11055us; 11056us; 11057us; 11058us; 11059us; 11060us; 11061us; 11062us; 11063us; 11064us; 11065us; 11066us; 11067us; 11134us; 11138us; 11139us; 11178us; 11179us; 11218us; 11222us; 11223us; 11224us; 11225us; 11263us; 11264us; 11265us; 11266us; 11267us; 11270us; 11273us; 11311us; 11312us; 11313us; 11314us; 11315us; 11382us; 11449us; 11450us; 11454us; 11455us; 11522us; 11524us; 11591us; 11597us; 11598us; 11599us; 11666us; 11668us; 11735us; 11741us; 11742us; 11743us; 11810us; 11811us; 11812us; 11886us; 11887us; 11961us; 11962us; 12005us; 12048us; 12049us; 12092us; 12135us; 12136us; 12179us; 12222us; 12223us; 12266us; 12309us; 12310us; 12353us; 12396us; 12397us; 12440us; 12483us; 12484us; 12515us; 12546us; 12549us; 12583us; 12611us; 12639us; 12640us; 12646us; 12647us; 12648us; 12691us; 12692us; 12735us; 12736us; 12771us; 12809us; 12810us; 12816us; 12850us; 12856us; 12862us; 12865us; 12867us; 12873us; 12879us; 12913us; 12947us; 12949us; 12950us; 12984us; 13018us; 13025us; 13026us; 13028us; 13035us; 13036us; 13040us; 13044us; 13045us; 13048us; 13049us; 13050us; 13051us; 13120us; 13124us; 13125us; 13126us; 13127us; 13128us; 13129us; 13130us; 13131us; 13217us; 13221us; 13223us; 13225us; 13226us; 13230us; 13231us; 13302us; 13306us; 13307us; 13308us; 13309us; 13310us; 13313us; 13314us; 13383us; 13386us; 13387us; 13456us; 13459us; 13460us; 13529us; 13531us; 13532us; 13599us; 13666us; 13667us; 13668us; 13669us; 13670us; 13671us; 13672us; 13673us; 13674us; 13675us; 13676us; 13745us; 13749us; 13750us; 13751us; 13753us; 13754us; 13755us; 13824us; 13894us; 13898us; 13899us; 13900us; 13901us; 13902us; 13971us; 13975us; 13976us; 13977us; 13978us; 13979us; 14057us; 14151us; 14245us; 14246us; 14256us; 14257us; 14258us; 14259us; 14260us; 14261us; 14262us; 14263us; 14264us; 14265us; 14267us; 14269us; 14271us; 14275us; 14342us; 14343us; 14344us; 14345us; 14346us; 14351us; 14356us; 14357us; 14359us; 14360us; 14434us; 14440us; 14441us; 14442us; 14443us; 14444us; 14445us; 14446us; 14447us; 14448us; 14449us; 14450us; 14451us; 14520us; 14587us; 14588us; 14655us; 14656us; 14730us; 14731us; 14732us; 14733us; 14800us; 14867us; 14870us; 14874us; 14875us; 14911us; 14913us; 14914us; 14915us; 14916us; 14918us; 14949us; 14953us; 14954us; 14985us; 14986us; 15021us; 15022us; 15052us; 15055us; 15082us; 15083us; 15086us; 15087us; 15155us; 15156us; 15159us; 15160us; 15162us; 15230us; 15231us; 15234us; 15235us; 15239us; 15240us; 15243us; 15244us; 15250us; 15252us; 15253us; 15254us; 15257us; 15259us; 15260us; 15261us; 15265us; 15267us; 15269us; 15270us; 15271us; 15273us; 15274us; 15275us; 15284us; 15359us; 15360us; 15361us; 15362us; 15366us; 15368us; 15372us; 15373us; 15376us; 15377us; 15378us; 15379us; 15383us; 15384us; 15387us; 15389us; 15390us; 15394us; 15395us; 15399us; 15400us; 15404us; 15405us; 15409us; 15410us; 15440us; 15449us; 15453us; 15455us; 15456us; 15457us; 15458us; 15493us; 15495us; 15564us; 15565us; 15566us; 15602us; 15605us; 15675us; 15679us; 15680us; 15681us; 15683us; 15684us; 15685us; 15687us; 15688us; 15690us; 15691us; 15730us; 15731us; 15770us; 15772us; 15773us; 15775us; 15780us; 15782us; 15787us; 15819us; 15820us; 15822us; 15854us; 15855us; 15857us; 15889us; 15890us; 15892us; 15924us; 15925us; 15956us; 15964us; 15994us; 16001us; 16003us; 16005us; 16035us; 16042us; 16050us; 16080us; 16087us; 16089us; 16091us; 16121us; 16128us; 16130us; 16161us; 16162us; 16171us; 16201us; 16202us; 16232us; 16233us; 16263us; 16264us; 16273us; 16303us; 16304us; 16334us; 16335us; 16343us; 16373us; 16374us; 16376us; 16377us; 16379us; 16381us; 16383us; 16388us; 16390us; 16391us; 16398us; 16399us; 16462us; 16464us; 16466us; 16467us; 16530us; 16531us; 16594us; 16626us; 16658us; 16662us; 16666us; 16671us; 16676us; 16677us; 16740us; 16741us; 16772us; 16803us; 16804us; 16867us; 16869us; 16871us; 16902us; 16933us; 16934us; 16997us; 17000us; 17001us; 17004us; 17005us; 17008us; 17009us; 17011us; 17012us; 17014us; 17045us; 17046us; 17048us; 17053us; 17084us; 17085us; 17086us; 17151us; 17154us; 17157us; 17160us; 17161us; 17224us; 17226us; 17228us; 17229us; 17292us; 17293us; 17323us; 17325us; 17326us; 17327us; 17359us; 17365us; 17372us; 17373us; 17374us; 17375us; 17376us; 17410us; 17411us; 17412us; 17416us; 17417us; 17418us; 17421us; 17425us; 17426us; 17434us; 17435us; 17436us; 17438us; 17439us; 17473us; 17475us; 17513us; 17514us; 17515us; 17516us; 17517us; 17521us; 17522us; 17523us; 17524us; 17525us; 17527us; 17558us; 17559us; 17560us; 17561us; 17570us; 17574us; 17575us; 17577us; 17578us; 17580us; 17581us; 17589us; 17595us; 17596us; 17598us; 17601us; 17602us; 17604us; 17605us; 17606us; 17613us; 17614us; 17615us; 17616us; 17617us; 17618us; 17626us; 17634us; 17642us; 17644us; 17645us; 17646us; 17648us; 17650us; 17651us; 17652us; 17653us; 17654us; 17663us; 17664us; 17665us; 17693us; 17697us; 17698us; 17702us; 17703us; 17704us; 17706us; 17712us; 17713us; 17715us; 17719us; 17720us; 17721us; 17722us; 17723us; 17724us; 17725us; 17726us; 17727us; 17728us; 17729us; 17730us; 17731us; 17732us; 17733us; 17734us; 17735us; 17736us; 17737us; 17738us; 17739us; 17740us; 17741us; 17742us; 17743us; 17745us; 17746us; 17748us; 17749us; 17750us; 17752us; 17753us; 17754us; 17755us; 17756us; 17758us; 17759us; 17764us; 17765us; 17766us; 17767us; 17768us; 17769us; 17770us; 17774us; 17775us; 17776us; 17777us; 17780us; 17781us; 17785us; 17786us; 17788us; 17790us; 17791us; 17792us; 17793us; 17794us; 17795us; 17796us; 17797us; 17798us; 17799us; 17800us; 17801us; 17802us; 17803us; 17804us; 17805us; 17806us; 17807us; 17808us; 17809us; 17810us; 17811us; 17812us; 17813us; 17814us; 17815us; 17816us; 17817us; 17818us; 17819us; 17823us; 17827us; 17828us; 17829us; 17830us; 17834us; 17838us; 17839us; 17840us; 17841us; 17845us; 17846us; 17847us; 17848us; 17852us; 17853us; 17854us; 17855us; 17859us; 17860us; 17861us; 17862us; 17863us; 17864us; 17865us; 17866us; 17867us; 17868us; 17869us; 17870us; 17871us; 17872us; |] +let _fsyacc_reductionSymbolCounts = [|1us; 1us; 1us; 1us; 1us; 1us; 3us; 1us; 1us; 1us; 0us; 2us; 1us; 1us; 1us; 2us; 2us; 2us; 3us; 3us; 3us; 1us; 2us; 3us; 1us; 2us; 3us; 2us; 2us; 3us; 2us; 3us; 2us; 1us; 2us; 2us; 1us; 3us; 1us; 2us; 2us; 1us; 3us; 4us; 1us; 4us; 1us; 1us; 4us; 3us; 3us; 1us; 1us; 0us; 3us; 3us; 2us; 4us; 3us; 3us; 1us; 1us; 0us; 5us; 4us; 3us; 1us; 2us; 2us; 3us; 1us; 2us; 3us; 1us; 1us; 3us; 3us; 3us; 5us; 3us; 5us; 2us; 1us; 3us; 1us; 3us; 3us; 3us; 3us; 3us; 1us; 1us; 3us; 3us; 3us; 0us; 3us; 1us; 1us; 5us; 5us; 3us; 3us; 2us; 12us; 0us; 2us; 4us; 3us; 5us; 3us; 1us; 0us; 1us; 2us; 5us; 4us; 4us; 2us; 1us; 3us; 3us; 4us; 6us; 2us; 2us; 2us; 2us; 2us; 3us; 1us; 3us; 2us; 7us; 2us; 1us; 1us; 3us; 1us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 1us; 1us; 0us; 3us; 2us; 1us; 1us; 1us; 1us; 1us; 2us; 0us; 2us; 3us; 3us; 1us; 3us; 11us; 4us; 4us; 4us; 5us; 5us; 5us; 3us; 3us; 0us; 1us; 3us; 2us; 8us; 7us; 6us; 2us; 1us; 1us; 3us; 1us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 1us; 1us; 2us; 0us; 3us; 2us; 3us; 3us; 1us; 3us; 6us; 5us; 4us; 1us; 2us; 3us; 4us; 5us; 5us; 10us; 3us; 4us; 5us; 5us; 8us; 5us; 6us; 8us; 0us; 2us; 3us; 1us; 2us; 0us; 1us; 1us; 1us; 1us; 1us; 0us; 3us; 0us; 3us; 0us; 3us; 0us; 3us; 5us; 2us; 1us; 0us; 2us; 1us; 0us; 2us; 2us; 3us; 3us; 1us; 3us; 2us; 4us; 4us; 3us; 4us; 1us; 1us; 6us; 3us; 3us; 3us; 5us; 3us; 3us; 3us; 3us; 1us; 1us; 1us; 1us; 1us; 2us; 3us; 3us; 1us; 3us; 3us; 1us; 2us; 5us; 3us; 1us; 0us; 5us; 1us; 0us; 1us; 0us; 0us; 2us; 3us; 1us; 4us; 3us; 3us; 4us; 3us; 5us; 7us; 4us; 4us; 3us; 3us; 1us; 2us; 3us; 1us; 1us; 3us; 1us; 4us; 6us; 6us; 6us; 1us; 3us; 4us; 2us; 4us; 2us; 3us; 4us; 1us; 3us; 1us; 3us; 2us; 2us; 5us; 2us; 2us; 1us; 5us; 1us; 3us; 0us; 2us; 2us; 3us; 1us; 2us; 4us; 3us; 1us; 1us; 1us; 1us; 1us; 1us; 8us; 1us; 1us; 0us; 3us; 3us; 2us; 3us; 1us; 4us; 2us; 2us; 2us; 2us; 2us; 2us; 3us; 0us; 2us; 1us; 6us; 6us; 5us; 3us; 3us; 1us; 2us; 2us; 0us; 4us; 3us; 1us; 3us; 2us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 3us; 1us; 1us; 2us; 3us; 2us; 1us; 3us; 3us; 2us; 3us; 3us; 2us; 3us; 3us; 3us; 1us; 1us; 1us; 3us; 3us; 3us; 3us; 2us; 3us; 4us; 4us; 2us; 1us; 2us; 3us; 3us; 1us; 1us; 3us; 3us; 3us; 3us; 1us; 2us; 1us; 1us; 1us; 1us; 1us; 3us; 3us; 3us; 2us; 1us; 0us; 3us; 3us; 1us; 1us; 3us; 2us; 3us; 1us; 3us; 3us; 3us; 3us; 1us; 2us; 3us; 3us; 0us; 2us; 3us; 3us; 3us; 1us; 3us; 1us; 2us; 1us; 3us; 1us; 3us; 2us; 1us; 3us; 5us; 1us; 1us; 1us; 3us; 3us; 2us; 2us; 3us; 3us; 1us; 1us; 1us; 3us; 3us; 3us; 3us; 4us; 3us; 3us; 2us; 2us; 2us; 1us; 2us; 2us; 1us; 5us; 5us; 5us; 3us; 2us; 3us; 5us; 5us; 5us; 4us; 3us; 5us; 5us; 5us; 4us; 3us; 5us; 2us; 4us; 3us; 2us; 2us; 7us; 7us; 7us; 5us; 3us; 4us; 2us; 3us; 3us; 3us; 3us; 3us; 1us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 1us; 1us; 3us; 2us; 3us; 3us; 1us; 2us; 2us; 1us; 2us; 2us; 4us; 4us; 3us; 2us; 2us; 0us; 2us; 2us; 2us; 4us; 4us; 0us; 2us; 4us; 4us; 3us; 3us; 3us; 3us; 3us; 3us; 2us; 2us; 2us; 2us; 2us; 2us; 4us; 4us; 2us; 2us; 2us; 1us; 2us; 1us; 2us; 1us; 3us; 3us; 3us; 2us; 3us; 3us; 2us; 3us; 1us; 1us; 3us; 3us; 3us; 2us; 1us; 1us; 0us; 1us; 5us; 3us; 3us; 3us; 3us; 2us; 3us; 5us; 7us; 9us; 3us; 2us; 2us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 3us; 3us; 3us; 2us; 3us; 3us; 3us; 2us; 3us; 3us; 3us; 2us; 2us; 3us; 3us; 3us; 2us; 2us; 2us; 2us; 2us; 6us; 1us; 1us; 1us; 3us; 3us; 1us; 3us; 3us; 3us; 2us; 2us; 1us; 1us; 1us; 1us; 0us; 1us; 1us; 3us; 5us; 3us; 2us; 3us; 3us; 3us; 2us; 5us; 6us; 2us; 0us; 0us; 1us; 0us; 4us; 0us; 2us; 3us; 6us; 5us; 1us; 2us; 5us; 5us; 4us; 6us; 1us; 0us; 1us; 1us; 2us; 2us; 1us; 1us; 3us; 0us; 3us; 2us; 3us; 1us; 2us; 4us; 3us; 2us; 5us; 4us; 2us; 1us; 0us; 2us; 3us; 3us; 2us; 0us; 2us; 2us; 5us; 1us; 1us; 4us; 4us; 5us; 5us; 5us; 4us; 4us; 3us; 2us; 3us; 1us; 3us; 1us; 3us; 0us; 2us; 3us; 1us; 3us; 1us; 3us; 1us; 4us; 5us; 2us; 3us; 4us; 1us; 3us; 1us; 3us; 2us; 3us; 1us; 3us; 3us; 1us; 3us; 1us; 1us; 1us; 3us; 1us; 2us; 3us; 2us; 4us; 1us; 3us; 3us; 2us; 3us; 4us; 5us; 4us; 3us; 3us; 0us; 1us; 3us; 4us; 2us; 3us; 2us; 4us; 1us; 3us; 3us; 1us; 3us; 4us; 2us; 1us; 1us; 3us; 3us; 1us; 1us; 2us; 1us; 1us; 3us; 2us; 3us; 4us; 3us; 1us; 2us; 6us; 6us; 4us; 3us; 3us; 2us; 2us; 1us; 3us; 2us; 1us; 1us; 0us; 3us; 3us; 1us; 1us; 3us; 1us; 3us; 4us; 1us; 1us; 2us; 1us; 3us; 3us; 2us; 2us; 1us; 2us; 1us; 1us; 1us; 3us; 3us; 3us; 3us; 1us; 4us; 6us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 2us; 2us; 1us; 2us; 3us; 1us; 1us; 1us; 1us; 3us; 3us; 1us; 1us; 1us; 1us; 1us; 2us; 1us; 1us; 1us; 2us; 2us; 0us; 2us; 0us; 1us; 1us; 2us; 2us; 1us; 1us; 1us; 1us; 1us; 1us; 0us; 1us; 0us; 1us; 0us; 1us; 0us; 1us; 0us; 1us; 0us; 1us; 0us; 1us; 0us; 1us; 0us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 0us; 1us; 0us; 2us; 1us; 1us; 2us; 1us; 1us; 2us; 1us; 1us; 2us; 1us; 1us; 2us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; 1us; |] +let _fsyacc_productionToNonTerminalTable = [|0us; 1us; 2us; 3us; 3us; 3us; 4us; 5us; 5us; 6us; 7us; 7us; 8us; 8us; 9us; 9us; 9us; 9us; 9us; 9us; 9us; 10us; 10us; 11us; 12us; 13us; 13us; 13us; 14us; 14us; 14us; 15us; 16us; 17us; 17us; 18us; 18us; 19us; 20us; 20us; 21us; 21us; 22us; 23us; 23us; 24us; 24us; 25us; 25us; 25us; 25us; 26us; 26us; 26us; 27us; 27us; 27us; 28us; 28us; 28us; 28us; 29us; 29us; 30us; 30us; 30us; 30us; 30us; 31us; 31us; 31us; 31us; 31us; 32us; 32us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 34us; 34us; 35us; 35us; 35us; 35us; 35us; 35us; 35us; 36us; 36us; 36us; 37us; 38us; 39us; 39us; 39us; 39us; 39us; 39us; 39us; 40us; 41us; 41us; 41us; 42us; 42us; 42us; 43us; 43us; 44us; 44us; 45us; 45us; 45us; 45us; 46us; 46us; 47us; 47us; 47us; 48us; 48us; 48us; 48us; 49us; 50us; 50us; 51us; 51us; 52us; 52us; 53us; 53us; 53us; 54us; 54us; 54us; 54us; 55us; 55us; 55us; 55us; 56us; 56us; 56us; 57us; 57us; 58us; 59us; 59us; 59us; 59us; 60us; 60us; 60us; 61us; 61us; 61us; 61us; 62us; 62us; 63us; 63us; 63us; 63us; 63us; 63us; 63us; 64us; 65us; 65us; 66us; 66us; 66us; 66us; 67us; 67us; 67us; 68us; 68us; 68us; 69us; 69us; 69us; 69us; 70us; 70us; 71us; 71us; 71us; 72us; 72us; 72us; 73us; 74us; 74us; 74us; 75us; 75us; 76us; 77us; 77us; 78us; 78us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 79us; 80us; 81us; 82us; 82us; 83us; 83us; 83us; 84us; 84us; 85us; 85us; 85us; 86us; 86us; 87us; 87us; 88us; 88us; 89us; 89us; 90us; 90us; 90us; 91us; 91us; 92us; 93us; 93us; 94us; 94us; 95us; 95us; 95us; 96us; 96us; 97us; 97us; 97us; 97us; 98us; 98us; 99us; 99us; 99us; 99us; 99us; 100us; 100us; 100us; 101us; 102us; 102us; 102us; 103us; 103us; 104us; 104us; 104us; 105us; 105us; 106us; 106us; 107us; 108us; 109us; 109us; 109us; 110us; 111us; 111us; 112us; 112us; 113us; 113us; 114us; 114us; 115us; 115us; 115us; 115us; 115us; 115us; 115us; 115us; 115us; 115us; 116us; 116us; 117us; 117us; 117us; 118us; 119us; 119us; 120us; 120us; 120us; 120us; 121us; 121us; 121us; 122us; 122us; 122us; 123us; 123us; 124us; 124us; 124us; 125us; 125us; 126us; 127us; 128us; 129us; 130us; 131us; 132us; 132us; 133us; 133us; 134us; 135us; 135us; 136us; 137us; 138us; 139us; 139us; 139us; 139us; 140us; 140us; 141us; 142us; 142us; 142us; 143us; 143us; 144us; 144us; 145us; 145us; 145us; 145us; 145us; 146us; 146us; 147us; 148us; 148us; 149us; 149us; 150us; 150us; 150us; 151us; 151us; 151us; 152us; 153us; 153us; 154us; 155us; 155us; 156us; 156us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 157us; 158us; 158us; 159us; 160us; 160us; 160us; 160us; 161us; 161us; 162us; 162us; 162us; 162us; 162us; 163us; 163us; 163us; 163us; 163us; 163us; 164us; 164us; 165us; 165us; 166us; 166us; 166us; 166us; 166us; 166us; 167us; 167us; 167us; 167us; 168us; 168us; 168us; 168us; 168us; 168us; 168us; 168us; 168us; 168us; 168us; 168us; 168us; 168us; 168us; 168us; 169us; 169us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 170us; 171us; 171us; 172us; 172us; 173us; 174us; 174us; 175us; 176us; 176us; 176us; 177us; 177us; 177us; 178us; 178us; 179us; 179us; 180us; 180us; 181us; 181us; 181us; 181us; 181us; 181us; 182us; 182us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 183us; 184us; 184us; 185us; 185us; 185us; 186us; 186us; 186us; 186us; 187us; 188us; 188us; 188us; 188us; 188us; 189us; 189us; 190us; 191us; 192us; 192us; 192us; 193us; 193us; 193us; 193us; 193us; 193us; 194us; 194us; 194us; 194us; 195us; 195us; 195us; 195us; 195us; 195us; 195us; 195us; 195us; 195us; 195us; 195us; 196us; 196us; 197us; 197us; 198us; 198us; 198us; 198us; 198us; 198us; 198us; 198us; 198us; 198us; 198us; 198us; 198us; 198us; 198us; 199us; 199us; 199us; 199us; 199us; 199us; 199us; 199us; 199us; 199us; 199us; 199us; 199us; 200us; 200us; 200us; 200us; 201us; 201us; 201us; 201us; 201us; 201us; 201us; 201us; 201us; 202us; 202us; 202us; 202us; 203us; 203us; 203us; 203us; 204us; 204us; 204us; 204us; 205us; 205us; 205us; 205us; 205us; 205us; 205us; 205us; 205us; 206us; 206us; 206us; 207us; 207us; 208us; 208us; 209us; 209us; 209us; 209us; 209us; 210us; 210us; 210us; 211us; 211us; 212us; 212us; 213us; 213us; 213us; 214us; 215us; 215us; 215us; 215us; 216us; 217us; 218us; 218us; 219us; 219us; 220us; 220us; 221us; 221us; 221us; 222us; 222us; 222us; 222us; 222us; 222us; 222us; 222us; 223us; 223us; 224us; 224us; 224us; 224us; 225us; 225us; 226us; 226us; 227us; 227us; 227us; 227us; 227us; 228us; 228us; 228us; 229us; 229us; 229us; 230us; 230us; 231us; 231us; 231us; 232us; 233us; 233us; 233us; 234us; 235us; 235us; 236us; 236us; 236us; 236us; 236us; 236us; 236us; 236us; 237us; 237us; 238us; 238us; 239us; 239us; 240us; 240us; 241us; 241us; 242us; 242us; 243us; 243us; 244us; 244us; 244us; 244us; 244us; 244us; 245us; 245us; 246us; 246us; 246us; 246us; 247us; 247us; 247us; 248us; 248us; 249us; 249us; 250us; 250us; 251us; 251us; 251us; 251us; 251us; 251us; 251us; 252us; 252us; 252us; 252us; 253us; 254us; 254us; 254us; 255us; 255us; 255us; 256us; 256us; 256us; 256us; 256us; 256us; 256us; 257us; 257us; 257us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 258us; 259us; 259us; 260us; 260us; 260us; 260us; 260us; 260us; 260us; 261us; 261us; 261us; 262us; 262us; 263us; 264us; 264us; 265us; 265us; 265us; 266us; 266us; 266us; 266us; 267us; 267us; 268us; 268us; 268us; 268us; 269us; 269us; 270us; 271us; 272us; 272us; 272us; 272us; 273us; 273us; 273us; 273us; 273us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 274us; 275us; 276us; 276us; 277us; 277us; 278us; 278us; 278us; 278us; 279us; 280us; 280us; 280us; 281us; 281us; 282us; 282us; 283us; 283us; 284us; 284us; 285us; 285us; 286us; 286us; 286us; 286us; 287us; 287us; 287us; 288us; 288us; 288us; 288us; 289us; 289us; 290us; 290us; 291us; 291us; 292us; 292us; 293us; 293us; 294us; 294us; 295us; 295us; 296us; 296us; 297us; 297us; 298us; 298us; 299us; 299us; 300us; 300us; 301us; 301us; 302us; 303us; 303us; 303us; 304us; 304us; 305us; 305us; 305us; 306us; 306us; 306us; 307us; 307us; 307us; 308us; 308us; 308us; 309us; 309us; 309us; 310us; 310us; 310us; 310us; 310us; 311us; 311us; 311us; 311us; 311us; 311us; |] +let _fsyacc_immediateActions = [|65535us; 49152us; 65535us; 49152us; 65535us; 49152us; 16387us; 16388us; 16389us; 65535us; 65535us; 65535us; 16391us; 16392us; 16393us; 16395us; 16396us; 16397us; 16398us; 65535us; 16399us; 65535us; 16400us; 65535us; 16401us; 65535us; 16402us; 65535us; 16403us; 65535us; 16404us; 65535us; 16406us; 65535us; 65535us; 65535us; 16408us; 65535us; 16409us; 65535us; 16410us; 65535us; 16411us; 65535us; 16412us; 65535us; 16413us; 65535us; 16414us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16418us; 65535us; 16419us; 65535us; 65535us; 16421us; 65535us; 16423us; 65535us; 16424us; 65535us; 65535us; 16426us; 65535us; 65535us; 65535us; 16427us; 16428us; 65535us; 65535us; 65535us; 16429us; 16430us; 16431us; 65535us; 65535us; 65535us; 16432us; 16433us; 65535us; 16434us; 16435us; 65535us; 65535us; 65535us; 16438us; 65535us; 65535us; 16439us; 65535us; 65535us; 65535us; 16441us; 16442us; 65535us; 16443us; 16444us; 16445us; 65535us; 65535us; 65535us; 65535us; 16447us; 16450us; 16451us; 65535us; 16452us; 65535us; 16453us; 65535us; 65535us; 65535us; 65535us; 16456us; 16457us; 16458us; 65535us; 65535us; 16459us; 65535us; 16460us; 65535us; 16461us; 65535us; 65535us; 16462us; 16463us; 65535us; 65535us; 16464us; 65535us; 16465us; 16466us; 65535us; 65535us; 16467us; 65535us; 65535us; 65535us; 16469us; 16470us; 65535us; 16471us; 16472us; 16473us; 16474us; 65535us; 65535us; 65535us; 16476us; 16477us; 16478us; 65535us; 65535us; 16480us; 16481us; 16482us; 65535us; 65535us; 65535us; 65535us; 16483us; 16484us; 16485us; 16486us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16488us; 65535us; 65535us; 65535us; 65535us; 16491us; 65535us; 16492us; 65535us; 65535us; 65535us; 16493us; 65535us; 65535us; 16494us; 16495us; 65535us; 16498us; 65535us; 65535us; 65535us; 65535us; 16499us; 65535us; 65535us; 16500us; 16501us; 16502us; 16503us; 65535us; 16504us; 65535us; 65535us; 16505us; 65535us; 65535us; 65535us; 16506us; 65535us; 65535us; 65535us; 65535us; 16507us; 65535us; 16508us; 65535us; 16509us; 65535us; 16510us; 65535us; 16511us; 65535us; 16512us; 65535us; 65535us; 16513us; 65535us; 65535us; 16515us; 16516us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16517us; 65535us; 16518us; 16519us; 16520us; 65535us; 65535us; 16521us; 16522us; 65535us; 65535us; 16523us; 16524us; 65535us; 16525us; 65535us; 65535us; 16526us; 16527us; 65535us; 65535us; 16528us; 16529us; 65535us; 65535us; 16530us; 16531us; 16532us; 16533us; 65535us; 65535us; 16535us; 65535us; 65535us; 16536us; 16537us; 16538us; 16539us; 16540us; 65535us; 16542us; 65535us; 16544us; 65535us; 65535us; 16545us; 16546us; 65535us; 65535us; 16548us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16549us; 65535us; 65535us; 65535us; 65535us; 65535us; 16552us; 65535us; 16553us; 65535us; 16554us; 65535us; 65535us; 16555us; 65535us; 65535us; 16556us; 65535us; 65535us; 16557us; 65535us; 65535us; 16560us; 16561us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16562us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16563us; 16564us; 65535us; 16565us; 16566us; 16567us; 65535us; 65535us; 16568us; 16569us; 65535us; 65535us; 16570us; 16571us; 65535us; 16572us; 65535us; 65535us; 16573us; 16574us; 65535us; 65535us; 16575us; 16576us; 16577us; 16578us; 65535us; 16579us; 65535us; 65535us; 16581us; 65535us; 16582us; 65535us; 65535us; 16583us; 16584us; 65535us; 65535us; 16586us; 65535us; 65535us; 65535us; 65535us; 65535us; 16587us; 65535us; 65535us; 65535us; 65535us; 16588us; 16589us; 65535us; 16591us; 65535us; 65535us; 65535us; 65535us; 16592us; 16593us; 65535us; 65535us; 16594us; 65535us; 65535us; 16595us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16596us; 16597us; 65535us; 16598us; 65535us; 16599us; 65535us; 16600us; 65535us; 65535us; 65535us; 65535us; 65535us; 16601us; 65535us; 16602us; 65535us; 65535us; 65535us; 65535us; 65535us; 16603us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16604us; 65535us; 16606us; 65535us; 65535us; 16607us; 16608us; 65535us; 16609us; 16611us; 16612us; 16613us; 16614us; 16615us; 65535us; 65535us; 16617us; 65535us; 65535us; 16619us; 65535us; 65535us; 16621us; 65535us; 65535us; 16623us; 65535us; 65535us; 16624us; 16625us; 16626us; 65535us; 16628us; 16629us; 65535us; 16631us; 16632us; 65535us; 65535us; 16633us; 16634us; 16635us; 65535us; 65535us; 16636us; 65535us; 65535us; 65535us; 65535us; 16638us; 65535us; 16639us; 16640us; 65535us; 65535us; 16641us; 16642us; 16643us; 65535us; 65535us; 65535us; 65535us; 65535us; 16644us; 16645us; 16646us; 16647us; 65535us; 65535us; 16648us; 65535us; 65535us; 16649us; 16650us; 65535us; 16651us; 65535us; 65535us; 16652us; 16653us; 16654us; 16655us; 16656us; 16657us; 65535us; 65535us; 65535us; 65535us; 16660us; 16661us; 65535us; 65535us; 16662us; 65535us; 65535us; 65535us; 65535us; 16663us; 16664us; 65535us; 16665us; 65535us; 65535us; 65535us; 16666us; 16667us; 65535us; 65535us; 65535us; 65535us; 16670us; 16671us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16677us; 16678us; 65535us; 65535us; 65535us; 16679us; 65535us; 65535us; 16680us; 65535us; 16681us; 65535us; 16682us; 16683us; 65535us; 65535us; 16684us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16685us; 65535us; 16686us; 16687us; 65535us; 16689us; 16690us; 65535us; 16691us; 65535us; 65535us; 16692us; 65535us; 16694us; 65535us; 65535us; 16695us; 65535us; 65535us; 65535us; 16697us; 65535us; 65535us; 16698us; 65535us; 65535us; 16699us; 65535us; 65535us; 16700us; 16701us; 65535us; 65535us; 16702us; 65535us; 65535us; 16703us; 65535us; 16704us; 65535us; 65535us; 65535us; 16706us; 65535us; 16707us; 16709us; 65535us; 65535us; 16710us; 65535us; 65535us; 16712us; 16713us; 65535us; 16714us; 65535us; 65535us; 65535us; 65535us; 16715us; 65535us; 16716us; 65535us; 16717us; 16718us; 65535us; 65535us; 65535us; 65535us; 16719us; 65535us; 65535us; 16721us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16725us; 16726us; 65535us; 16727us; 65535us; 65535us; 65535us; 16728us; 65535us; 65535us; 16729us; 16730us; 16731us; 16732us; 16733us; 16734us; 16735us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16736us; 65535us; 65535us; 65535us; 16740us; 65535us; 16741us; 65535us; 65535us; 16743us; 65535us; 65535us; 65535us; 65535us; 16745us; 16746us; 16747us; 65535us; 65535us; 16748us; 65535us; 65535us; 16751us; 65535us; 65535us; 16752us; 65535us; 16754us; 16755us; 65535us; 65535us; 65535us; 65535us; 65535us; 16756us; 16757us; 16758us; 65535us; 65535us; 16759us; 16760us; 16761us; 65535us; 65535us; 16763us; 65535us; 65535us; 65535us; 16765us; 65535us; 16766us; 16767us; 65535us; 65535us; 16768us; 16769us; 16770us; 16771us; 16772us; 16773us; 16774us; 16775us; 16776us; 16777us; 16778us; 16779us; 16780us; 16781us; 16782us; 65535us; 16783us; 16784us; 16785us; 16786us; 65535us; 65535us; 16788us; 65535us; 16790us; 65535us; 16791us; 65535us; 65535us; 65535us; 16792us; 65535us; 65535us; 16795us; 65535us; 65535us; 16796us; 16797us; 16798us; 65535us; 16799us; 16800us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16801us; 65535us; 65535us; 65535us; 65535us; 16806us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16812us; 65535us; 16813us; 65535us; 16814us; 65535us; 65535us; 16816us; 65535us; 16817us; 65535us; 16818us; 65535us; 16819us; 16821us; 65535us; 16822us; 65535us; 65535us; 16823us; 65535us; 65535us; 16824us; 65535us; 65535us; 16825us; 16826us; 65535us; 65535us; 16827us; 16828us; 16829us; 16830us; 16831us; 16832us; 65535us; 65535us; 16833us; 16834us; 65535us; 65535us; 16836us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16839us; 65535us; 65535us; 65535us; 65535us; 16843us; 65535us; 65535us; 16846us; 65535us; 65535us; 65535us; 65535us; 16851us; 65535us; 16852us; 65535us; 16853us; 65535us; 65535us; 16856us; 65535us; 16857us; 65535us; 65535us; 16858us; 16859us; 16860us; 65535us; 65535us; 16861us; 65535us; 65535us; 16863us; 65535us; 65535us; 16865us; 65535us; 65535us; 65535us; 65535us; 16867us; 65535us; 16870us; 65535us; 65535us; 65535us; 16871us; 65535us; 16873us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16874us; 65535us; 65535us; 16875us; 16876us; 65535us; 16877us; 16878us; 65535us; 16879us; 16880us; 16881us; 16882us; 16883us; 65535us; 65535us; 16884us; 16885us; 65535us; 65535us; 16886us; 16887us; 65535us; 16888us; 65535us; 65535us; 16889us; 16890us; 16891us; 65535us; 65535us; 65535us; 65535us; 65535us; 16895us; 65535us; 16896us; 65535us; 65535us; 65535us; 65535us; 16898us; 16899us; 65535us; 16900us; 16901us; 16902us; 16903us; 65535us; 65535us; 65535us; 65535us; 16904us; 16905us; 16906us; 16907us; 16908us; 65535us; 65535us; 65535us; 16909us; 16910us; 16911us; 16912us; 16913us; 65535us; 65535us; 16914us; 16915us; 16916us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16920us; 65535us; 65535us; 65535us; 65535us; 65535us; 16921us; 16922us; 65535us; 65535us; 65535us; 65535us; 16923us; 65535us; 65535us; 16924us; 65535us; 16925us; 65535us; 16926us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16927us; 65535us; 16928us; 65535us; 16929us; 65535us; 65535us; 65535us; 16931us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16953us; 16954us; 16955us; 16956us; 16957us; 16958us; 16959us; 16960us; 16961us; 16962us; 16963us; 16964us; 16965us; 16966us; 16967us; 16968us; 16969us; 16970us; 16971us; 16972us; 16974us; 65535us; 65535us; 16975us; 65535us; 16976us; 65535us; 65535us; 16977us; 16978us; 16979us; 65535us; 16980us; 16981us; 16982us; 16983us; 65535us; 65535us; 65535us; 16985us; 16986us; 16987us; 16988us; 65535us; 65535us; 16991us; 65535us; 16992us; 65535us; 65535us; 65535us; 65535us; 16994us; 16995us; 65535us; 65535us; 65535us; 65535us; 16998us; 16999us; 65535us; 17000us; 17001us; 65535us; 17003us; 65535us; 17004us; 65535us; 65535us; 17006us; 65535us; 65535us; 17007us; 65535us; 65535us; 17008us; 65535us; 65535us; 17009us; 65535us; 65535us; 17010us; 65535us; 65535us; 17011us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 17012us; 65535us; 17013us; 17014us; 65535us; 17015us; 65535us; 17016us; 65535us; 65535us; 17018us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 17024us; 65535us; 65535us; 65535us; 17026us; 65535us; 65535us; 17027us; 65535us; 65535us; 17028us; 65535us; 17029us; 17030us; 17031us; 65535us; 65535us; 17032us; 17033us; 17034us; 17035us; 17036us; 17037us; 17039us; 65535us; 65535us; 65535us; 65535us; 17040us; 65535us; 17041us; 65535us; 65535us; 17042us; 17043us; 17044us; 17045us; 65535us; 17046us; 65535us; 65535us; 17047us; 65535us; 65535us; 17048us; 65535us; 65535us; 17049us; 65535us; 65535us; 17053us; 17054us; 17055us; 17056us; 17057us; 17058us; 17059us; 17060us; 17061us; 17062us; 65535us; 65535us; 17063us; 17064us; 65535us; 17065us; 17066us; 65535us; 65535us; 65535us; 17067us; 17068us; 17069us; 17070us; 65535us; 65535us; 17071us; 17072us; 17073us; 17074us; 65535us; 65535us; 65535us; 17075us; 65535us; 17076us; 17077us; 17078us; 65535us; 17079us; 17080us; 17081us; 17082us; 17083us; 65535us; 65535us; 65535us; 65535us; 65535us; 17084us; 17085us; 17086us; 17087us; 65535us; 65535us; 17088us; 65535us; 17089us; 65535us; 65535us; 17091us; 17092us; 17093us; 17094us; 17095us; 17096us; 17097us; 17098us; 17099us; 17101us; 17102us; 65535us; 65535us; 17105us; 65535us; 17106us; 65535us; 17108us; 17109us; 17110us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 17112us; 17113us; 17116us; 65535us; 65535us; 65535us; 17118us; 65535us; 17120us; 65535us; 17121us; 65535us; 65535us; 65535us; 65535us; 65535us; 17122us; 65535us; 65535us; 65535us; 17123us; 65535us; 65535us; 65535us; 65535us; 17126us; 65535us; 65535us; 65535us; 17127us; 65535us; 65535us; 17128us; 65535us; 65535us; 65535us; 17129us; 17130us; 65535us; 65535us; 65535us; 17134us; 17135us; 65535us; 17137us; 17138us; 65535us; 65535us; 17140us; 17142us; 17144us; 65535us; 65535us; 65535us; 17145us; 65535us; 17146us; 17148us; 17151us; 65535us; 17153us; 65535us; 65535us; 17154us; 65535us; 17155us; 65535us; 17156us; 65535us; 17158us; 65535us; 17159us; 65535us; 65535us; 65535us; 65535us; 17160us; 17161us; 17162us; 65535us; 65535us; 65535us; 17163us; 17164us; 65535us; 65535us; 65535us; 65535us; 17165us; 17166us; 65535us; 17167us; 17168us; 65535us; 17169us; 65535us; 17170us; 65535us; 17171us; 65535us; 65535us; 17172us; 65535us; 65535us; 65535us; 65535us; 65535us; 17178us; 65535us; 65535us; 17179us; 65535us; 65535us; 17181us; 65535us; 65535us; 17183us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 17191us; 65535us; 65535us; 17193us; 65535us; 17194us; 65535us; 17195us; 65535us; 65535us; 17197us; 65535us; 17198us; 65535us; 65535us; 17200us; 65535us; 17203us; 65535us; 65535us; 65535us; 65535us; 65535us; 17204us; 65535us; 17206us; 65535us; 65535us; 65535us; 17207us; 65535us; 17208us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 17209us; 65535us; 17210us; 65535us; 65535us; 17211us; 65535us; 65535us; 65535us; 65535us; 65535us; 17212us; 65535us; 65535us; 17213us; 65535us; 17214us; 65535us; 17215us; 65535us; 17216us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 17218us; 17219us; 65535us; 65535us; 65535us; 65535us; 17222us; 65535us; 65535us; 65535us; 17223us; 65535us; 17228us; 65535us; 65535us; 17235us; 17236us; 65535us; 65535us; 65535us; 17237us; 17238us; 17239us; 17240us; 65535us; 17242us; 17243us; 65535us; 17244us; 17245us; 65535us; 65535us; 17247us; 65535us; 17248us; 17249us; 65535us; 17250us; 65535us; 65535us; 65535us; 65535us; 17251us; 17252us; 17253us; 65535us; 17254us; 17255us; 17256us; 17257us; 65535us; 65535us; 17259us; 17261us; 17262us; 65535us; 65535us; 17264us; 65535us; 17265us; 65535us; 17267us; 65535us; 65535us; 17268us; 65535us; 65535us; 17270us; 65535us; 17271us; 17272us; 65535us; 17274us; 17275us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 17279us; 17280us; 65535us; 65535us; 17281us; 17282us; 17283us; 17284us; 65535us; 17285us; 17286us; 65535us; 65535us; 17287us; 65535us; 17288us; 17289us; 65535us; 65535us; 17290us; 65535us; 65535us; 17291us; 17292us; 17293us; 17294us; 17295us; 17296us; 17297us; 17298us; 17299us; 17300us; 17301us; 17302us; 17303us; 17304us; 17305us; 17306us; 17307us; 17308us; 17309us; 17310us; 17311us; 17312us; 17313us; 17314us; 65535us; 17316us; 65535us; 17317us; 17318us; 65535us; 17319us; 17320us; 17321us; 17322us; 65535us; 17324us; 65535us; 17325us; 17326us; 17327us; 17328us; 17329us; 17330us; 65535us; 17332us; 17333us; 17334us; 65535us; 17336us; 65535us; 17339us; 65535us; 65535us; 17343us; 17344us; 17345us; 17346us; 17347us; 17348us; 17349us; 17350us; 17352us; 17354us; 17356us; 17358us; 17360us; 17364us; 17366us; 17368us; 17369us; 17370us; 17371us; 17372us; 17373us; 17374us; 17375us; 17376us; 17377us; 17378us; 17379us; 17380us; 17382us; 65535us; 65535us; 17384us; 17385us; 17386us; 65535us; 65535us; 17387us; 17388us; 17389us; 65535us; 17390us; 17391us; 17392us; 65535us; 17393us; 17394us; 17395us; 65535us; 17396us; 17397us; 17398us; 17399us; 17400us; 17401us; 17402us; 17403us; 17404us; 17405us; 17406us; 17407us; 17408us; 17409us; |] +let _fsyacc_reductions () = [| +# 2706 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.ParsedSigFile)) in + Microsoft.FSharp.Core.Operators.box + ( + ( + raise (Internal.Utilities.Text.Parsing.Accept(Microsoft.FSharp.Core.Operators.box _1)) + ) + : '_startsignatureFile)); +# 2715 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.ParsedImplFile)) in + Microsoft.FSharp.Core.Operators.box + ( + ( + raise (Internal.Utilities.Text.Parsing.Accept(Microsoft.FSharp.Core.Operators.box _1)) + ) + : '_startimplementationFile)); +# 2724 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.ParsedFsiInteraction)) in + Microsoft.FSharp.Core.Operators.box + ( + ( + raise (Internal.Utilities.Text.Parsing.Accept(Microsoft.FSharp.Core.Operators.box _1)) + ) + : '_startinteraction)); +# 2733 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveItemsTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 494 "..\pars.fsy" + IDefns (_1,lhs parseState) + ) +# 494 "..\pars.fsy" + : Ast.ParsedFsiInteraction)); +# 2744 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 496 "..\pars.fsy" + warning(Error(FSComp.SR.parsUnexpectedSemicolon(),rhs parseState 1)); + IDefns ([],lhs parseState) + ) +# 496 "..\pars.fsy" + : Ast.ParsedFsiInteraction)); +# 2755 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 499 "..\pars.fsy" + IDefns ([],lhs parseState) + ) +# 499 "..\pars.fsy" + : Ast.ParsedFsiInteraction)); +# 2765 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'hashDirectiveArgs)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 503 "..\pars.fsy" + ParsedHashDirective (_2,_3,lhs parseState) + ) +# 503 "..\pars.fsy" + : 'hashDirective)); +# 2777 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 506 "..\pars.fsy" + _1 + ) +# 506 "..\pars.fsy" + : 'stringOrKeywordString)); +# 2788 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 507 "..\pars.fsy" + _1 + ) +# 507 "..\pars.fsy" + : 'stringOrKeywordString)); +# 2799 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'stringOrKeywordString)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 510 "..\pars.fsy" + _1 + ) +# 510 "..\pars.fsy" + : 'hashDirectiveArg)); +# 2810 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 514 "..\pars.fsy" + [] + ) +# 514 "..\pars.fsy" + : 'hashDirectiveArgs)); +# 2820 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hashDirectiveArgs)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'hashDirectiveArg)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 516 "..\pars.fsy" + _1 @ [_2] + ) +# 516 "..\pars.fsy" + : 'hashDirectiveArgs)); +# 2832 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 519 "..\pars.fsy" + + ) +# 519 "..\pars.fsy" + : 'interactiveTerminator)); +# 2842 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LexerWhitespaceContinuation)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 520 "..\pars.fsy" + + ) +# 520 "..\pars.fsy" + : 'interactiveTerminator)); +# 2853 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 532 "..\pars.fsy" + [] + ) +# 532 "..\pars.fsy" + : 'interactiveItemsTerminator)); +# 2864 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveModuleDefns)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 533 "..\pars.fsy" + _1 + ) +# 533 "..\pars.fsy" + : 'interactiveItemsTerminator)); +# 2876 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 534 "..\pars.fsy" + _1 + ) +# 534 "..\pars.fsy" + : 'interactiveItemsTerminator)); +# 2888 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveHash)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 535 "..\pars.fsy" + _1 + ) +# 535 "..\pars.fsy" + : 'interactiveItemsTerminator)); +# 2900 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveModuleDefns)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveSeparators)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveItemsTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 536 "..\pars.fsy" + _1 @ _3 + ) +# 536 "..\pars.fsy" + : 'interactiveItemsTerminator)); +# 2913 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveSeparators)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveItemsTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 537 "..\pars.fsy" + _1 @ _3 + ) +# 537 "..\pars.fsy" + : 'interactiveItemsTerminator)); +# 2926 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveHash)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveSeparators)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveItemsTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 538 "..\pars.fsy" + _1 @ _3 + ) +# 538 "..\pars.fsy" + : 'interactiveItemsTerminator)); +# 2939 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 542 "..\pars.fsy" + _1 + ) +# 542 "..\pars.fsy" + : 'interactiveModuleDefns)); +# 2950 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefn)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveModuleDefns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 543 "..\pars.fsy" + _1 @ _2 + ) +# 543 "..\pars.fsy" + : 'interactiveModuleDefns)); +# 2962 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 547 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsUnexpectedVisibilityDeclaration(),rhs parseState 3)); + let attrDecls = if nonNil _1 then [ SynModuleDecl.Attributes (_1, rangeOfNonNilAttrs _1) ] else [] in + attrDecls @ [ mkSynDoDecl(_3)] + ) +# 547 "..\pars.fsy" + : 'interactiveExpr)); +# 2977 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hashDirective)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 552 "..\pars.fsy" + [SynModuleDecl.HashDirective(_1,rhs parseState 1)] + ) +# 552 "..\pars.fsy" + : 'interactiveHash)); +# 2988 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceSpecs)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LexerWhitespaceContinuation)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 558 "..\pars.fsy" + checkEndOfFileError _2; _1 + ) +# 558 "..\pars.fsy" + : Ast.ParsedSigFile)); +# 3000 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceSpecs)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LexerWhitespaceContinuation)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 560 "..\pars.fsy" + _1 + ) +# 560 "..\pars.fsy" + : Ast.ParsedSigFile)); +# 3012 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LexerWhitespaceContinuation)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 566 "..\pars.fsy" + let emptySigFileFrag = ParsedSigFileFragment.AnonModule([],rhs parseState 1) in + ParsedSigFile([],[emptySigFileFrag]) + ) +# 566 "..\pars.fsy" + : Ast.ParsedSigFile)); +# 3024 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceImpls)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LexerWhitespaceContinuation)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 571 "..\pars.fsy" + checkEndOfFileError _2; _1 + ) +# 571 "..\pars.fsy" + : Ast.ParsedImplFile)); +# 3036 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceImpls)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LexerWhitespaceContinuation)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 573 "..\pars.fsy" + _1 + ) +# 573 "..\pars.fsy" + : Ast.ParsedImplFile)); +# 3048 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LexerWhitespaceContinuation)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 579 "..\pars.fsy" + let emptyImplFileFrag = ParsedImplFileFragment.AnonModule([],rhs parseState 1) in + ParsedImplFile([],[emptyImplFileFrag]) + ) +# 579 "..\pars.fsy" + : Ast.ParsedImplFile)); +# 3060 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'module_keyword)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 583 "..\pars.fsy" + _3.Lid,grabXmlDoc(parseState,1),_2 + ) +# 583 "..\pars.fsy" + : 'moduleIntro)); +# 3073 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 586 "..\pars.fsy" + _2.Lid,grabXmlDoc(parseState,1) + ) +# 586 "..\pars.fsy" + : 'namespaceIntro)); +# 3084 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileModuleSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 590 "..\pars.fsy" + ParsedSigFile([],[ (_1 ([],PreXmlDoc.Empty)) ]) + ) +# 590 "..\pars.fsy" + : 'fileNamespaceSpecs)); +# 3095 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileModuleSpec)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceSpecList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 592 "..\pars.fsy" + // If there are namespaces, the first fileModuleImpl may only contain # directives + let decls = + match (_1 ([],PreXmlDoc.Empty)) with + | ParsedSigFileFragment.AnonModule(decls,m) -> decls + | ParsedSigFileFragment.NamespaceFragment(_,_, decls, _,_,_) -> decls + | ParsedSigFileFragment.NamedModule(SynModuleOrNamespaceSig(_,_,_,_,_,_,m)) -> + raiseParseErrorAt m (FSComp.SR.parsOnlyHashDirectivesAllowed()) + let decls = + decls |> List.collect (function + | (SynModuleSigDecl.HashDirective (hd,_)) -> [hd] + | d -> + reportParseErrorAt d.Range (FSComp.SR.parsOnlyHashDirectivesAllowed()); + []) + ParsedSigFile(decls, _2) + ) +# 592 "..\pars.fsy" + : 'fileNamespaceSpecs)); +# 3120 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceSpec)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceSpecList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 608 "..\pars.fsy" + _1 :: _2 + ) +# 608 "..\pars.fsy" + : 'fileNamespaceSpecList)); +# 3132 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 609 "..\pars.fsy" + [_1] + ) +# 609 "..\pars.fsy" + : 'fileNamespaceSpecList)); +# 3143 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'namespaceIntro)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'deprecated_opt_equals)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileModuleSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 613 "..\pars.fsy" + let path,xml = _1 in (_3 (path,xml)) + ) +# 613 "..\pars.fsy" + : 'fileNamespaceSpec)); +# 3156 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileModuleImpl)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 617 "..\pars.fsy" + ParsedImplFile([], [ (_1 ([],PreXmlDoc.Empty)) ]) + ) +# 617 "..\pars.fsy" + : 'fileNamespaceImpls)); +# 3167 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileModuleImpl)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceImplList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 619 "..\pars.fsy" + // If there are namespaces, the first fileModuleImpl may only contain # directives + let decls = + match (_1 ([],PreXmlDoc.Empty)) with + | ParsedImplFileFragment.AnonModule(decls,m) -> decls + | ParsedImplFileFragment.NamespaceFragment(_,_, decls, _,_,_) -> decls + | ParsedImplFileFragment.NamedModule(SynModuleOrNamespace(_,_,_,_,_,_,m)) -> + raiseParseErrorAt m (FSComp.SR.parsOnlyHashDirectivesAllowed()) + let decls = + decls |> List.collect (function + | (SynModuleDecl.HashDirective (hd,_)) -> [hd] + | d -> + reportParseErrorAt d.Range (FSComp.SR.parsOnlyHashDirectivesAllowed()); + []) + ParsedImplFile(decls, _2) + ) +# 619 "..\pars.fsy" + : 'fileNamespaceImpls)); +# 3192 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceImpl)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceImplList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 636 "..\pars.fsy" + _1 :: _2 + ) +# 636 "..\pars.fsy" + : 'fileNamespaceImplList)); +# 3204 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileNamespaceImpl)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 637 "..\pars.fsy" + [_1] + ) +# 637 "..\pars.fsy" + : 'fileNamespaceImplList)); +# 3215 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'namespaceIntro)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'deprecated_opt_equals)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'fileModuleImpl)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 641 "..\pars.fsy" + let path,xml = _1 in (_3 (path,xml)) + ) +# 641 "..\pars.fsy" + : 'fileNamespaceImpl)); +# 3228 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleIntro)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfnsPossiblyEmptyBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 645 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let m2 = rhs parseState 3 + let m = (rhs2 parseState 3 4) + (fun (path,_) -> + if nonNil path then errorR(Error(FSComp.SR.parsNamespaceOrModuleNotBoth(),m2)); + let path2,xml,vis = _3 + let lid = path@path2 + ParsedSigFileFragment.NamedModule(SynModuleOrNamespaceSig(lid,true, _4, xml,_1,vis,m))) + ) +# 645 "..\pars.fsy" + : 'fileModuleSpec)); +# 3249 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfnsPossiblyEmptyBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 654 "..\pars.fsy" + let m = (rhs parseState 1) + (fun (path,xml) -> + match path with + | [] -> ParsedSigFileFragment.AnonModule(_1, m) + | _ -> ParsedSigFileFragment.NamespaceFragment(path,false, _1, xml,[],m)) + ) +# 654 "..\pars.fsy" + : 'fileModuleSpec)); +# 3264 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleIntro)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynModuleDecl list)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 662 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let m2 = rhs parseState 3 + let m = (m2, _4) ||> unionRangeWithListBy (fun modu -> modu.Range) + (fun (path,_) -> + if nonNil path then errorR(Error(FSComp.SR.parsNamespaceOrModuleNotBoth(),m2)); + let path2,xml,vis = _3 + let lid = path@path2 + ParsedImplFileFragment.NamedModule(SynModuleOrNamespace(lid,true, _4, xml,_1,vis,m))) + ) +# 662 "..\pars.fsy" + : 'fileModuleImpl)); +# 3285 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynModuleDecl list)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 671 "..\pars.fsy" + let m = (rhs parseState 1) + (fun (path,xml) -> + match path with + | [] -> ParsedImplFileFragment.AnonModule(_1,m) + | _ -> ParsedImplFileFragment.NamespaceFragment(path,false, _1, xml,[],m)) + ) +# 671 "..\pars.fsy" + : 'fileModuleImpl)); +# 3300 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfnsPossiblyEmpty)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 679 "..\pars.fsy" + _1 + ) +# 679 "..\pars.fsy" + : 'moduleSpfnsPossiblyEmptyBlock)); +# 3311 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfnsPossiblyEmpty)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 681 "..\pars.fsy" + _2 + ) +# 681 "..\pars.fsy" + : 'moduleSpfnsPossiblyEmptyBlock)); +# 3324 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfnsPossiblyEmpty)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 683 "..\pars.fsy" + // The lex filter ensures we can only get a mismatch in OBLOCKBEGIN/OBLOCKEND tokens if there was some other kind of error, hence we don't need to report this error + // reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnClosedBlockInHashLight()); + _2 + + ) +# 683 "..\pars.fsy" + : 'moduleSpfnsPossiblyEmptyBlock)); +# 3339 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 688 "..\pars.fsy" + + [] + + ) +# 688 "..\pars.fsy" + : 'moduleSpfnsPossiblyEmptyBlock)); +# 3352 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 694 "..\pars.fsy" + _1 + ) +# 694 "..\pars.fsy" + : 'moduleSpfnsPossiblyEmpty)); +# 3363 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 696 "..\pars.fsy" + [] + ) +# 696 "..\pars.fsy" + : 'moduleSpfnsPossiblyEmpty)); +# 3373 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 698 "..\pars.fsy" + [] + ) +# 698 "..\pars.fsy" + : 'moduleSpfnsPossiblyEmpty)); +# 3383 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfn)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_topSeparators)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 702 "..\pars.fsy" + _1 :: _3 + ) +# 702 "..\pars.fsy" + : 'moduleSpfns)); +# 3396 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'topSeparators)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 704 "..\pars.fsy" + (* silent recovery *) _3 + ) +# 704 "..\pars.fsy" + : 'moduleSpfns)); +# 3408 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfn)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_topSeparators)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 706 "..\pars.fsy" + [_1] + ) +# 706 "..\pars.fsy" + : 'moduleSpfns)); +# 3420 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExprPossiblyEmpty)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 711 "..\pars.fsy" + _2 + ) +# 711 "..\pars.fsy" + : Ast.SynModuleDecl list)); +# 3433 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExprPossiblyEmpty)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 713 "..\pars.fsy" + // The lex filter ensures we can only get a mismatch in OBLOCKBEGIN/OBLOCKEND tokens if there was some other kind of error, hence we don't need to report this error + // reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnClosedBlockInHashLight()); + _2 + + ) +# 713 "..\pars.fsy" + : Ast.SynModuleDecl list)); +# 3448 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 718 "..\pars.fsy" + + [] + + ) +# 718 "..\pars.fsy" + : Ast.SynModuleDecl list)); +# 3461 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExprPossiblyEmpty)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 722 "..\pars.fsy" + _1 + ) +# 722 "..\pars.fsy" + : Ast.SynModuleDecl list)); +# 3472 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 726 "..\pars.fsy" + _1 + ) +# 726 "..\pars.fsy" + : 'moduleDefnsOrExprPossiblyEmpty)); +# 3483 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 728 "..\pars.fsy" + [] + ) +# 728 "..\pars.fsy" + : 'moduleDefnsOrExprPossiblyEmpty)); +# 3493 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'topSeparators)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 733 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsUnexpectedVisibilityDeclaration(),rhs parseState 3)); + let attrDecls = if nonNil _1 then [ SynModuleDecl.Attributes (_1, rangeOfNonNilAttrs _1) ] else [] + attrDecls @ mkSynDoDecl (_3) :: _5 + ) +# 733 "..\pars.fsy" + : 'moduleDefnsOrExpr)); +# 3510 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'topSeparators)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 737 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsUnexpectedVisibilityDeclaration(),rhs parseState 3)); + let attrDecls = if nonNil _1 then [ SynModuleDecl.Attributes (_1, rangeOfNonNilAttrs _1) ] else [] + attrDecls @ [ mkSynDoDecl(_3) ] + ) +# 737 "..\pars.fsy" + : 'moduleDefnsOrExpr)); +# 3526 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 741 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsUnexpectedVisibilityDeclaration(),rhs parseState 3)); + let attrDecls = if nonNil _1 then [ SynModuleDecl.Attributes (_1, rangeOfNonNilAttrs _1) ] else [] + attrDecls @ [ mkSynDoDecl(_3) ] + ) +# 741 "..\pars.fsy" + : 'moduleDefnsOrExpr)); +# 3541 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 745 "..\pars.fsy" + _1 + ) +# 745 "..\pars.fsy" + : 'moduleDefnsOrExpr)); +# 3552 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 747 "..\pars.fsy" + if nonNil _1 then [ SynModuleDecl.Attributes (_1, rangeOfNonNilAttrs _1) ] else [] + ) +# 747 "..\pars.fsy" + : 'moduleDefnsOrExpr)); +# 3563 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnOrDirective)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 751 "..\pars.fsy" + _1 @ _2 + ) +# 751 "..\pars.fsy" + : 'moduleDefns)); +# 3575 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnOrDirective)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'topSeparators)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 753 "..\pars.fsy" + _1 @ _3 + ) +# 753 "..\pars.fsy" + : 'moduleDefns)); +# 3588 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnOrDirective)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 755 "..\pars.fsy" + _1 + ) +# 755 "..\pars.fsy" + : 'moduleDefns)); +# 3599 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnOrDirective)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'topSeparators)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 757 "..\pars.fsy" + _1 + ) +# 757 "..\pars.fsy" + : 'moduleDefns)); +# 3611 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'topSeparators)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 759 "..\pars.fsy" + _3 + ) +# 759 "..\pars.fsy" + : 'moduleDefns)); +# 3623 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 763 "..\pars.fsy" + _1 + ) +# 763 "..\pars.fsy" + : 'moduleDefnOrDirective)); +# 3634 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hashDirective)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 765 "..\pars.fsy" + [ SynModuleDecl.HashDirective (_1,rhs2 parseState 1 1) ] + ) +# 765 "..\pars.fsy" + : 'moduleDefnOrDirective)); +# 3645 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'defnBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 774 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + parseState.ResetSynArgNameGenerator(); + let (BindingSetPreAttrs(_,_,_,_,mWhole)) = _3 + mkDefnBindings (mWhole,_3,_1,_2,mWhole) + ) +# 774 "..\pars.fsy" + : 'moduleDefn)); +# 3661 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteLetBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 780 "..\pars.fsy" + let hwlb,m = _3 + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + parseState.ResetSynArgNameGenerator(); + mkDefnBindings (m,hwlb,_1,_2,m) + ) +# 780 "..\pars.fsy" + : 'moduleDefn)); +# 3677 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doBinding)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 786 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let mWhole = rhs parseState 3 + mkDefnBindings (mWhole,_3,_1,_2,mWhole) + ) +# 786 "..\pars.fsy" + : 'moduleDefn)); +# 3692 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'type_keyword)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconDefn)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconDefnList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 791 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let (TypeDefn(ComponentInfo(cas ,a,cs,b,c,d,d2,d3),e,f,g)) = _4 + let tc = (TypeDefn(ComponentInfo(_1@cas,a,cs,b,c,d,d2,d3),e,f,g)) + let types = tc :: _5 + [ SynModuleDecl.Types(types, (rhs parseState 3, types) ||> unionRangeWithListBy (fun t -> t.Range) ) ] + ) +# 791 "..\pars.fsy" + : 'moduleDefn)); +# 3711 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExceptionDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 798 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let (ExceptionDefn(ExceptionDefnRepr(cas,a,b,c,d,d2),e,f)) = _3 + let f = (f, _1) ||> unionRangeWithListBy (fun a -> a.Range) + let ec = (ExceptionDefn(ExceptionDefnRepr(_1@cas,a,b,c,d,d2),e,f)) + [ SynModuleDecl.Exception(ec, f) ] + ) +# 798 "..\pars.fsy" + : 'moduleDefn)); +# 3728 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleIntro)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'namedModuleDefnBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 806 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let attribs,(path,xml,vis) = _1,_3 + match _5 with + | Choice1Of2 eqn -> + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + if List.length path <> 1 then raiseParseErrorAt (rhs parseState 3) (FSComp.SR.parsModuleAbbreviationMustBeSimpleName()); + if List.length _1 <> 0 then raiseParseErrorAt (rhs parseState 1) (FSComp.SR.parsIgnoreAttributesOnModuleAbbreviation()); + if isSome vis then raiseParseErrorAt (rhs parseState 1) (FSComp.SR.parsIgnoreAttributesOnModuleAbbreviationAlwaysPrivate()); + [ SynModuleDecl.ModuleAbbrev(List.head path,eqn,(rhs parseState 3, eqn) ||> unionRangeWithListBy (fun id -> id.idRange) ) ] + | Choice2Of2 def -> + if List.length path <> 1 then raiseParseErrorAt (rhs parseState 3) (FSComp.SR.parsModuleAbbreviationMustBeSimpleName()); + let info = ComponentInfo(attribs,[],[],path,xml,false,vis,rhs parseState 3) + [ SynModuleDecl.NestedModule(info,def,false,(rhs2 parseState 3 4, def) ||> unionRangeWithListBy (fun d -> d.Range) ) ] + ) +# 806 "..\pars.fsy" + : 'moduleDefn)); +# 3754 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 821 "..\pars.fsy" + errorR(Error(FSComp.SR.parsAttributeOnIncompleteCode(),rhs parseState 1)) + [] + ) +# 821 "..\pars.fsy" + : 'moduleDefn)); +# 3767 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 825 "..\pars.fsy" + [SynModuleDecl.Open(_1, _1.Range)] + ) +# 825 "..\pars.fsy" + : 'moduleDefn)); +# 3778 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 831 "..\pars.fsy" + _2.Lid + ) +# 831 "..\pars.fsy" + : 'namedModuleAbbrevBlock)); +# 3790 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 833 "..\pars.fsy" + _1.Lid + ) +# 833 "..\pars.fsy" + : 'namedModuleAbbrevBlock)); +# 3801 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'wrappedNamedModuleDefn)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 837 "..\pars.fsy" + + Choice2Of2 _2 + + ) +# 837 "..\pars.fsy" + : 'namedModuleDefnBlock)); +# 3815 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'wrappedNamedModuleDefn)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 841 "..\pars.fsy" + // The lex filter ensures we can only get a mismatch in OBLOCKBEGIN/OBLOCKEND tokens if there was some other kind of error, hence we don't need to report this error + Choice2Of2 _2 + + ) +# 841 "..\pars.fsy" + : 'namedModuleDefnBlock)); +# 3829 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 845 "..\pars.fsy" + // BUG 2644 FSharp 1.0: + // There is an ambiguity here + // In particular, consider the following two: + // module M2 = + // System.DateTime.Now + // module M2 = + // Microsoft.FSharp.Core.List + // The second is a module abbreviation , the first a module containing a single expression. + // This is a bit unfortunate. For F# v1 the resolution is in favour of + // the module abbreviation, i.e. anything of the form + // module M2 = ID.ID.ID.ID + // will be taken as a module abbreviation, regardles of the identifiers themselves. + // In a later version (Dev11) we could actually try resolving the names + // to both expressions and module identifiers and base the resolution of that semantic lookup + // + // This is similar to the ambiguitty between + // type X = int + // and + // type X = OneValue + // However in that case we do use type name lookup to make the resolution. + match _2 with + | [ SynModuleDecl.DoExpr (_,LongOrSingleIdent(false,LongIdentWithDots(path,_),None,_),_) ] -> + Choice1Of2 path + | _ -> + Choice2Of2 _2 + + ) +# 845 "..\pars.fsy" + : 'namedModuleDefnBlock)); +# 3866 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 874 "..\pars.fsy" + // The lex filter ensures we can only get a mismatch in OBLOCKBEGIN/OBLOCKEND tokens if there was some other kind of error, hence we don't need to report this error + // reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnClosedBlockInHashLight()); + Choice2Of2 _2 + + ) +# 874 "..\pars.fsy" + : 'namedModuleDefnBlock)); +# 3881 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 879 "..\pars.fsy" + + Choice2Of2 [] + + ) +# 879 "..\pars.fsy" + : 'namedModuleDefnBlock)); +# 3894 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'wrappedNamedModuleDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 883 "..\pars.fsy" + + Choice2Of2 _1 + + ) +# 883 "..\pars.fsy" + : 'namedModuleDefnBlock)); +# 3907 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 887 "..\pars.fsy" + + Choice1Of2 _1.Lid + + ) +# 887 "..\pars.fsy" + : 'namedModuleDefnBlock)); +# 3920 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'structOrBegin)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExprPossiblyEmpty)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 893 "..\pars.fsy" + _2 + ) +# 893 "..\pars.fsy" + : 'wrappedNamedModuleDefn)); +# 3932 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'structOrBegin)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleDefnsOrExprPossiblyEmpty)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 895 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBeginOrStruct()); + _2 + ) +# 895 "..\pars.fsy" + : 'wrappedNamedModuleDefn)); +# 3946 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'structOrBegin)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 898 "..\pars.fsy" + [] + ) +# 898 "..\pars.fsy" + : 'wrappedNamedModuleDefn)); +# 3957 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 902 "..\pars.fsy" + None + ) +# 902 "..\pars.fsy" + : 'opt_signature)); +# 3967 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnBlock)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'declEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 906 "..\pars.fsy" + _2 + ) +# 906 "..\pars.fsy" + : Ast.SynMemberDefns)); +# 3979 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hashDirective)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 911 "..\pars.fsy" + SynModuleSigDecl.HashDirective (_1,rhs2 parseState 1 1) + ) +# 911 "..\pars.fsy" + : 'moduleSpfn)); +# 3990 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'valSpfn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 913 "..\pars.fsy" + _1 + ) +# 913 "..\pars.fsy" + : 'moduleSpfn)); +# 4001 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleIntro)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'colonOrEquals)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'namedModuleAbbrevBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 916 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let path,xml,vis = _3 + if List.length path <> 1 then raiseParseErrorAt (rhs parseState 3) (FSComp.SR.parsModuleAbbreviationMustBeSimpleName()); + if List.length _1 <> 0 then raiseParseErrorAt (rhs parseState 1) (FSComp.SR.parsIgnoreAttributesOnModuleAbbreviation()); + if isSome(vis) then raiseParseErrorAt (rhs parseState 1) (FSComp.SR.parsIgnoreVisibilityOnModuleAbbreviationAlwaysPrivate()); + SynModuleSigDecl.ModuleAbbrev(List.head path,_5,rhs2 parseState 3 5) + ) +# 916 "..\pars.fsy" + : 'moduleSpfn)); +# 4021 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleIntro)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'colonOrEquals)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpecBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 924 "..\pars.fsy" + let path,xml,vis = _3 + if List.length path <> 1 then raiseParseErrorAt (rhs parseState 3) (FSComp.SR.parsModuleDefnMustBeSimpleName()); + let info = ComponentInfo(_1,[],[],path,xml,false,vis,rhs parseState 3) + if isSome(_2) then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + SynModuleSigDecl.NestedModule(info,_5,rhs2 parseState 3 5) + ) +# 924 "..\pars.fsy" + : 'moduleSpfn)); +# 4040 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypeDefnSig list)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 931 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let (TypeDefnSig(ComponentInfo(cas,a,cs,b,c,d,d2,d3),e,f,g)),rest = + match _3 with + | [] -> raiseParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedEmptyModuleDefn()) + | h::t -> h,t + let tc = (TypeDefnSig(ComponentInfo(_1@cas,a,cs,b,c,d,d2,d3),e,f,g))in + SynModuleSigDecl.Types (tc::rest,rhs parseState 3) + ) +# 931 "..\pars.fsy" + : 'moduleSpfn)); +# 4059 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'exconSpfn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 940 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let (ExceptionSig(ExceptionDefnRepr(cas,a,b,c,d,d2),e,f)) = _3 + let ec = (ExceptionSig(ExceptionDefnRepr(_1@cas,a,b,c,d,d2),e,f)) + SynModuleSigDecl.Exception(ec, rhs parseState 3) + ) +# 940 "..\pars.fsy" + : 'moduleSpfn)); +# 4075 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 945 "..\pars.fsy" + SynModuleSigDecl.Open (_2.Lid, unionRanges (rhs parseState 1) _2.Range) + ) +# 945 "..\pars.fsy" + : 'moduleSpfn)); +# 4086 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inline)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_mutable)) in + let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _8 = (let data = parseState.GetInput(8) in (Microsoft.FSharp.Core.Operators.unbox data : 'nameop)) in + let _9 = (let data = parseState.GetInput(9) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_explicitValTyparDecls)) in + let _11 = (let data = parseState.GetInput(11) in (Microsoft.FSharp.Core.Operators.unbox data : 'topTypeWithTypeConstraints)) in + let _12 = (let data = parseState.GetInput(12) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_literalValue)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 949 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let attr1,attr2,isInline,isMutable,vis2,id,doc,explicitValTyparDecls,(ty,arity),konst = (_1),(_4),(_5),(_6),(_7),(_8),grabXmlDoc(parseState,3),(_9),(_11),(_12) + if nonNil attr2 then errorR(Deprecated(FSComp.SR.parsAttributesMustComeBeforeVal(),rhs parseState 4)); + let m = rhs2 parseState 3 11 + let valSpfn = ValSpfn((attr1@attr2),id,explicitValTyparDecls,ty,arity,isInline,isMutable,doc, vis2,konst,m) + SynModuleSigDecl.Val(valSpfn,m) + + ) +# 949 "..\pars.fsy" + : 'valSpfn)); +# 4112 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 958 "..\pars.fsy" + None + ) +# 958 "..\pars.fsy" + : 'opt_literalValue)); +# 4122 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 959 "..\pars.fsy" + Some(_2) + ) +# 959 "..\pars.fsy" + : 'opt_literalValue)); +# 4133 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 960 "..\pars.fsy" + Some(_3) + ) +# 960 "..\pars.fsy" + : 'opt_literalValue)); +# 4145 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfns)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 963 "..\pars.fsy" + _2 + ) +# 963 "..\pars.fsy" + : 'moduleSpecBlock)); +# 4157 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigOrBegin)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfnsPossiblyEmpty)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 964 "..\pars.fsy" + _3 + ) +# 964 "..\pars.fsy" + : 'moduleSpecBlock)); +# 4170 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'sigOrBegin)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moduleSpfnsPossiblyEmpty)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 965 "..\pars.fsy" + _2 + ) +# 965 "..\pars.fsy" + : 'moduleSpecBlock)); +# 4182 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributes)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 968 "..\pars.fsy" + _1 + ) +# 968 "..\pars.fsy" + : 'opt_attributes)); +# 4193 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 969 "..\pars.fsy" + [] + ) +# 969 "..\pars.fsy" + : 'opt_attributes)); +# 4203 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributeList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 973 "..\pars.fsy" + _1 + ) +# 973 "..\pars.fsy" + : 'attributes)); +# 4214 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributeList)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributes)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 975 "..\pars.fsy" + _1 @ _2 + ) +# 975 "..\pars.fsy" + : 'attributes)); +# 4226 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributeListElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 978 "..\pars.fsy" + _2 + ) +# 978 "..\pars.fsy" + : 'attributeList)); +# 4239 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 979 "..\pars.fsy" + [] + ) +# 979 "..\pars.fsy" + : 'attributeList)); +# 4250 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributeListElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 981 "..\pars.fsy" + if not _4 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedLBrackLess()); + _2 + ) +# 981 "..\pars.fsy" + : 'attributeList)); +# 4264 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 984 "..\pars.fsy" + if not _2 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedLBrackLess()); + [] + ) +# 984 "..\pars.fsy" + : 'attributeList)); +# 4276 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attribute)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 989 "..\pars.fsy" + [_1] + ) +# 989 "..\pars.fsy" + : 'attributeListElements)); +# 4287 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributeListElements)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'seps)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'attribute)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 991 "..\pars.fsy" + _1 @ [_3] + ) +# 991 "..\pars.fsy" + : 'attributeListElements)); +# 4300 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_atomicExprAfterType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 995 "..\pars.fsy" + let arg = match _3 with None -> mkSynUnit _1.Range | Some e -> e + ({ TypeName=_1; ArgExpr=arg; Target=None; AppliesToGetterAndSetter=false; Range=_1.Range } : SynAttribute) + ) +# 995 "..\pars.fsy" + : 'attribute)); +# 4314 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributeTarget)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_atomicExprAfterType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 998 "..\pars.fsy" + let arg = match _4 with None -> mkSynUnit _2.Range | Some e -> e + ({ TypeName=_2; ArgExpr=arg; Target=_1; AppliesToGetterAndSetter=false; Range=_2.Range } : SynAttribute) + ) +# 998 "..\pars.fsy" + : 'attribute)); +# 4329 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributeTarget)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_atomicExprAfterType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1001 "..\pars.fsy" + let arg = match _6 with None -> mkSynUnit _3.Range | Some e -> e + ({ TypeName=_3; ArgExpr=arg; Target=_1; AppliesToGetterAndSetter=false; Range=_3.Range } : SynAttribute) + ) +# 1001 "..\pars.fsy" + : 'attribute)); +# 4345 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'module_keyword)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1005 "..\pars.fsy" + Some(ident("module",(rhs parseState 1))) + ) +# 1005 "..\pars.fsy" + : 'attributeTarget)); +# 4356 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'type_keyword)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1006 "..\pars.fsy" + Some(ident("type",(rhs parseState 1))) + ) +# 1006 "..\pars.fsy" + : 'attributeTarget)); +# 4367 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1007 "..\pars.fsy" + Some(_1) + ) +# 1007 "..\pars.fsy" + : 'attributeTarget)); +# 4378 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1009 "..\pars.fsy" + if _1 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsSyntaxError()); + Some(ident("return",(rhs parseState 1))) + ) +# 1009 "..\pars.fsy" + : 'attributeTarget)); +# 4390 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'type_keyword)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconSpfnList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1014 "..\pars.fsy" + _2 + ) +# 1014 "..\pars.fsy" + : Ast.SynTypeDefnSig list)); +# 4402 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconSpfn)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconSpfnList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1018 "..\pars.fsy" + _1 :: _3 + ) +# 1018 "..\pars.fsy" + : 'tyconSpfnList)); +# 4414 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconSpfn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1020 "..\pars.fsy" + [_1] + ) +# 1020 "..\pars.fsy" + : 'tyconSpfnList)); +# 4425 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeNameInfo)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconSpfnRhsBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1024 "..\pars.fsy" + let lhsm = rhs parseState 1 + _3 lhsm _1 + ) +# 1024 "..\pars.fsy" + : 'tyconSpfn)); +# 4438 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeNameInfo)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_classSpfn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1027 "..\pars.fsy" + TypeDefnSig(_1,SynTypeDefnSigRepr.Simple (SynTypeDefnSimpleRepr.None (lhs parseState),lhs parseState),_2,lhs parseState) + ) +# 1027 "..\pars.fsy" + : 'tyconSpfn)); +# 4450 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconSpfnRhs)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnMembers)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_classSpfn)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_classSpfn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1039 "..\pars.fsy" + let m = lhs parseState + (fun lhsm nameInfo -> + _2 lhsm nameInfo (checkForMultipleAugmentations m (_4 @ _5) _7)) + ) +# 1039 "..\pars.fsy" + : 'tyconSpfnRhsBlock)); +# 4468 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconSpfnRhs)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_classSpfn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1043 "..\pars.fsy" + let m = lhs parseState + (fun lhsm nameInfo -> + _1 lhsm nameInfo _2) + ) +# 1043 "..\pars.fsy" + : 'tyconSpfnRhsBlock)); +# 4482 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypeDefnSimpleRepr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1049 "..\pars.fsy" + let m = _1.Range + (fun lhsm nameInfo augmentation -> + TypeDefnSig(nameInfo,SynTypeDefnSigRepr.Simple (_1,m),augmentation,m)) + ) +# 1049 "..\pars.fsy" + : 'tyconSpfnRhs)); +# 4495 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconClassSpfn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1053 "..\pars.fsy" + let m = lhs parseState + let needsCheck,(kind,decls) = _1 + (fun nameRange nameInfo augmentation -> + if needsCheck && isNil decls then + reportParseErrorAt nameRange (FSComp.SR.parsEmptyTypeDefinition()); + TypeDefnSig(nameInfo,SynTypeDefnSigRepr.ObjectModel (kind,decls,m),augmentation,m)) + ) +# 1053 "..\pars.fsy" + : 'tyconSpfnRhs)); +# 4511 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'topType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1060 "..\pars.fsy" + let m = lhs parseState + let ty,arity = _3 + let invoke = SynMemberSig.Member(ValSpfn([],mkSynId m "Invoke",inferredTyparDecls,ty,arity,false,false,PreXmlDoc.Empty,None,None,m),AbstractMemberFlags MemberKind.Member,m) + (fun nameRange nameInfo augmentation -> + if nonNil augmentation then raiseParseErrorAt m (FSComp.SR.parsAugmentationsIllegalOnDelegateType()); + TypeDefnSig(nameInfo,SynTypeDefnSigRepr.ObjectModel (TyconDelegate (ty,arity),[invoke],m),[],m)) + ) +# 1060 "..\pars.fsy" + : 'tyconSpfnRhs)); +# 4527 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnBlockKindUnspecified)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1069 "..\pars.fsy" + let needsCheck,decls = _1 + needsCheck,(TyconUnspecified, decls) + ) +# 1069 "..\pars.fsy" + : 'tyconClassSpfn)); +# 4539 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classOrInterfaceOrStruct)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1072 "..\pars.fsy" + false,(_1,_2) + ) +# 1072 "..\pars.fsy" + : 'tyconClassSpfn)); +# 4551 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classOrInterfaceOrStruct)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnBlock)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1074 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedClassInterfaceOrStruct()); + false,(_1,_2) + ) +# 1074 "..\pars.fsy" + : 'tyconClassSpfn)); +# 4565 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classOrInterfaceOrStruct)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1077 "..\pars.fsy" + // silent recovery + false,(_1,[]) + ) +# 1077 "..\pars.fsy" + : 'tyconClassSpfn)); +# 4577 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnMembers)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1082 "..\pars.fsy" + true, _2 + ) +# 1082 "..\pars.fsy" + : 'classSpfnBlockKindUnspecified)); +# 4589 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnMembers)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1084 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedEndOfFileTypeSignature()); + false, _2 + ) +# 1084 "..\pars.fsy" + : 'classSpfnBlockKindUnspecified)); +# 4602 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1088 "..\pars.fsy" + false, _2 + ) +# 1088 "..\pars.fsy" + : 'classSpfnBlockKindUnspecified)); +# 4613 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnBlock)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1090 "..\pars.fsy" + false, _2 + ) +# 1090 "..\pars.fsy" + : 'classSpfnBlockKindUnspecified)); +# 4625 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnMembers)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1095 "..\pars.fsy" + _2 + ) +# 1095 "..\pars.fsy" + : 'classSpfnBlock)); +# 4637 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnMembers)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1097 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedEndOfFileTypeSignature()); + _2 + ) +# 1097 "..\pars.fsy" + : 'classSpfnBlock)); +# 4650 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnMembers)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1100 "..\pars.fsy" + _1 + ) +# 1100 "..\pars.fsy" + : 'classSpfnBlock)); +# 4661 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnMembersAtLeastOne)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1115 "..\pars.fsy" + _1 + ) +# 1115 "..\pars.fsy" + : 'classSpfnMembers)); +# 4672 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1117 "..\pars.fsy" + [] + ) +# 1117 "..\pars.fsy" + : 'classSpfnMembers)); +# 4682 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classMemberSpfn)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnMembers)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1121 "..\pars.fsy" + _1 :: _3 + ) +# 1121 "..\pars.fsy" + : 'classSpfnMembersAtLeastOne)); +# 4695 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1124 "..\pars.fsy" + (true,StaticMemberFlags) + ) +# 1124 "..\pars.fsy" + : 'memberFlags)); +# 4705 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1125 "..\pars.fsy" + (false,NonVirtualMemberFlags) + ) +# 1125 "..\pars.fsy" + : 'memberFlags)); +# 4715 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1126 "..\pars.fsy" + (false,OverrideMemberFlags) + ) +# 1126 "..\pars.fsy" + : 'memberFlags)); +# 4725 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1127 "..\pars.fsy" + (false,OverrideMemberFlags) + ) +# 1127 "..\pars.fsy" + : 'memberFlags)); +# 4735 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'memberFlags)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1130 "..\pars.fsy" + _1 + ) +# 1130 "..\pars.fsy" + : 'memberSpecFlags)); +# 4746 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1131 "..\pars.fsy" + (false,AbstractMemberFlags) + ) +# 1131 "..\pars.fsy" + : 'memberSpecFlags)); +# 4756 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1132 "..\pars.fsy" + (false,AbstractMemberFlags) + ) +# 1132 "..\pars.fsy" + : 'memberSpecFlags)); +# 4766 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1136 "..\pars.fsy" + None, MemberKind.Member + ) +# 1136 "..\pars.fsy" + : 'classMemberSpfnGetSet)); +# 4776 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classMemberSpfnGetSetElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1138 "..\pars.fsy" + Some (rhs2 parseState 1 2), _2 + ) +# 1138 "..\pars.fsy" + : 'classMemberSpfnGetSet)); +# 4787 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classMemberSpfnGetSetElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1140 "..\pars.fsy" + Some (rhs2 parseState 1 2), _2 + ) +# 1140 "..\pars.fsy" + : 'classMemberSpfnGetSet)); +# 4798 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classMemberSpfnGetSetElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1142 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedWith()); + Some (rhs2 parseState 1 2), _2 + ) +# 1142 "..\pars.fsy" + : 'classMemberSpfnGetSet)); +# 4810 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'nameop)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1148 "..\pars.fsy" + (let (id:Ident) = _1 + if id.idText = "get" then MemberKind.PropertyGet + else if id.idText = "set" then MemberKind.PropertySet + else raiseParseErrorAt (rhs parseState 1) (FSComp.SR.parsGetOrSetRequired())) + ) +# 1148 "..\pars.fsy" + : 'classMemberSpfnGetSetElements)); +# 4824 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'nameop)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'nameop)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1153 "..\pars.fsy" + let (id:Ident) = _1 + if not ((id.idText = "get" && _3.idText = "set") || + (id.idText = "set" && _3.idText = "get")) then + raiseParseErrorAt (rhs2 parseState 1 3) (FSComp.SR.parsGetOrSetRequired()); + MemberKind.PropertyGetSet + ) +# 1153 "..\pars.fsy" + : 'classMemberSpfnGetSetElements)); +# 4840 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'memberSpecFlags)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inline)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'nameop)) in + let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_explicitValTyparDecls)) in + let _9 = (let data = parseState.GetInput(9) in (Microsoft.FSharp.Core.Operators.unbox data : 'topTypeWithTypeConstraints)) in + let _10 = (let data = parseState.GetInput(10) in (Microsoft.FSharp.Core.Operators.unbox data : 'classMemberSpfnGetSet)) in + let _11 = (let data = parseState.GetInput(11) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_literalValue)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1161 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let isInline,doc,vis2,id,explicitValTyparDecls,(ty,arity),optLiteralValue = _4,grabXmlDoc(parseState,3),_5,_6,_7,_9,_11 + let getSetRangeOpt, getSet = _10 + let getSetAdjuster arity = match arity,getSet with SynValInfo([],_),MemberKind.Member -> MemberKind.PropertyGet | _ -> getSet + let wholeRange = + let m = rhs parseState 3 + match getSetRangeOpt with + | None -> unionRanges m ty.Range + | Some m2 -> unionRanges m m2 + let valSpfn = ValSpfn(_1,id,explicitValTyparDecls,ty,arity, isInline,false,doc, vis2,optLiteralValue,wholeRange) + let _,flags = _3 + SynMemberSig.Member(valSpfn, flags (getSetAdjuster arity),wholeRange) + ) +# 1161 "..\pars.fsy" + : 'classMemberSpfn)); +# 4871 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'interfaceMember)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1175 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + SynMemberSig.Interface (_4,unionRanges (rhs parseState 3) (_4).Range) + ) +# 1175 "..\pars.fsy" + : 'classMemberSpfn)); +# 4886 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1178 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + SynMemberSig.Inherit (_4,unionRanges (rhs parseState 3) (_4).Range) + ) +# 1178 "..\pars.fsy" + : 'classMemberSpfn)); +# 4900 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'fieldDecl)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1181 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let fld = _4 _1 false + SynMemberSig.ValField(fld,rhs2 parseState 3 4) + ) +# 1181 "..\pars.fsy" + : 'classMemberSpfn)); +# 4915 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'fieldDecl)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1185 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + SynMemberSig.ValField(_5 _1 true,rhs2 parseState 3 5) + ) +# 1185 "..\pars.fsy" + : 'classMemberSpfn)); +# 4929 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'type_keyword)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconSpfn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1188 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + SynMemberSig.NestedType(_5,rhs2 parseState 3 5) + ) +# 1188 "..\pars.fsy" + : 'classMemberSpfn)); +# 4944 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'topTypeWithTypeConstraints)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1191 "..\pars.fsy" + let vis,doc,(ty,valSynInfo) = _2,grabXmlDoc(parseState,3),_5 + let m = unionRanges (rhs parseState 3) ty.Range + let isInline = false + let valSpfn = ValSpfn (_1, mkSynId (rhs parseState 3) "new", noInferredTypars, ty, valSynInfo, isInline, false, doc, vis, None, m) + SynMemberSig.Member(valSpfn, CtorMemberFlags,m) + ) +# 1191 "..\pars.fsy" + : 'classMemberSpfn)); +# 4961 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconNameAndTyparDecls)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_typeConstraints)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1199 "..\pars.fsy" + let typars,lid,fixity,tpcs1,vis,xmlDoc = _2 + let tpcs2 = _3 + ComponentInfo(_1,typars,(tpcs1 @ tpcs2),lid,xmlDoc,fixity,vis,rangeOfLid lid) + ) +# 1199 "..\pars.fsy" + : 'typeNameInfo)); +# 4976 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconDefn)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconDefnList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1205 "..\pars.fsy" + _2 :: _3 + ) +# 1205 "..\pars.fsy" + : 'tyconDefnList)); +# 4988 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1207 "..\pars.fsy" + [] + ) +# 1207 "..\pars.fsy" + : 'tyconDefnList)); +# 4998 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeNameInfo)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1211 "..\pars.fsy" + TypeDefn(_1,SynTypeDefnRepr.Simple(SynTypeDefnSimpleRepr.None(_1.Range),_1.Range),[],_1.Range) + ) +# 1211 "..\pars.fsy" + : 'tyconDefn)); +# 5009 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeNameInfo)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconDefnRhsBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1213 "..\pars.fsy" + let nameRange = rhs parseState 1 + let (tcDefRepr:SynTypeDefnRepr),members = _3 nameRange + let declRange = unionRanges (rhs parseState 1) tcDefRepr.Range + let mWhole = (declRange, members) ||> unionRangeWithListBy (fun (mem:SynMemberDefn) -> mem.Range) + TypeDefn(_1, tcDefRepr, members, mWhole) + ) +# 1213 "..\pars.fsy" + : 'tyconDefn)); +# 5025 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeNameInfo)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynMemberDefns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1219 "..\pars.fsy" + let m = (rhs parseState 1, _2) ||> unionRangeWithListBy (fun mem -> mem.Range) + TypeDefn(_1,SynTypeDefnRepr.ObjectModel(TyconAugmentation,[],m),_2,m) + ) +# 1219 "..\pars.fsy" + : 'tyconDefn)); +# 5038 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeNameInfo)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'simplePatterns)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'optAsSpec)) in + let _8 = (let data = parseState.GetInput(8) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconDefnRhsBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1223 "..\pars.fsy" + let vis,spats, az = _3,_5,_6 + let nameRange = rhs parseState 1 + let (tcDefRepr,members) = _8 nameRange + let (ComponentInfo(_,_,_,lid,_,_,_,_)) = _1 + let memberCtorPattern = SynMemberDefn.ImplicitCtor (vis,_2,spats,az,rangeOfLid lid) + let tcDefRepr = + match tcDefRepr with + | SynTypeDefnRepr.ObjectModel (k,cspec,m) -> SynTypeDefnRepr.ObjectModel (k,memberCtorPattern::cspec,m) + | _ -> reportParseErrorAt (rhs2 parseState 1 5) (FSComp.SR.parsOnlyClassCanTakeValueArguments()); tcDefRepr + + TypeDefn(_1,tcDefRepr,members, unionRanges (rhs parseState 1) tcDefRepr.Range) + ) +# 1223 "..\pars.fsy" + : 'tyconDefn)); +# 5065 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconDefnRhs)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMembers)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_classDefn)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_classDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1245 "..\pars.fsy" + let m = unionRanges (rhs parseState 1) (match _7 with [] -> (match _5 with [] -> (rhs parseState 4) | _ -> (rhs parseState 5)) | _ -> (rhs parseState 7)) + (fun nameRange -> _2 nameRange (checkForMultipleAugmentations m (_4 @ _5) _7)) + ) +# 1245 "..\pars.fsy" + : 'tyconDefnRhsBlock)); +# 5082 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconDefnRhs)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMembers)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_classDefn)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1248 "..\pars.fsy" + if not _6 then reportParseErrorAt (rhs parseState 6) (FSComp.SR.parsUnexpectedEndOfFileTypeDefinition()) + let m = unionRanges (rhs parseState 1) (match _5 with [] -> (rhs parseState 4) | _ -> (rhs parseState 5)) + (fun nameRange -> _2 nameRange (checkForMultipleAugmentations m (_4 @ _5) [])) + ) +# 1248 "..\pars.fsy" + : 'tyconDefnRhsBlock)); +# 5099 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconDefnRhs)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_classDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1252 "..\pars.fsy" + let m = rhs parseState 1 + (fun nameRange -> _1 nameRange _2) + ) +# 1252 "..\pars.fsy" + : 'tyconDefnRhsBlock)); +# 5112 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypeDefnSimpleRepr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1257 "..\pars.fsy" + let m = _1.Range + (fun nameRange augmentation -> SynTypeDefnRepr.Simple (_1,m),augmentation) + ) +# 1257 "..\pars.fsy" + : 'tyconDefnRhs)); +# 5124 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconClassDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1260 "..\pars.fsy" + let needsCheck,(kind,decls),mopt = _1 + let m = match mopt with + | None -> (lhs parseState).StartRange // create a zero-width range + | Some m -> m + (fun nameRange augmentation -> + if needsCheck && isNil decls then + reportParseErrorAt nameRange (FSComp.SR.parsEmptyTypeDefinition()); + SynTypeDefnRepr.ObjectModel (kind,decls,m),augmentation) + ) +# 1260 "..\pars.fsy" + : 'tyconDefnRhs)); +# 5142 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'topType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1269 "..\pars.fsy" + let m = lhs parseState + let ty,arity = _3 + (fun nameRange augmentation -> + let valSpfn = ValSpfn([],mkSynId m "Invoke",inferredTyparDecls,ty,arity,false,false,PreXmlDoc.Empty,None,None,m) + let invoke = SynMemberDefn.AbstractSlot(valSpfn,AbstractMemberFlags MemberKind.Member,m) + if nonNil augmentation then raiseParseErrorAt m (FSComp.SR.parsAugmentationsIllegalOnDelegateType()); + SynTypeDefnRepr.ObjectModel (TyconDelegate (ty,arity),[invoke],m),[]) + ) +# 1269 "..\pars.fsy" + : 'tyconDefnRhs)); +# 5159 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnBlockKindUnspecified)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1279 "..\pars.fsy" + let needsCheck,decls,mopt = _1 + needsCheck,(TyconUnspecified, decls),mopt + ) +# 1279 "..\pars.fsy" + : 'tyconClassDefn)); +# 5171 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classOrInterfaceOrStruct)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1282 "..\pars.fsy" + let m = (rhs parseState 1, _2) ||> unionRangeWithListBy (fun (d:SynMemberDefn) -> d.Range) + false,(_1,_2),Some(m) + ) +# 1282 "..\pars.fsy" + : 'tyconClassDefn)); +# 5184 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classOrInterfaceOrStruct)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnBlock)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1285 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedClassInterfaceOrStruct()) + let m = (rhs parseState 1, _2) ||> unionRangeWithListBy (fun (d:SynMemberDefn) -> d.Range) + false,(_1,_2),Some(m) + ) +# 1285 "..\pars.fsy" + : 'tyconClassDefn)); +# 5199 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classOrInterfaceOrStruct)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1289 "..\pars.fsy" + // silent recovery + false,(_1,[]),Some(rhs parseState 1) + ) +# 1289 "..\pars.fsy" + : 'tyconClassDefn)); +# 5211 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMembers)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1294 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedEndOfFileTypeDefinition()); + let mopt = + match _2 with + | _::_ -> Some( (rhs parseState 1, _2) ||> unionRangeWithListBy (fun (d:SynMemberDefn) -> d.Range) ) + | _ -> None + false,_2,mopt + ) +# 1294 "..\pars.fsy" + : 'classDefnBlockKindUnspecified)); +# 5228 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMembers)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1301 "..\pars.fsy" + let mopt = + match _2 with + | _::_ -> Some( (rhs parseState 1, _2) ||> unionRangeWithListBy (fun (d:SynMemberDefn) -> d.Range) ) + | _ -> None + true, _2, mopt + ) +# 1301 "..\pars.fsy" + : 'classDefnBlockKindUnspecified)); +# 5244 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMembers)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1309 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedEndOfFileTypeDefinition()); + _2 + ) +# 1309 "..\pars.fsy" + : 'classDefnBlock)); +# 5257 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMembers)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1312 "..\pars.fsy" + _2 + ) +# 1312 "..\pars.fsy" + : 'classDefnBlock)); +# 5269 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMembers)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1314 "..\pars.fsy" + _1 + ) +# 1314 "..\pars.fsy" + : 'classDefnBlock)); +# 5280 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMembersAtLeastOne)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1329 "..\pars.fsy" + _1 + ) +# 1329 "..\pars.fsy" + : 'classDefnMembers)); +# 5291 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMembers)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1332 "..\pars.fsy" + _2 + ) +# 1332 "..\pars.fsy" + : 'classDefnMembers)); +# 5302 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1334 "..\pars.fsy" + [] + ) +# 1334 "..\pars.fsy" + : 'classDefnMembers)); +# 5312 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMember)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMembers)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1338 "..\pars.fsy" + _1 @ _3 + ) +# 1338 "..\pars.fsy" + : 'classDefnMembersAtLeastOne)); +# 5325 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMemberGetSetElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1342 "..\pars.fsy" + _2 + ) +# 1342 "..\pars.fsy" + : 'classDefnMemberGetSet)); +# 5336 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMemberGetSetElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1344 "..\pars.fsy" + _2 + ) +# 1344 "..\pars.fsy" + : 'classDefnMemberGetSet)); +# 5347 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMemberGetSetElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1346 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedWith()); + _2 + ) +# 1346 "..\pars.fsy" + : 'classDefnMemberGetSet)); +# 5359 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMemberGetSetElement)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1351 "..\pars.fsy" + [_1] + ) +# 1351 "..\pars.fsy" + : 'classDefnMemberGetSetElements)); +# 5370 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMemberGetSetElement)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMemberGetSetElement)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1353 "..\pars.fsy" + [_1;_3] + ) +# 1353 "..\pars.fsy" + : 'classDefnMemberGetSetElements)); +# 5382 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inline)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'bindingPattern)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_topReturnTypeWithTypeConstraints)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1357 "..\pars.fsy" + let mRhs = (_6 : SynExpr).Range + (_1,_2,_3,_4,_6,mRhs) + ) +# 1357 "..\pars.fsy" + : 'classDefnMemberGetSetElement)); +# 5398 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inline)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'bindingPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_topReturnTypeWithTypeConstraints)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1363 "..\pars.fsy" + let mRhs = _5.Range + let mWhole = unionRanges (rhs2 parseState 3 4) mRhs + let optReturnType = _3 + let bindingBuilder,mBindLhs = _2 + (fun vis memFlagsBuilder attrs -> + [ SynMemberDefn.Member (bindingBuilder (vis,_1,false,mBindLhs,NoSequencePointAtInvisibleBinding,optReturnType,_5,mRhs,[],attrs,Some(memFlagsBuilder MemberKind.Member)),unionRanges mWhole mBindLhs) ]) + ) +# 1363 "..\pars.fsy" + : 'memberCore)); +# 5417 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inline)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'bindingPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_topReturnTypeWithTypeConstraints)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnMemberGetSet)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1372 "..\pars.fsy" + let mWhole = (rhs parseState 2, _4) ||> unionRangeWithListBy (fun (_,_,_,_,_,m2) -> m2) + let propertyNameBindingBuilder,_ = _2 + let optPropertyType = _3 + let isMutable = false + (fun visNoLongerUsed memFlagsBuilder attrs -> + let hasGet = ref false + let hasSet = ref false + // Iterate over 1 or 2 'get'/'set' entries + _4 |> List.choose (fun (optInline,optAttrs,(bindingBuilder,mBindLhs),optReturnType,expr,exprm) -> + let optInline = _1 || optInline + // optional attributes are only applied to getters and setters + // the "top level" attrs will be applied to both + let optAttrs = optAttrs |> List.map (fun (a:SynAttribute) -> { a with AppliesToGetterAndSetter=true }) + let attrs = attrs @ optAttrs + + let binding = bindingBuilder (visNoLongerUsed,optInline,isMutable,mBindLhs,NoSequencePointAtInvisibleBinding,optReturnType,expr,exprm,[],attrs,Some (memFlagsBuilder MemberKind.Member)) + let (Binding (vis, _, isInline, _, attrs, doc, valSynData, pv, _, _, mBindLhs, spBind)) = binding + let memberKind = + let getset = + let rec go p = + match p with + | SynPat.LongIdent (LongIdentWithDots([id],_),_,_,_,_,_) -> id.idText + | SynPat.Named (_,nm,_,_,_) -> nm.idText + | SynPat.Typed (p,_,_) -> go p + | SynPat.Attrib (p,_,_) -> go p + | _ -> raiseParseErrorAt mBindLhs (FSComp.SR.parsInvalidDeclarationSyntax()) + go pv + if getset = "get" then ( + if !hasGet then + reportParseErrorAt mBindLhs (FSComp.SR.parsGetAndOrSetRequired()) + None + else + hasGet := true + Some MemberKind.PropertyGet + ) else if getset = "set" then ( + if !hasSet then + reportParseErrorAt mBindLhs (FSComp.SR.parsGetAndOrSetRequired()) + None + else + hasSet := true + Some MemberKind.PropertySet + ) else + raiseParseErrorAt mBindLhs (FSComp.SR.parsGetAndOrSetRequired()) + match memberKind with + | None -> None + | Some memberKind -> + // REVIEW: It's hard not to ignore the optPropertyType type annotation for 'set' properties. To apply it, + // we should apply it to the last argument, but at this point we've already pushed the patterns that + // make up the arguments onto the RHS. So we just always give a warning. + begin match optPropertyType with + | Some _ -> errorR(Error(FSComp.SR.parsTypeAnnotationsOnGetSet(),mBindLhs)) + | None -> () + end; + + let optReturnType = + match (memberKind, optReturnType) with + | MemberKind.PropertySet,_ -> optReturnType + | _, None -> optPropertyType + | _ -> optReturnType + // REDO with the correct member kind + let binding = bindingBuilder(vis,isInline,isMutable,mBindLhs,NoSequencePointAtInvisibleBinding,optReturnType,expr,exprm,[],attrs,Some(memFlagsBuilder memberKind)) + let (Binding (vis, _, isInline, _, attrs, doc, valSynData, pv, rhsRetInfo, rhsExpr, mBindLhs, spBind)) = binding + + let (SynValData(_,valSynInfo,_)) = valSynData + // Setters have all arguments tupled in their internal TAST form, though they don't appear to be + // tupled from the syntax + let memFlags = memFlagsBuilder memberKind + let valSynInfo = + let adjustValueArg valueArg = if List.length valueArg = 1 then valueArg else SynInfo.unnamedTopArg + match memberKind, valSynInfo, memFlags.IsInstance with + | MemberKind.PropertyGet,SynValInfo ([],_ret), false + | MemberKind.PropertyGet,SynValInfo ([_],_ret), true -> + raiseParseErrorAt mBindLhs (FSComp.SR.parsGetterMustHaveAtLeastOneArgument()) + | MemberKind.PropertyGet,SynValInfo (thisArg::indexOrUnitArgs::rest,ret), true -> + if not rest.IsEmpty then reportParseErrorAt mBindLhs (FSComp.SR.parsGetterAtMostOneArgument()) + SynValInfo ([thisArg; indexOrUnitArgs],ret) + | MemberKind.PropertyGet,SynValInfo (indexOrUnitArgs::rest,ret), false -> + if not rest.IsEmpty then reportParseErrorAt mBindLhs (FSComp.SR.parsGetterAtMostOneArgument()) + SynValInfo ([indexOrUnitArgs],ret) + | MemberKind.PropertySet,SynValInfo ([thisArg;valueArg],ret), true -> + SynValInfo ([thisArg; adjustValueArg valueArg],ret) + | MemberKind.PropertySet,SynValInfo (thisArg::indexArgs::valueArg::rest,ret), true -> + if not rest.IsEmpty then reportParseErrorAt mBindLhs (FSComp.SR.parsSetterAtMostTwoArguments()) + SynValInfo ([thisArg; indexArgs @ adjustValueArg valueArg],ret) + | MemberKind.PropertySet,SynValInfo ([valueArg],ret), false -> + SynValInfo ([adjustValueArg valueArg],ret) + | MemberKind.PropertySet,SynValInfo (indexArgs::valueArg::rest,ret), _ -> + if not rest.IsEmpty then reportParseErrorAt mBindLhs (FSComp.SR.parsSetterAtMostTwoArguments()) + SynValInfo ([indexArgs @ adjustValueArg valueArg],ret) + | _ -> + // should be unreachable, cover just in case + raiseParseErrorAt mBindLhs (FSComp.SR.parsInvalidProperty()) + let valSynData = SynValData(Some(memFlags), valSynInfo,None) + // Fold together the information from the first lambda pattern and the get/set binding + // This uses the 'this' variable from the first and the patterns for the get/set binding, + // replacing the get/set identifier. A little gross. + let bindingPatAdjusted, xmlDocAdjusted = + let bindingOuter = propertyNameBindingBuilder(vis,optInline,isMutable,mBindLhs,spBind,optReturnType,expr,exprm,[],attrs,Some(memFlagsBuilder MemberKind.Member)) + let (Binding (_,_,_,_,_,doc2,_,bindingPatOuter,_,_,_,_)) = bindingOuter + + + let lidOuter,lidVisOuter = + match bindingPatOuter with + | SynPat.LongIdent (lid,None,None,[],lidVisOuter,m) -> lid,lidVisOuter + | SynPat.Named (_,id,_,visOuter,m) -> LongIdentWithDots([id],[]),visOuter + | p -> raiseParseErrorAt mBindLhs (FSComp.SR.parsInvalidDeclarationSyntax()) + // Merge the visibility from the outer point with the inner point, e.g. + // member this.Size with get () = m_size + + let mergeLidVisOuter lidVisInner = + match lidVisInner,lidVisOuter with + | None,None -> None + | Some lidVisInner,None | None,Some lidVisInner -> Some lidVisInner + | Some _, Some _ -> + errorR(Error(FSComp.SR.parsMultipleAccessibilitiesForGetSet(),mBindLhs)); + lidVisInner + + // Replace the "get" or the "set" with the right name + let rec go p = + match p with + | SynPat.LongIdent (LongIdentWithDots([id],_),_,tyargs,args,lidVisInner,m) -> + // Setters have all arguments tupled in their internal form, though they don't + // appear to be tupled from the syntax. Somewhat unfortunate + let args = + if id.idText = "set" then + match args with + | [SynPat.Paren(SynPat.Tuple (indexPats,_),indexPatRange);valuePat] when id.idText = "set" -> + [SynPat.Tuple(indexPats@[valuePat],unionRanges indexPatRange valuePat.Range)] + | [indexPat;valuePat] -> + [SynPat.Tuple(args,unionRanges indexPat.Range valuePat.Range)] + | [valuePat] -> + [valuePat] + | _ -> + raiseParseErrorAt m (FSComp.SR.parsSetSyntax()) + else + args + // let idTool : Ident list = lidOuter |> List.map (fun (li:Ident) -> ident(li.idText,id.idRange)) |> List.rev |> List.take 1 + SynPat.LongIdent (lidOuter,Some(id),tyargs,args,mergeLidVisOuter lidVisInner,m) + | SynPat.Named (_,nm,_,lidVisInner,m) -> SynPat.LongIdent (lidOuter,None,None,[],mergeLidVisOuter lidVisInner,m) + | SynPat.Typed (p,ty,m) -> SynPat.Typed(go p,ty,m) + | SynPat.Attrib (p,attribs,m) -> SynPat.Attrib(go p,attribs,m) + | SynPat.Wild(m) -> SynPat.Wild(m) + | _ -> raiseParseErrorAt mBindLhs (FSComp.SR.parsInvalidDeclarationSyntax()) + go pv,PreXmlDoc.Merge doc2 doc + Some <| SynMemberDefn.Member (Binding (vis, NormalBinding, isInline, isMutable, attrs, xmlDocAdjusted, valSynData, bindingPatAdjusted, rhsRetInfo, rhsExpr, mBindLhs, spBind),mWhole))) + + ) +# 1372 "..\pars.fsy" + : 'memberCore)); +# 5576 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1545 "..\pars.fsy" + + ) +# 1545 "..\pars.fsy" + : 'abstractMemberFlags)); +# 5586 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1546 "..\pars.fsy" + + ) +# 1546 "..\pars.fsy" + : 'abstractMemberFlags)); +# 5596 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1550 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + [mkClassMemberLocalBindings(false,None,_1,_2,_3)] + ) +# 1550 "..\pars.fsy" + : 'classDefnMember)); +# 5610 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1554 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + [mkClassMemberLocalBindings(true,Some (rhs parseState 3),_1,_2,_4)] + ) +# 1554 "..\pars.fsy" + : 'classDefnMember)); +# 5624 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'memberFlags)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'memberCore)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_ODECLEND)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1558 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + let _,flags = _3 + _4 _2 flags _1 + ) +# 1558 "..\pars.fsy" + : 'classDefnMember)); +# 5641 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'interfaceMember)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_interfaceImplDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1563 "..\pars.fsy" + if nonNil _1 then errorR(Error(FSComp.SR.parsAttributesAreNotPermittedOnInterfaceImplementations(),rhs parseState 1)); + if isSome _2 then errorR(Error(FSComp.SR.parsInterfacesHaveSameVisibilityAsEnclosingType(),rhs parseState 3)); + let mWhole = + match _5 with + | None -> rhs2 parseState 3 4 + | Some(mems) -> (rhs2 parseState 3 4, mems) ||> unionRangeWithListBy (fun (mem:SynMemberDefn) -> mem.Range) + [ SynMemberDefn.Interface (_4, _5, mWhole) ] + ) +# 1563 "..\pars.fsy" + : 'classDefnMember)); +# 5662 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'abstractMemberFlags)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inline)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'nameop)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_explicitValTyparDecls)) in + let _8 = (let data = parseState.GetInput(8) in (Microsoft.FSharp.Core.Operators.unbox data : 'topTypeWithTypeConstraints)) in + let _9 = (let data = parseState.GetInput(9) in (Microsoft.FSharp.Core.Operators.unbox data : 'classMemberSpfnGetSet)) in + let _10 = (let data = parseState.GetInput(10) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_ODECLEND)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1572 "..\pars.fsy" + let ty,arity = _8 + let isInline,doc,id,explicitValTyparDecls = _4,grabXmlDoc(parseState,3),_5,_6 + let getSetRangeOpt, getSet = _9 + let getSetAdjuster arity = match arity,getSet with SynValInfo([],_),MemberKind.Member -> MemberKind.PropertyGet | _ -> getSet + let wholeRange = + let m = rhs parseState 3 + match getSetRangeOpt with + | None -> unionRanges m ty.Range + | Some m2 -> unionRanges m m2 + if isSome _2 then errorR(Error(FSComp.SR.parsAccessibilityModsIllegalForAbstract(),wholeRange)); + let valSpfn = ValSpfn(_1,id,explicitValTyparDecls,ty,arity, isInline,false,doc, None,None,wholeRange) + [ SynMemberDefn.AbstractSlot(valSpfn,AbstractMemberFlags (getSetAdjuster arity), wholeRange) ] + ) +# 1572 "..\pars.fsy" + : 'classDefnMember)); +# 5692 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'inheritsDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1586 "..\pars.fsy" + if nonNil _1 then errorR(Error(FSComp.SR.parsAttributesIllegalOnInherit(),rhs parseState 1)); + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityIllegalOnInherit(),rhs parseState 1)); + [ _3 ] + ) +# 1586 "..\pars.fsy" + : 'classDefnMember)); +# 5707 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'valDefnDecl)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_ODECLEND)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1591 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + _3 None _1 false + ) +# 1591 "..\pars.fsy" + : 'classDefnMember)); +# 5722 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'valDefnDecl)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_ODECLEND)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1595 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + _4 (Some (rhs parseState 3)) _1 true + ) +# 1595 "..\pars.fsy" + : 'classDefnMember)); +# 5737 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'memberFlags)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'autoPropsDefnDecl)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_ODECLEND)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1599 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)) + let isStatic, flags = _3 + _4 _1 isStatic flags + ) +# 1599 "..\pars.fsy" + : 'classDefnMember)); +# 5754 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPattern)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'optAsSpec)) in + let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _8 = (let data = parseState.GetInput(8) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_ODECLEND)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1604 "..\pars.fsy" + let m = unionRanges (rhs2 parseState 3 6) _7.Range + let expr = _7 + let valSynData = SynValData (Some CtorMemberFlags, SynValInfo([SynInfo.InferSynArgInfoFromPat _4],SynInfo.unnamedRetVal), _5) + let vis = _2 + let declPat = SynPat.LongIdent (LongIdentWithDots([mkSynId (rhs parseState 3) "new"],[]),None,Some noInferredTypars,[_4],vis,rhs parseState 3) + // Check that 'SynPatForConstructorDecl' matches this correctly + assert (match declPat with SynPatForConstructorDecl _ -> true | _ -> false); + [ SynMemberDefn.Member(Binding (None,NormalBinding,false,false,_1,grabXmlDoc(parseState,3),valSynData, declPat,None,expr,m,NoSequencePointAtInvisibleBinding),m) ] + ) +# 1604 "..\pars.fsy" + : 'classDefnMember)); +# 5777 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'type_keyword)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'tyconDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1614 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(),rhs parseState 2)); + [ SynMemberDefn.NestedType(_5,None,rhs2 parseState 3 5) ] + ) +# 1614 "..\pars.fsy" + : 'classDefnMember)); +# 5792 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_mutable)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1619 "..\pars.fsy" + let mRhs = rhs2 parseState 4 6 + let doc = grabXmlDoc(parseState,4) + let mValDecl = rhs2 parseState 1 6 + (fun mLeft attribs isStatic -> + let mValDecl = match mLeft with None -> mValDecl | Some m -> unionRanges m mValDecl + let fld = Field(attribs,isStatic,Some _4,_6,_2,doc,_3,mRhs) + [ SynMemberDefn.ValField(fld, mValDecl) ]) + ) +# 1619 "..\pars.fsy" + : 'valDefnDecl)); +# 5812 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_mutable)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_typ)) in + let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _8 = (let data = parseState.GetInput(8) in (Microsoft.FSharp.Core.Operators.unbox data : 'classMemberSpfnGetSet)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1629 "..\pars.fsy" + let doc = grabXmlDoc(parseState,5) + let mValDecl = unionRanges (rhs parseState 1) _7.Range + let mGetSetOpt, getSet = _8 + if _2 then errorR(Error(FSComp.SR.parsMutableOnAutoPropertyShouldBeGetSet(),rhs parseState 3)) + (fun attribs isStatic flags -> + [ SynMemberDefn.AutoProperty(attribs, isStatic, _4, _5, getSet, flags, doc, _3, _7, mGetSetOpt, mValDecl) ]) + ) +# 1629 "..\pars.fsy" + : 'autoPropsDefnDecl)); +# 5833 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1638 "..\pars.fsy" + None + ) +# 1638 "..\pars.fsy" + : 'opt_typ)); +# 5843 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1639 "..\pars.fsy" + Some _2 + ) +# 1639 "..\pars.fsy" + : 'opt_typ)); +# 5854 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1643 "..\pars.fsy" + let (LongIdentWithDots(lid,dotms)) = _3 in (None,LongIdentWithDots(ident(MangledGlobalName,rhs parseState 1)::lid, rhs parseState 2::dotms)) + ) +# 1643 "..\pars.fsy" + : 'atomicPatternLongIdent)); +# 5865 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1644 "..\pars.fsy" + (None,_1) + ) +# 1644 "..\pars.fsy" + : 'atomicPatternLongIdent)); +# 5876 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'access)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1645 "..\pars.fsy" + (Some(_1), _2) + ) +# 1645 "..\pars.fsy" + : 'atomicPatternLongIdent)); +# 5888 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1648 "..\pars.fsy" + None + ) +# 1648 "..\pars.fsy" + : 'opt_access)); +# 5898 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'access)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1649 "..\pars.fsy" + Some(_1) + ) +# 1649 "..\pars.fsy" + : 'opt_access)); +# 5909 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1652 "..\pars.fsy" + SynAccess.Private + ) +# 1652 "..\pars.fsy" + : 'access)); +# 5919 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1653 "..\pars.fsy" + SynAccess.Public + ) +# 1653 "..\pars.fsy" + : 'access)); +# 5929 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1654 "..\pars.fsy" + SynAccess.Internal + ) +# 1654 "..\pars.fsy" + : 'access)); +# 5939 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'access)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1658 "..\pars.fsy" + Some(_1) + ) +# 1658 "..\pars.fsy" + : 'opt_declVisibility)); +# 5950 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1659 "..\pars.fsy" + None + ) +# 1659 "..\pars.fsy" + : 'opt_declVisibility)); +# 5960 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'objectImplementationBlock)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'declEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1662 "..\pars.fsy" + Some(_2) + ) +# 1662 "..\pars.fsy" + : 'opt_interfaceImplDefn)); +# 5972 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1663 "..\pars.fsy" + None + ) +# 1663 "..\pars.fsy" + : 'opt_interfaceImplDefn)); +# 5982 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classDefnBlock)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'declEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1666 "..\pars.fsy" + _2 + ) +# 1666 "..\pars.fsy" + : 'opt_classDefn)); +# 5994 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1667 "..\pars.fsy" + [] + ) +# 1667 "..\pars.fsy" + : 'opt_classDefn)); +# 6004 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'classSpfnBlock)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'declEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1670 "..\pars.fsy" + _2 + ) +# 1670 "..\pars.fsy" + : 'opt_classSpfn)); +# 6016 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1671 "..\pars.fsy" + [] + ) +# 1671 "..\pars.fsy" + : 'opt_classSpfn)); +# 6026 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeNonAtomicDeprecated)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'optBaseSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1676 "..\pars.fsy" + let mDecl = unionRanges (rhs parseState 1) ((_2): SynType).Range + SynMemberDefn.Inherit(_2,_3,mDecl) + ) +# 1676 "..\pars.fsy" + : 'inheritsDefn)); +# 6039 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeNonAtomicDeprecated)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'optBaseSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1679 "..\pars.fsy" + let mDecl = unionRanges (rhs parseState 1) _4.Range + SynMemberDefn.ImplicitInherit(_2,_4,_5,mDecl) + ) +# 1679 "..\pars.fsy" + : 'inheritsDefn)); +# 6054 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1682 "..\pars.fsy" + let mDecl = (rhs parseState 1) + if not _2 then errorR(Error(FSComp.SR.parsTypeNameCannotBeEmpty(), mDecl)) + SynMemberDefn.Inherit(SynType.LongIdent(LongIdentWithDots([], [])), None,mDecl) + ) +# 1682 "..\pars.fsy" + : 'inheritsDefn)); +# 6067 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'asSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1687 "..\pars.fsy" + Some(_1) + ) +# 1687 "..\pars.fsy" + : 'optAsSpec)); +# 6078 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1688 "..\pars.fsy" + None + ) +# 1688 "..\pars.fsy" + : 'optAsSpec)); +# 6088 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1691 "..\pars.fsy" + _2 + ) +# 1691 "..\pars.fsy" + : 'asSpec)); +# 6099 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'baseSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1694 "..\pars.fsy" + Some(_1) + ) +# 1694 "..\pars.fsy" + : 'optBaseSpec)); +# 6110 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1695 "..\pars.fsy" + None + ) +# 1695 "..\pars.fsy" + : 'optBaseSpec)); +# 6120 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1699 "..\pars.fsy" + if (_2).idText <> "base" then + errorR(Error(FSComp.SR.parsInheritDeclarationsCannotHaveAsBindings(),rhs2 parseState 1 2)); + ident("base",rhs parseState 2) + ) +# 1699 "..\pars.fsy" + : 'baseSpec)); +# 6133 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1704 "..\pars.fsy" + errorR(Error(FSComp.SR.parsInheritDeclarationsCannotHaveAsBindings(),rhs2 parseState 1 2)); + ident("base",rhs parseState 2) + ) +# 1704 "..\pars.fsy" + : 'baseSpec)); +# 6144 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'objectImplementationMembers)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1710 "..\pars.fsy" + _2 + ) +# 1710 "..\pars.fsy" + : 'objectImplementationBlock)); +# 6156 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'objectImplementationMembers)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1712 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedEndOfFileObjectMembers()); + _2 + ) +# 1712 "..\pars.fsy" + : 'objectImplementationBlock)); +# 6169 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'objectImplementationMembers)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1715 "..\pars.fsy" + _1 + ) +# 1715 "..\pars.fsy" + : 'objectImplementationBlock)); +# 6180 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'objectImplementationMember)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'objectImplementationMembers)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1718 "..\pars.fsy" + _1 @ _3 + ) +# 1718 "..\pars.fsy" + : 'objectImplementationMembers)); +# 6193 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'objectImplementationMember)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1719 "..\pars.fsy" + _1 + ) +# 1719 "..\pars.fsy" + : 'objectImplementationMembers)); +# 6205 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'memberOrOverride)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'memberCore)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_ODECLEND)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1723 "..\pars.fsy" + _3 None OverrideMemberFlags _1 + ) +# 1723 "..\pars.fsy" + : 'objectImplementationMember)); +# 6219 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'memberOrOverride)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'autoPropsDefnDecl)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_ODECLEND)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1725 "..\pars.fsy" + _3 _1 false OverrideMemberFlags + ) +# 1725 "..\pars.fsy" + : 'objectImplementationMember)); +# 6233 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'memberOrOverride)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1726 "..\pars.fsy" + [] + ) +# 1726 "..\pars.fsy" + : 'objectImplementationMember)); +# 6245 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'memberCore)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_ODECLEND)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1727 "..\pars.fsy" + [] + ) +# 1727 "..\pars.fsy" + : 'objectImplementationMember)); +# 6258 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1730 "..\pars.fsy" + + ) +# 1730 "..\pars.fsy" + : 'memberOrOverride)); +# 6268 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1731 "..\pars.fsy" + + ) +# 1731 "..\pars.fsy" + : 'memberOrOverride)); +# 6278 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : string * bool)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1736 "..\pars.fsy" + errorR(Error(FSComp.SR.parsUnexpectedQuotationOperatorInTypeAliasDidYouMeanVerbatimString(), rhs parseState 4)) + SynTypeDefnSimpleRepr.TypeAbbrev (ParserDetail.ThereWereSignificantParseErrorsSoDoNotTypecheckThisNode, SynType.LongIdent(_3), unionRanges (rhs parseState 1) _3.Range) + ) +# 1736 "..\pars.fsy" + : Ast.SynTypeDefnSimpleRepr)); +# 6295 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1739 "..\pars.fsy" + if nonNil _1 then errorR(Error(FSComp.SR.parsAttributesIllegalHere(),rhs parseState 1)); + if isSome _2 then errorR(Error(FSComp.SR.parsTypeAbbreviationsCannotHaveVisibilityDeclarations(),rhs parseState 2)); + SynTypeDefnSimpleRepr.TypeAbbrev (ParserDetail.Ok, _3, unionRanges (rhs parseState 1) _3.Range) + ) +# 1739 "..\pars.fsy" + : Ast.SynTypeDefnSimpleRepr)); +# 6310 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : (Ast.SynEnumCase, Ast.SynUnionCase) Choice list)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1743 "..\pars.fsy" + if nonNil _1 then errorR(Error(FSComp.SR.parsAttributesIllegalHere(),rhs parseState 1)); + let rangesOf3 = _3 |> List.map (function |Choice1Of2(ec)->ec.Range | Choice2Of2(uc)->uc.Range) + let mWhole = (rhs2 parseState 1 2, rangesOf3) ||> List.fold unionRanges + if _3 |> List.exists (function Choice1Of2 _ -> true | _ -> false) then ( + if isSome _2 then errorR(Error(FSComp.SR.parsEnumTypesCannotHaveVisibilityDeclarations(),rhs parseState 2)); + SynTypeDefnSimpleRepr.Enum (_3 |> List.choose (function + | Choice1Of2 data -> + Some(data) + | Choice2Of2(UnionCase(_,_,_,_,_,m)) -> + errorR(Error(FSComp.SR.parsAllEnumFieldsRequireValues(),m)); None), + mWhole) + ) else + SynTypeDefnSimpleRepr.Union (_2, + _3 |> List.choose (function Choice2Of2 data -> Some(data) | Choice1Of2 _ -> failwith "huh?"), + mWhole) + ) +# 1743 "..\pars.fsy" + : Ast.SynTypeDefnSimpleRepr)); +# 6337 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'braceFieldDeclList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1759 "..\pars.fsy" + if nonNil _1 then errorR(Error(FSComp.SR.parsAttributesIllegalHere(),rhs parseState 1)); + SynTypeDefnSimpleRepr.Record (_2,_3,lhs parseState) + ) +# 1759 "..\pars.fsy" + : Ast.SynTypeDefnSimpleRepr)); +# 6351 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declVisibility)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'inlineAssemblyTyconRepr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1762 "..\pars.fsy" + if nonNil _1 then errorR(Error(FSComp.SR.parsAttributesIllegalHere(),rhs parseState 1)); + libraryOnlyError (lhs parseState); + if isSome _2 then errorR(Error(FSComp.SR.parsInlineAssemblyCannotHaveVisibilityDeclarations(),rhs parseState 2)); + _4 + ) +# 1762 "..\pars.fsy" + : Ast.SynTypeDefnSimpleRepr)); +# 6368 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdFieldDeclList)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rbrace)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1770 "..\pars.fsy" + _2 + ) +# 1770 "..\pars.fsy" + : 'braceFieldDeclList)); +# 6380 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdFieldDeclList)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1772 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBrace()); + _2 + ) +# 1772 "..\pars.fsy" + : 'braceFieldDeclList)); +# 6393 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rbrace)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1775 "..\pars.fsy" + [] + ) +# 1775 "..\pars.fsy" + : 'braceFieldDeclList)); +# 6404 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'stringOrKeywordString)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HASH)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1779 "..\pars.fsy" + libraryOnlyError (lhs parseState); + let lhsm = lhs parseState + SynTypeDefnSimpleRepr.LibraryOnlyILAssembly (ParseAssemblyCodeType _2 (rhs parseState 2),lhsm) + ) +# 1779 "..\pars.fsy" + : 'inlineAssemblyTyconRepr)); +# 6418 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1784 "..\pars.fsy" + TyconClass + ) +# 1784 "..\pars.fsy" + : 'classOrInterfaceOrStruct)); +# 6428 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1785 "..\pars.fsy" + TyconInterface + ) +# 1785 "..\pars.fsy" + : 'classOrInterfaceOrStruct)); +# 6438 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1786 "..\pars.fsy" + TyconStruct + ) +# 1786 "..\pars.fsy" + : 'classOrInterfaceOrStruct)); +# 6448 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1789 "..\pars.fsy" + + ) +# 1789 "..\pars.fsy" + : 'interfaceMember)); +# 6458 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1790 "..\pars.fsy" + + ) +# 1790 "..\pars.fsy" + : 'interfaceMember)); +# 6468 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1794 "..\pars.fsy" + [], _2.Lid,false,[],_1,grabXmlDoc(parseState,2) + ) +# 1794 "..\pars.fsy" + : 'tyconNameAndTyparDecls)); +# 6480 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'prefixTyparDecls)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1796 "..\pars.fsy" + _2, _3.Lid,false,[],_1,grabXmlDoc(parseState,2) + ) +# 1796 "..\pars.fsy" + : 'tyconNameAndTyparDecls)); +# 6493 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'postfixTyparDecls)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1798 "..\pars.fsy" + let tps,tpcs = _3 + tps, _2.Lid,true,tpcs,_1,grabXmlDoc(parseState,2) + ) +# 1798 "..\pars.fsy" + : 'tyconNameAndTyparDecls)); +# 6507 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1802 "..\pars.fsy" + [ TyparDecl([],_1) ] + ) +# 1802 "..\pars.fsy" + : 'prefixTyparDecls)); +# 6518 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'prefixTyparDeclList)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1803 "..\pars.fsy" + List.rev _2 + ) +# 1803 "..\pars.fsy" + : 'prefixTyparDecls)); +# 6530 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'prefixTyparDeclList)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typarDecl)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1806 "..\pars.fsy" + _3 :: _1 + ) +# 1806 "..\pars.fsy" + : 'prefixTyparDeclList)); +# 6542 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typarDecl)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1807 "..\pars.fsy" + [_1] + ) +# 1807 "..\pars.fsy" + : 'prefixTyparDeclList)); +# 6553 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1811 "..\pars.fsy" + TyparDecl(_1,_2) + ) +# 1811 "..\pars.fsy" + : 'typarDecl)); +# 6565 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_TYAPP)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'prefixTyparDeclList)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_typeConstraints)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1817 "..\pars.fsy" + if not _2 then warning(Error(FSComp.SR.parsNonAdjacentTypars(),rhs2 parseState 2 5)); + List.rev _3, _4 + ) +# 1817 "..\pars.fsy" + : 'postfixTyparDecls)); +# 6581 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'prefixTyparDeclList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1824 "..\pars.fsy" + (List.rev _1,true) + ) +# 1824 "..\pars.fsy" + : 'explicitValTyparDeclsCore)); +# 6592 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'prefixTyparDeclList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1826 "..\pars.fsy" + (List.rev _1,false) + ) +# 1826 "..\pars.fsy" + : 'explicitValTyparDeclsCore)); +# 6603 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1828 "..\pars.fsy" + ([],false) + ) +# 1828 "..\pars.fsy" + : 'explicitValTyparDeclsCore)); +# 6613 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_TYAPP)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'explicitValTyparDeclsCore)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_typeConstraints)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1832 "..\pars.fsy" + if not _2 then warning(Error(FSComp.SR.parsNonAdjacentTypars(),rhs2 parseState 2 5)); + let tps,flex = _3 + SynValTyparDecls(tps,flex,_4) + ) +# 1832 "..\pars.fsy" + : 'explicitValTyparDecls)); +# 6630 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'explicitValTyparDecls)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1838 "..\pars.fsy" + _1 + ) +# 1838 "..\pars.fsy" + : 'opt_explicitValTyparDecls)); +# 6641 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1840 "..\pars.fsy" + SynValTyparDecls([],true,[]) + ) +# 1840 "..\pars.fsy" + : 'opt_explicitValTyparDecls)); +# 6651 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'explicitValTyparDecls)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1844 "..\pars.fsy" + Some _1 + ) +# 1844 "..\pars.fsy" + : 'opt_explicitValTyparDecls2)); +# 6662 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1846 "..\pars.fsy" + None + ) +# 1846 "..\pars.fsy" + : 'opt_explicitValTyparDecls2)); +# 6672 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1852 "..\pars.fsy" + [] + ) +# 1852 "..\pars.fsy" + : 'opt_typeConstraints)); +# 6682 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeConstraints)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1854 "..\pars.fsy" + List.rev _2 + ) +# 1854 "..\pars.fsy" + : 'opt_typeConstraints)); +# 6693 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeConstraints)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeConstraint)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1859 "..\pars.fsy" + _3 :: _1 + ) +# 1859 "..\pars.fsy" + : 'typeConstraints)); +# 6705 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeConstraint)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1860 "..\pars.fsy" + [_1] + ) +# 1860 "..\pars.fsy" + : 'typeConstraints)); +# 6716 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1866 "..\pars.fsy" + libraryOnlyError (lhs parseState); WhereTyparDefaultsToType(_2,_4,lhs parseState) + ) +# 1866 "..\pars.fsy" + : 'typeConstraint)); +# 6728 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1868 "..\pars.fsy" + WhereTyparSubtypeOfType(_1,_3,lhs parseState) + ) +# 1868 "..\pars.fsy" + : 'typeConstraint)); +# 6740 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1870 "..\pars.fsy" + WhereTyparIsValueType(_1,lhs parseState) + ) +# 1870 "..\pars.fsy" + : 'typeConstraint)); +# 6751 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1872 "..\pars.fsy" + if _3 <> "not" then reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedIdentifier(_3)); + WhereTyparIsReferenceType(_1,lhs parseState) + ) +# 1872 "..\pars.fsy" + : 'typeConstraint)); +# 6764 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1875 "..\pars.fsy" + WhereTyparSupportsNull(_1,lhs parseState) + ) +# 1875 "..\pars.fsy" + : 'typeConstraint)); +# 6775 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'classMemberSpfn)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1877 "..\pars.fsy" + WhereTyparSupportsMember([ _1 ],_4,lhs parseState) + ) +# 1877 "..\pars.fsy" + : 'typeConstraint)); +# 6788 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typarAlts)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'classMemberSpfn)) in + let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1879 "..\pars.fsy" + WhereTyparSupportsMember(List.rev(_2),_6,lhs parseState) + ) +# 1879 "..\pars.fsy" + : 'typeConstraint)); +# 6802 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : range * range option * Ast.SynType list * range list * range)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1881 "..\pars.fsy" + let _ltm,_gtm,args,_commas,mWhole = _4 in WhereTyparIsDelegate(_1, args, unionRanges _1.Range mWhole) + ) +# 1881 "..\pars.fsy" + : 'typeConstraint)); +# 6814 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : range * range option * Ast.SynType list * range list * range)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1883 "..\pars.fsy" + match _3 with + | "enum" -> let _ltm,_gtm,args,_commas,mWhole = _4 in WhereTyparIsEnum(_1, args, unionRanges _1.Range mWhole) + | nm -> raiseParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedIdentifier(nm)) + ) +# 1883 "..\pars.fsy" + : 'typeConstraint)); +# 6829 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1887 "..\pars.fsy" + match _3 with + | "comparison" -> WhereTyparIsComparable(_1,lhs parseState) + | "equality" -> WhereTyparIsEquatable(_1,lhs parseState) + | "unmanaged" -> WhereTyparIsUnmanaged(_1,lhs parseState) + | nm -> raiseParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedIdentifier(nm)) + ) +# 1887 "..\pars.fsy" + : 'typeConstraint)); +# 6845 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typarAlts)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1894 "..\pars.fsy" + _3::_1 + ) +# 1894 "..\pars.fsy" + : 'typarAlts)); +# 6857 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1895 "..\pars.fsy" + [_1] + ) +# 1895 "..\pars.fsy" + : 'typarAlts)); +# 6868 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'barAndgrabXmlDoc)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'attrUnionCaseDecls)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1901 "..\pars.fsy" + _2 _1 + ) +# 1901 "..\pars.fsy" + : (Ast.SynEnumCase, Ast.SynUnionCase) Choice list)); +# 6880 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'firstUnionCaseDeclOfMany)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'barAndgrabXmlDoc)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'attrUnionCaseDecls)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1903 "..\pars.fsy" + _1 :: _3 _2 + ) +# 1903 "..\pars.fsy" + : (Ast.SynEnumCase, Ast.SynUnionCase) Choice list)); +# 6893 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'firstUnionCaseDecl)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1905 "..\pars.fsy" + [_1] + ) +# 1905 "..\pars.fsy" + : (Ast.SynEnumCase, Ast.SynUnionCase) Choice list)); +# 6904 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1908 "..\pars.fsy" + grabXmlDoc(parseState,1) + ) +# 1908 "..\pars.fsy" + : 'barAndgrabXmlDoc)); +# 6914 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attrUnionCaseDecl)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'barAndgrabXmlDoc)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'attrUnionCaseDecls)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1911 "..\pars.fsy" + (fun xmlDoc -> _1 xmlDoc :: _3 _2) + ) +# 1911 "..\pars.fsy" + : 'attrUnionCaseDecls)); +# 6927 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attrUnionCaseDecl)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1912 "..\pars.fsy" + (fun xmlDoc -> [ _1 xmlDoc ]) + ) +# 1912 "..\pars.fsy" + : 'attrUnionCaseDecls)); +# 6938 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'unionCaseName)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1916 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsUnionCasesCannotHaveVisibilityDeclarations(),rhs parseState 2)); + let mDecl = rhs parseState 3 + (fun xmlDoc -> Choice2Of2 (UnionCase ( _1, _3,UnionCaseFields [],xmlDoc,None,mDecl))) + + ) +# 1916 "..\pars.fsy" + : 'attrUnionCaseDecl)); +# 6955 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'unionCaseName)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'unionCaseRepr)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1921 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsUnionCasesCannotHaveVisibilityDeclarations(),rhs parseState 2)); + let mDecl = rhs2 parseState 3 5 + (fun xmlDoc -> Choice2Of2 (UnionCase ( _1, _3,UnionCaseFields _5,xmlDoc,None,mDecl))) + + ) +# 1921 "..\pars.fsy" + : 'attrUnionCaseDecl)); +# 6973 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'unionCaseName)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'topType)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1926 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsUnionCasesCannotHaveVisibilityDeclarations(),rhs parseState 2)); + libraryOnlyWarning(lhs parseState); + let mDecl = rhs2 parseState 3 5 + (fun xmlDoc -> Choice2Of2 (UnionCase ( _1, _3,UnionCaseFullType _5,xmlDoc,None,mDecl))) + + ) +# 1926 "..\pars.fsy" + : 'attrUnionCaseDecl)); +# 6992 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'unionCaseName)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'constant)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1932 "..\pars.fsy" + if isSome _2 then errorR(Error(FSComp.SR.parsEnumFieldsCannotHaveVisibilityDeclarations(),rhs parseState 2)); + let mDecl = rhs2 parseState 3 5 + (fun xmlDoc -> Choice1Of2 (EnumCase ( _1, _3,_5,xmlDoc,mDecl))) + + ) +# 1932 "..\pars.fsy" + : 'attrUnionCaseDecl)); +# 7010 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'nameop)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1940 "..\pars.fsy" + _1 + ) +# 1940 "..\pars.fsy" + : 'unionCaseName)); +# 7021 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1942 "..\pars.fsy" + ident(opNameCons,rhs parseState 2) + ) +# 1942 "..\pars.fsy" + : 'unionCaseName)); +# 7032 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1944 "..\pars.fsy" + ident(opNameNil,rhs2 parseState 2 3) + ) +# 1944 "..\pars.fsy" + : 'unionCaseName)); +# 7043 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1948 "..\pars.fsy" + + Choice2Of2 (UnionCase ( [], _1,UnionCaseFields [],PreXmlDoc.Empty,None,rhs parseState 1)) + + ) +# 1948 "..\pars.fsy" + : 'firstUnionCaseDeclOfMany)); +# 7057 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'constant)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1952 "..\pars.fsy" + + Choice1Of2 (EnumCase ([],_1,_3,PreXmlDoc.Empty,rhs2 parseState 1 3)) + + ) +# 1952 "..\pars.fsy" + : 'firstUnionCaseDeclOfMany)); +# 7072 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'firstUnionCaseDecl)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1956 "..\pars.fsy" + _1 + ) +# 1956 "..\pars.fsy" + : 'firstUnionCaseDeclOfMany)); +# 7084 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'unionCaseRepr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1960 "..\pars.fsy" + + Choice2Of2 (UnionCase ( [],_1,UnionCaseFields _3,PreXmlDoc.Empty,None,rhs2 parseState 1 3)) + + ) +# 1960 "..\pars.fsy" + : 'firstUnionCaseDecl)); +# 7098 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'constant)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1964 "..\pars.fsy" + + Choice1Of2 (EnumCase ([],_1,_3,PreXmlDoc.Empty,rhs2 parseState 1 3)) + + ) +# 1964 "..\pars.fsy" + : 'firstUnionCaseDecl)); +# 7113 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'braceFieldDeclList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1970 "..\pars.fsy" + errorR(Deprecated(FSComp.SR.parsConsiderUsingSeparateRecordType(),lhs parseState)); + _1 + ) +# 1970 "..\pars.fsy" + : 'unionCaseRepr)); +# 7125 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleTypeElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1973 "..\pars.fsy" + List.map mkAnonField (_1 :: _3) + ) +# 1973 "..\pars.fsy" + : 'unionCaseRepr)); +# 7137 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1975 "..\pars.fsy" + [mkAnonField _1] + ) +# 1975 "..\pars.fsy" + : 'unionCaseRepr)); +# 7148 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdFieldDecl)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'seps)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdFieldDeclList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1979 "..\pars.fsy" + _1 :: _3 + ) +# 1979 "..\pars.fsy" + : 'recdFieldDeclList)); +# 7161 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdFieldDecl)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1981 "..\pars.fsy" + [_1] + ) +# 1981 "..\pars.fsy" + : 'recdFieldDeclList)); +# 7173 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'fieldDecl)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1985 "..\pars.fsy" + let fld = _2 _1 false + let (Field(a,b,c,d,e,f,vis,g)) = fld + if isSome vis then errorR(Error(FSComp.SR.parsRecordFieldsCannotHaveVisibilityDeclarations(),rhs parseState 2)); + Field(a,b,c,d,e,f,None,g) + ) +# 1985 "..\pars.fsy" + : 'recdFieldDecl)); +# 7188 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_mutable)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1992 "..\pars.fsy" + let mRhs = rhs2 parseState 3 5 + let xmlDoc = grabXmlDoc(parseState,3) + (fun attrs stat -> Field(attrs, stat,Some _3,_5,_1,xmlDoc,_2,mRhs)) + ) +# 1992 "..\pars.fsy" + : 'fieldDecl)); +# 7204 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExceptionRepr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_classDefn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 1999 "..\pars.fsy" + ExceptionDefn(_1,_2, (_1.Range,_2) ||> unionRangeWithListBy (fun cd -> cd.Range) ) + ) +# 1999 "..\pars.fsy" + : Ast.SynExceptionDefn)); +# 7216 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExceptionRepr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_classSpfn)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2003 "..\pars.fsy" + ExceptionSig(_1,_2,lhs parseState) + ) +# 2003 "..\pars.fsy" + : 'exconSpfn)); +# 7228 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2006 "..\pars.fsy" + grabXmlDoc(parseState,1) + ) +# 2006 "..\pars.fsy" + : 'exceptionAndGrabDoc)); +# 7238 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'exceptionAndGrabDoc)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'exconIntro)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'exconRepr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2010 "..\pars.fsy" + ExceptionDefnRepr(_2,_4,_5,_1,_3,(match _5 with None -> rhs2 parseState 1 4 | Some p -> unionRanges (rangeOfLongIdent p) (rhs2 parseState 1 4))) + ) +# 2010 "..\pars.fsy" + : Ast.SynExceptionRepr)); +# 7253 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2014 "..\pars.fsy" + UnionCase ( [], _1,UnionCaseFields [],PreXmlDoc.Empty,None,lhs parseState) + ) +# 2014 "..\pars.fsy" + : 'exconIntro)); +# 7264 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'unionCaseRepr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2016 "..\pars.fsy" + UnionCase ( [], _1,UnionCaseFields _3,PreXmlDoc.Empty,None,lhs parseState) + ) +# 2016 "..\pars.fsy" + : 'exconIntro)); +# 7276 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2019 "..\pars.fsy" + None + ) +# 2019 "..\pars.fsy" + : 'exconRepr)); +# 7286 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2020 "..\pars.fsy" + Some (_2.Lid) + ) +# 2020 "..\pars.fsy" + : 'exconRepr)); +# 7297 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2023 "..\pars.fsy" + _2 + ) +# 2023 "..\pars.fsy" + : Ast.LongIdentWithDots)); +# 7308 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_rec)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'localBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2027 "..\pars.fsy" + let mLetKwd = rhs parseState 1 + let isUse = _1 + let isRec = _2 + let localBindingsLastRangeOpt, localBindingsBuilder = _3 + + // Calculate the precise range of the binding set, up to the end of the last r.h.s. expression + let bindingSetRange = + match localBindingsLastRangeOpt with + | None -> rhs2 parseState 1 2 (* there was some error - this will be an approximate range *) + | Some lastRange -> unionRanges mLetKwd lastRange + // The first binding swallows any attributes prior to the 'let' + BindingSetPreAttrs(mLetKwd,isRec,isUse, + (fun attrs vis -> + // apply the builder + let binds = localBindingsBuilder attrs vis mLetKwd + if not isRec && List.length binds > 1 then + reportParseErrorAt mLetKwd (FSComp.SR.parsLetAndForNonRecBindings()); + [],binds), + bindingSetRange) + ) +# 2027 "..\pars.fsy" + : 'defnBindings)); +# 7339 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'cPrototype)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2048 "..\pars.fsy" + let bindRange = lhs parseState + BindingSetPreAttrs(bindRange, false,false,_1,bindRange) + ) +# 2048 "..\pars.fsy" + : 'defnBindings)); +# 7351 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2053 "..\pars.fsy" + let mDoKwd = rhs parseState 1 + let mWhole = unionRanges mDoKwd _2.Range + // any attributes prior to the 'let' are left free, e.g. become top-level attributes + // associated with the module, 'main' function or assembly depending on their target + BindingSetPreAttrs(mDoKwd,false,false,(fun attrs vis -> attrs,[mkSynDoBinding (vis,true,_2,mWhole)]), mWhole) + ) +# 2053 "..\pars.fsy" + : 'doBinding)); +# 7366 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_rec)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'localBindings)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteDefnBindingsTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2062 "..\pars.fsy" + let mLetKwd = rhs parseState 1 + let isUse = _1 + let isRec = _2 + _4 (if isUse then "use" else "let") mLetKwd; // report unterminated error + + let localBindingsLastRangeOpt, localBindingsBuilder = _3 + + // Calculate the precise range of the binding set, up to the end of the last r.h.s. expression + let bindingSetRange = + match localBindingsLastRangeOpt with + | None -> rhs parseState 1 (* there was some error - this will be an approximate range *) + | Some lastRange -> unionRanges mLetKwd lastRange + // the first binding swallow any attributes prior to the 'let' + BindingSetPreAttrs(mLetKwd,isRec,isUse, + (fun attrs vis -> + let binds = localBindingsBuilder attrs vis mLetKwd + if not isRec && List.length binds > 1 then + reportParseErrorAt mLetKwd (FSComp.SR.parsLetAndForNonRecBindings()); + [],binds), + bindingSetRange), (unionRanges mLetKwd bindingSetRange) + ) +# 2062 "..\pars.fsy" + : 'hardwhiteLetBindings)); +# 7399 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteDefnBindingsTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2086 "..\pars.fsy" + let mLetKwd = rhs parseState 1 + let bindingSetRange = unionRanges mLetKwd _2.Range + let seqPt = NoSequencePointAtDoBinding + // any attributes prior to the 'let' are left free, e.g. become top-level attributes + // associated with the module, 'main' function or assembly depending on their target + BindingSetPreAttrs(mLetKwd,false,false,(fun attrs vis -> attrs,[mkSynDoBinding (vis,true,_2,bindingSetRange)]),bindingSetRange), _2 + ) +# 2086 "..\pars.fsy" + : 'hardwhiteDoBinding)); +# 7416 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'defnBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2094 "..\pars.fsy" + _1 + ) +# 2094 "..\pars.fsy" + : 'classDefnBindings)); +# 7427 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'doBinding)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2095 "..\pars.fsy" + _1 + ) +# 2095 "..\pars.fsy" + : 'classDefnBindings)); +# 7438 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteLetBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2096 "..\pars.fsy" + let b,m = _1 in b + ) +# 2096 "..\pars.fsy" + : 'classDefnBindings)); +# 7449 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteDoBinding)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2097 "..\pars.fsy" + fst _1 + ) +# 2097 "..\pars.fsy" + : 'classDefnBindings)); +# 7460 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2102 "..\pars.fsy" + (fun _ m -> ()) + ) +# 2102 "..\pars.fsy" + : 'hardwhiteDefnBindingsTerminator)); +# 7470 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2104 "..\pars.fsy" + (fun kwd m -> reportParseErrorAt m (match kwd with + | "let!" -> FSComp.SR.parsUnmatchedLetBang() + | "use!" -> FSComp.SR.parsUnmatchedUseBang() + | "use" -> FSComp.SR.parsUnmatchedUse() + | _ (*"let" *) -> FSComp.SR.parsUnmatchedLet())) + ) +# 2104 "..\pars.fsy" + : 'hardwhiteDefnBindingsTerminator)); +# 7485 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'cRetType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_access)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : 'cArgs)) in + let _8 = (let data = parseState.GetInput(8) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2112 "..\pars.fsy" + let rty,vis,nm,args = _2,_3,_4,_7 + let xmlDoc = grabXmlDoc(parseState,1) + let nmm = rhs parseState 3 + let argsm = rhs parseState 6 + let mBindLhs = lhs parseState + let mWhole = lhs parseState + let mRhs = lhs parseState + let rhsExpr = SynExpr.App(ExprAtomicFlag.NonAtomic, + false, + SynExpr.Ident(ident("failwith",rhs parseState 6)), + SynExpr.Const(SynConst.String("extern was not given a DllImport attribute",rhs parseState 8),rhs parseState 8), + mRhs) + (fun attrs vis -> + let bindingId = SynPat.LongIdent (LongIdentWithDots([nm],[]), None, Some noInferredTypars, [SynPat.Tuple(args,argsm)], vis, nmm) + let binding = mkSynBinding + (xmlDoc, bindingId) + (vis, false, false, mBindLhs, NoSequencePointAtInvisibleBinding, Some rty ,rhsExpr, mRhs, [], attrs, None) + [], [binding]) + ) +# 2112 "..\pars.fsy" + : 'cPrototype)); +# 7518 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'cMoreArgs)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2133 "..\pars.fsy" + List.rev _1 + ) +# 2133 "..\pars.fsy" + : 'cArgs)); +# 7529 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'cArg)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2135 "..\pars.fsy" + [_1] + ) +# 2135 "..\pars.fsy" + : 'cArgs)); +# 7540 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2137 "..\pars.fsy" + [] + ) +# 2137 "..\pars.fsy" + : 'cArgs)); +# 7550 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'cMoreArgs)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'cArg)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2141 "..\pars.fsy" + _3 :: _1 + ) +# 2141 "..\pars.fsy" + : 'cMoreArgs)); +# 7562 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'cArg)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'cArg)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2143 "..\pars.fsy" + [_3; _1] + ) +# 2143 "..\pars.fsy" + : 'cMoreArgs)); +# 7574 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'cType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2147 "..\pars.fsy" + let m = lhs parseState in SynPat.Typed(SynPat.Wild m,_2,m) |> addAttribs _1 + ) +# 2147 "..\pars.fsy" + : 'cArg)); +# 7586 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'cType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2149 "..\pars.fsy" + let m = lhs parseState in SynPat.Typed(SynPat.Named (SynPat.Wild m,_3,false,None,m),_2,m) |> addAttribs _1 + ) +# 2149 "..\pars.fsy" + : 'cArg)); +# 7599 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2153 "..\pars.fsy" + let m = _1.Range + SynType.App(SynType.LongIdent(_1),None,[],[],None,false,m) + ) +# 2153 "..\pars.fsy" + : 'cType)); +# 7611 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'cType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2157 "..\pars.fsy" + let m = lhs parseState + SynType.App(SynType.LongIdent(LongIdentWithDots([ident("[]",m)],[])),None,[_1],[],None,true,m) + ) +# 2157 "..\pars.fsy" + : 'cType)); +# 7624 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'cType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2161 "..\pars.fsy" + let m = lhs parseState + SynType.App(SynType.LongIdent(LongIdentWithDots([ident("nativeptr",m)],[])),None,[_1],[],None,true,m) + ) +# 2161 "..\pars.fsy" + : 'cType)); +# 7636 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'cType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2165 "..\pars.fsy" + let m = lhs parseState + SynType.App(SynType.LongIdent(LongIdentWithDots([ident("byref",m)],[])),None,[_1],[],None,true,m) + ) +# 2165 "..\pars.fsy" + : 'cType)); +# 7648 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2169 "..\pars.fsy" + let m = lhs parseState + SynType.App(SynType.LongIdent(LongIdentWithDots([ident("nativeint",m)],[])),None,[],[],None,true,m) + ) +# 2169 "..\pars.fsy" + : 'cType)); +# 7659 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'cType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2174 "..\pars.fsy" + SynReturnInfo((_2,SynArgInfo(_1,false,None)),rhs parseState 2) + ) +# 2174 "..\pars.fsy" + : 'cRetType)); +# 7671 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2176 "..\pars.fsy" + let m = rhs parseState 2 + SynReturnInfo((SynType.App(SynType.LongIdent(LongIdentWithDots([ident("unit",m)],[])),None,[],[],None,false,m),SynArgInfo(_1,false,None)),m) + ) +# 2176 "..\pars.fsy" + : 'cRetType)); +# 7683 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attr_localBinding)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'moreLocalBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2182 "..\pars.fsy" + let (moreBindings, moreBindingRanges) = List.unzip _2 + let moreLocalBindingsLastRange = if moreBindingRanges.IsEmpty then None else Some (List.last moreBindingRanges) + match _1 with + | Some (localBindingRange,attrLocalBindingBuilder) -> + let lastRange = + match moreLocalBindingsLastRange with + | None -> localBindingRange + | Some m -> m + Some lastRange, (fun attrs vis mLetKwd -> attrLocalBindingBuilder attrs vis mLetKwd true :: moreBindings) + | None -> + moreLocalBindingsLastRange, (fun _attrs _vis _letm -> moreBindings) + ) +# 2182 "..\pars.fsy" + : 'localBindings)); +# 7705 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'attr_localBinding)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'moreLocalBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2196 "..\pars.fsy" + let mLetKwd = rhs parseState 1 + (match _2 with + | Some (localBindingRange,attrLocalBindingBuilder) -> (attrLocalBindingBuilder [] None mLetKwd false,localBindingRange) :: _3 + | None -> _3) + ) +# 2196 "..\pars.fsy" + : 'moreLocalBindings)); +# 7720 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2201 "..\pars.fsy" + [] + ) +# 2201 "..\pars.fsy" + : 'moreLocalBindings)); +# 7730 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'localBinding)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2205 "..\pars.fsy" + let attrs2 = _1 + let localBindingRange,localBindingBuilder = _2 + let attrLocalBindingBuilder = (fun attrs vis mLetKwd _ -> localBindingBuilder (attrs@attrs2) vis mLetKwd) + Some(localBindingRange,attrLocalBindingBuilder) + ) +# 2205 "..\pars.fsy" + : 'attr_localBinding)); +# 7745 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2210 "..\pars.fsy" + None + ) +# 2210 "..\pars.fsy" + : 'attr_localBinding)); +# 7755 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inline)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_mutable)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'bindingPattern)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_topReturnTypeWithTypeConstraints)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedExprWithStaticOptimizationsBlock)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2214 "..\pars.fsy" + let (expr:SynExpr),opts = _6 + let eqm = rhs parseState 5 + let mRhs = expr.Range + let optReturnType = _4 + let bindingBuilder, mBindLhs = _3 + let localBindingRange = unionRanges (rhs2 parseState 3 5) mRhs + let localBindingBuilder = + (fun attrs vis mLetKwd -> + let mWhole = unionRanges mLetKwd mRhs + let spBind = if IsControlFlowExpression expr then NoSequencePointAtLetBinding else SequencePointAtBinding(mWhole) + bindingBuilder (vis,_1,_2,mBindLhs,spBind,optReturnType,expr,mRhs,opts,attrs,None)) + localBindingRange,localBindingBuilder + ) +# 2214 "..\pars.fsy" + : 'localBinding)); +# 7781 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inline)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_mutable)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'bindingPattern)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_topReturnTypeWithTypeConstraints)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2227 "..\pars.fsy" + let mWhole = rhs2 parseState 3 5 + let mRhs = rhs parseState 5 + let optReturnType = _4 + let bindingBuilder,mBindLhs = _3 + let localBindingBuilder = + (fun attrs vis mLetKwd -> + let spBind = SequencePointAtBinding(unionRanges mLetKwd mRhs) + let eqm = rhs parseState 5 + let zeroWidthAtEnd = eqm.EndRange + bindingBuilder (vis,_1,_2,mBindLhs,spBind,optReturnType,arbExpr("localBinding1",zeroWidthAtEnd),mRhs,[],attrs,None)) + mWhole,localBindingBuilder + ) +# 2227 "..\pars.fsy" + : 'localBinding)); +# 7805 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inline)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_mutable)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'bindingPattern)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_topReturnTypeWithTypeConstraints)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2239 "..\pars.fsy" + if not _5 then reportParseErrorAt (rhs parseState 5) (FSComp.SR.parsUnexpectedEndOfFileDefinition()) + let optReturnType = _4 + let mWhole = match optReturnType with None -> rhs parseState 3 | Some _ -> rhs2 parseState 3 4 + let mRhs = mWhole.EndRange // zero-width range at end of last good token + let bindingBuilder,mBindLhs = _3 + let localBindingBuilder = + (fun attrs vis mLetKwd -> + let spBind = SequencePointAtBinding(unionRanges mLetKwd mRhs) + bindingBuilder (vis,_1,_2,mBindLhs,spBind,optReturnType,arbExpr("localBinding2",mRhs),mRhs,[],attrs,None)) + mWhole,localBindingBuilder + ) +# 2239 "..\pars.fsy" + : 'localBinding)); +# 7829 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedExprWithStaticOptimizations)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2253 "..\pars.fsy" + _2 + ) +# 2253 "..\pars.fsy" + : 'typedExprWithStaticOptimizationsBlock)); +# 7841 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedExprWithStaticOptimizations)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2255 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedEndOfFile()); + let a,b = _2 + (exprFromParseError a, b) + ) +# 2255 "..\pars.fsy" + : 'typedExprWithStaticOptimizationsBlock)); +# 7855 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedExprWithStaticOptimizations)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2259 "..\pars.fsy" + _1 + ) +# 2259 "..\pars.fsy" + : 'typedExprWithStaticOptimizationsBlock)); +# 7866 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_staticOptimizations)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2262 "..\pars.fsy" + _1, List.rev _2 + ) +# 2262 "..\pars.fsy" + : 'typedExprWithStaticOptimizations)); +# 7878 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_staticOptimizations)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticOptimization)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2265 "..\pars.fsy" + _2 :: _1 + ) +# 2265 "..\pars.fsy" + : 'opt_staticOptimizations)); +# 7890 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2266 "..\pars.fsy" + [] + ) +# 2266 "..\pars.fsy" + : 'opt_staticOptimizations)); +# 7900 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticOptimizationConditions)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2269 "..\pars.fsy" + (_2,_4) + ) +# 2269 "..\pars.fsy" + : 'staticOptimization)); +# 7912 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticOptimizationConditions)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticOptimizationCondition)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2272 "..\pars.fsy" + _3 :: _1 + ) +# 2272 "..\pars.fsy" + : 'staticOptimizationConditions)); +# 7924 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticOptimizationCondition)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2273 "..\pars.fsy" + [_1 ] + ) +# 2273 "..\pars.fsy" + : 'staticOptimizationConditions)); +# 7935 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2276 "..\pars.fsy" + WhenTyparTyconEqualsTycon(_1,_3,lhs parseState) + ) +# 2276 "..\pars.fsy" + : 'staticOptimizationCondition)); +# 7947 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2277 "..\pars.fsy" + WhenTyparIsStruct(_1,lhs parseState) + ) +# 2277 "..\pars.fsy" + : 'staticOptimizationCondition)); +# 7958 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : sbyte * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2280 "..\pars.fsy" + if snd _1 then errorR(Error(FSComp.SR.lexOutsideEightBitSigned(), lhs parseState)); + SynConst.SByte (fst _1) + ) +# 2280 "..\pars.fsy" + : 'rawConstant)); +# 7970 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : byte)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2282 "..\pars.fsy" + SynConst.Byte _1 + ) +# 2282 "..\pars.fsy" + : 'rawConstant)); +# 7981 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int16 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2283 "..\pars.fsy" + if snd _1 then errorR(Error(FSComp.SR.lexOutsideSixteenBitSigned(), lhs parseState)); + SynConst.Int16 (fst _1) + ) +# 2283 "..\pars.fsy" + : 'rawConstant)); +# 7993 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : uint16)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2285 "..\pars.fsy" + SynConst.UInt16 _1 + ) +# 2285 "..\pars.fsy" + : 'rawConstant)); +# 8004 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int32 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2286 "..\pars.fsy" + if snd _1 then errorR(Error(FSComp.SR.lexOutsideThirtyTwoBitSigned(), lhs parseState)); + SynConst.Int32 (fst _1) + ) +# 2286 "..\pars.fsy" + : 'rawConstant)); +# 8016 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : uint32)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2288 "..\pars.fsy" + SynConst.UInt32 _1 + ) +# 2288 "..\pars.fsy" + : 'rawConstant)); +# 8027 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int64 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2289 "..\pars.fsy" + if snd _1 then errorR(Error(FSComp.SR.lexOutsideSixtyFourBitSigned(), lhs parseState)); + SynConst.Int64 (fst _1) + ) +# 2289 "..\pars.fsy" + : 'rawConstant)); +# 8039 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : uint64)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2291 "..\pars.fsy" + SynConst.UInt64 _1 + ) +# 2291 "..\pars.fsy" + : 'rawConstant)); +# 8050 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int64)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2292 "..\pars.fsy" + SynConst.IntPtr _1 + ) +# 2292 "..\pars.fsy" + : 'rawConstant)); +# 8061 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : uint64)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2293 "..\pars.fsy" + SynConst.UIntPtr _1 + ) +# 2293 "..\pars.fsy" + : 'rawConstant)); +# 8072 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : single)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2294 "..\pars.fsy" + SynConst.Single _1 + ) +# 2294 "..\pars.fsy" + : 'rawConstant)); +# 8083 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : double)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2295 "..\pars.fsy" + SynConst.Double _1 + ) +# 2295 "..\pars.fsy" + : 'rawConstant)); +# 8094 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : char)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2296 "..\pars.fsy" + SynConst.Char _1 + ) +# 2296 "..\pars.fsy" + : 'rawConstant)); +# 8105 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : System.Decimal)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2297 "..\pars.fsy" + SynConst.Decimal _1 + ) +# 2297 "..\pars.fsy" + : 'rawConstant)); +# 8116 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : (string * string))) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2298 "..\pars.fsy" + SynConst.UserNum _1 + ) +# 2298 "..\pars.fsy" + : 'rawConstant)); +# 8127 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'stringOrKeywordString)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2299 "..\pars.fsy" + SynConst.String (_1,lhs parseState) + ) +# 2299 "..\pars.fsy" + : 'rawConstant)); +# 8138 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : byte[])) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2300 "..\pars.fsy" + SynConst.Bytes (_1,lhs parseState) + ) +# 2300 "..\pars.fsy" + : 'rawConstant)); +# 8149 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'rawConstant)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2303 "..\pars.fsy" + _1 + ) +# 2303 "..\pars.fsy" + : 'constant)); +# 8160 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'rawConstant)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeArg)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2304 "..\pars.fsy" + SynConst.Measure(_1, _3) + ) +# 2304 "..\pars.fsy" + : 'constant)); +# 8172 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2308 "..\pars.fsy" + let xmlDoc = grabXmlDoc(parseState,1) + mkSynBinding (xmlDoc,_1), rhs parseState 1 + ) +# 2308 "..\pars.fsy" + : 'bindingPattern)); +# 8184 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2314 "..\pars.fsy" + SynSimplePat.Id (_1,None,false,false,false,rhs parseState 1) + ) +# 2314 "..\pars.fsy" + : 'simplePattern)); +# 8195 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2316 "..\pars.fsy" + SynSimplePat.Id (_2,None,false,false,true,rhs parseState 2) + ) +# 2316 "..\pars.fsy" + : 'simplePattern)); +# 8206 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'simplePattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeWithTypeConstraints)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2318 "..\pars.fsy" + let lhsm = lhs parseState + SynSimplePat.Typed(_1,_3,lhsm) + ) +# 2318 "..\pars.fsy" + : 'simplePattern)); +# 8219 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'simplePattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2321 "..\pars.fsy" + let lhsm = lhs parseState + SynSimplePat.Attrib(_2,_1,lhsm) + ) +# 2321 "..\pars.fsy" + : 'simplePattern)); +# 8232 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'simplePattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2326 "..\pars.fsy" + [_1] + ) +# 2326 "..\pars.fsy" + : 'simplePatternCommaList)); +# 8243 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'simplePattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'simplePatternCommaList)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2328 "..\pars.fsy" + _1 :: _3 + ) +# 2328 "..\pars.fsy" + : 'simplePatternCommaList)); +# 8255 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'simplePatternCommaList)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2332 "..\pars.fsy" + _2 + ) +# 2332 "..\pars.fsy" + : 'simplePatterns)); +# 8267 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2334 "..\pars.fsy" + [] + ) +# 2334 "..\pars.fsy" + : 'simplePatterns)); +# 8278 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'simplePatternCommaList)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2336 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()); + [] + ) +# 2336 "..\pars.fsy" + : 'simplePatterns)); +# 8291 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2339 "..\pars.fsy" + (* silent recovery *) [] + ) +# 2339 "..\pars.fsy" + : 'simplePatterns)); +# 8302 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2341 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()); + [] + ) +# 2341 "..\pars.fsy" + : 'simplePatterns)); +# 8314 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2347 "..\pars.fsy" + SynPat.Named (_1,_3,false,None,rhs2 parseState 1 3) + ) +# 2347 "..\pars.fsy" + : Ast.SynPat)); +# 8326 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2349 "..\pars.fsy" + SynPat.Or(_1,_3,rhs2 parseState 1 3) + ) +# 2349 "..\pars.fsy" + : Ast.SynPat)); +# 8338 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2351 "..\pars.fsy" + SynPat.LongIdent (LongIdentWithDots(mkSynCaseName (rhs parseState 2) opNameCons,[]), None, None,[SynPat.Tuple ([_1;_3],rhs2 parseState 1 3)],None,lhs parseState) + ) +# 2351 "..\pars.fsy" + : Ast.SynPat)); +# 8350 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tuplePatternElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2353 "..\pars.fsy" + SynPat.Tuple(List.rev _1, lhs parseState) + ) +# 2353 "..\pars.fsy" + : Ast.SynPat)); +# 8361 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'conjPatternElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2355 "..\pars.fsy" + SynPat.Ands(List.rev _1, lhs parseState) + ) +# 2355 "..\pars.fsy" + : Ast.SynPat)); +# 8372 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'constrPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2357 "..\pars.fsy" + _1 + ) +# 2357 "..\pars.fsy" + : Ast.SynPat)); +# 8383 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tuplePatternElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2361 "..\pars.fsy" + _3 :: _1 + ) +# 2361 "..\pars.fsy" + : 'tuplePatternElements)); +# 8395 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2363 "..\pars.fsy" + _3 :: _1 :: [] + ) +# 2363 "..\pars.fsy" + : 'tuplePatternElements)); +# 8407 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'conjPatternElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2367 "..\pars.fsy" + _3 :: _1 + ) +# 2367 "..\pars.fsy" + : 'conjPatternElements)); +# 8419 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2369 "..\pars.fsy" + _3 :: _1 :: [] + ) +# 2369 "..\pars.fsy" + : 'conjPatternElements)); +# 8431 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatternLongIdent)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'explicitValTyparDecls)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2373 "..\pars.fsy" + let vis,lid = _1 in SynPat.LongIdent (lid,None,Some _2,[],vis,lhs parseState) + ) +# 2373 "..\pars.fsy" + : 'constrPattern)); +# 8443 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatternLongIdent)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_explicitValTyparDecls2)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2375 "..\pars.fsy" + let vis,lid = _1 in SynPat.LongIdent (lid,None,_2,_3,vis,lhs parseState) + ) +# 2375 "..\pars.fsy" + : 'constrPattern)); +# 8456 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatternLongIdent)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_explicitValTyparDecls2)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2377 "..\pars.fsy" + let vis,lid = _1 in SynPat.LongIdent (lid,None,_2,_4,vis,lhs parseState) + ) +# 2377 "..\pars.fsy" + : 'constrPattern)); +# 8469 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatternLongIdent)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_explicitValTyparDecls2)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2379 "..\pars.fsy" + let vis,lid = _1 in SynPat.LongIdent (lid,None,_2,_4,vis,lhs parseState) + ) +# 2379 "..\pars.fsy" + : 'constrPattern)); +# 8482 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2381 "..\pars.fsy" + SynPat.IsInst(_2,lhs parseState) + ) +# 2381 "..\pars.fsy" + : 'constrPattern)); +# 8493 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2383 "..\pars.fsy" + _1 + ) +# 2383 "..\pars.fsy" + : 'constrPattern)); +# 8504 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPattern)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2387 "..\pars.fsy" + _1 :: _2 + ) +# 2387 "..\pars.fsy" + : 'atomicPatterns)); +# 8516 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2389 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsSuccessivePatternsShouldBeSpacedOrTupled()); + _1 :: _3 + ) +# 2389 "..\pars.fsy" + : 'atomicPatterns)); +# 8529 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2392 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsSuccessivePatternsShouldBeSpacedOrTupled()); + _1 :: _3 + ) +# 2392 "..\pars.fsy" + : 'atomicPatterns)); +# 8542 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2394 "..\pars.fsy" + [_1] + ) +# 2394 "..\pars.fsy" + : 'atomicPatterns)); +# 8553 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'quoteExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2399 "..\pars.fsy" + SynPat.QuoteExpr(_1,lhs parseState) + ) +# 2399 "..\pars.fsy" + : 'atomicPattern)); +# 8564 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : char)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : char)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2400 "..\pars.fsy" + SynPat.DeprecatedCharRange (_1,_3,rhs2 parseState 1 3) + ) +# 2400 "..\pars.fsy" + : 'atomicPattern)); +# 8576 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recordPatternElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rbrace)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2402 "..\pars.fsy" + _2 + ) +# 2402 "..\pars.fsy" + : 'atomicPattern)); +# 8588 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'listPatternElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2404 "..\pars.fsy" + SynPat.ArrayOrList(false,_2,lhs parseState) + ) +# 2404 "..\pars.fsy" + : 'atomicPattern)); +# 8599 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'listPatternElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2406 "..\pars.fsy" + SynPat.ArrayOrList(true,_2, lhs parseState) + ) +# 2406 "..\pars.fsy" + : 'atomicPattern)); +# 8610 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2408 "..\pars.fsy" + SynPat.Wild (lhs parseState) + ) +# 2408 "..\pars.fsy" + : 'atomicPattern)); +# 8620 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2410 "..\pars.fsy" + SynPat.OptionalVal(_2,lhs parseState) + ) +# 2410 "..\pars.fsy" + : 'atomicPattern)); +# 8631 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatternLongIdent)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2412 "..\pars.fsy" + let vis,lidwd = _1 + if List.length lidwd.Lid > 1 || (let c = (List.head lidwd.Lid).idText.[0] in Char.IsUpper(c) && not (Char.IsLower c)) + then mkSynPatMaybeVar lidwd vis (lhs parseState) + else mkSynPatVar vis (List.head lidwd.Lid) + ) +# 2412 "..\pars.fsy" + : 'atomicPattern)); +# 8645 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'constant)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2417 "..\pars.fsy" + SynPat.Const (_1,_1.Range (lhs parseState)) + ) +# 2417 "..\pars.fsy" + : 'atomicPattern)); +# 8656 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2419 "..\pars.fsy" + SynPat.Const(SynConst.Bool false,lhs parseState) + ) +# 2419 "..\pars.fsy" + : 'atomicPattern)); +# 8666 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2421 "..\pars.fsy" + SynPat.Const(SynConst.Bool true,lhs parseState) + ) +# 2421 "..\pars.fsy" + : 'atomicPattern)); +# 8676 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2423 "..\pars.fsy" + SynPat.Null(lhs parseState) + ) +# 2423 "..\pars.fsy" + : 'atomicPattern)); +# 8686 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPatternBody)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2425 "..\pars.fsy" + let m = (lhs parseState) + SynPat.Paren(_2 m,m) + ) +# 2425 "..\pars.fsy" + : 'atomicPattern)); +# 8699 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPatternBody)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2428 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()); + patFromParseError (_2 (rhs2 parseState 1 2)) + ) +# 2428 "..\pars.fsy" + : 'atomicPattern)); +# 8712 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2431 "..\pars.fsy" + (* silent recovery *) SynPat.Wild (lhs parseState) + ) +# 2431 "..\pars.fsy" + : 'atomicPattern)); +# 8723 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2433 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()); + SynPat.Wild (lhs parseState) + ) +# 2433 "..\pars.fsy" + : 'atomicPattern)); +# 8735 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2440 "..\pars.fsy" + (fun m -> _1) + ) +# 2440 "..\pars.fsy" + : 'parenPatternBody)); +# 8746 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2442 "..\pars.fsy" + (fun m -> SynPat.Const(SynConst.Unit,m)) + ) +# 2442 "..\pars.fsy" + : 'parenPatternBody)); +# 8756 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2471 "..\pars.fsy" + SynPat.Named (_1,_3,false,None,rhs2 parseState 1 3) + ) +# 2471 "..\pars.fsy" + : 'parenPattern)); +# 8768 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2473 "..\pars.fsy" + SynPat.Or(_1,_3,rhs2 parseState 1 3) + ) +# 2473 "..\pars.fsy" + : 'parenPattern)); +# 8780 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleParenPatternElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2475 "..\pars.fsy" + SynPat.Tuple(List.rev _1,lhs parseState) + ) +# 2475 "..\pars.fsy" + : 'parenPattern)); +# 8791 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'conjParenPatternElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2477 "..\pars.fsy" + SynPat.Ands(List.rev _1,rhs2 parseState 1 3) + ) +# 2477 "..\pars.fsy" + : 'parenPattern)); +# 8802 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeWithTypeConstraints)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2479 "..\pars.fsy" + let lhsm = lhs parseState + SynPat.Typed(_1,_3,lhsm) + ) +# 2479 "..\pars.fsy" + : 'parenPattern)); +# 8815 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2482 "..\pars.fsy" + let lhsm = lhs parseState + SynPat.Attrib(_2,_1,lhsm) + ) +# 2482 "..\pars.fsy" + : 'parenPattern)); +# 8828 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2485 "..\pars.fsy" + SynPat.LongIdent (LongIdentWithDots(mkSynCaseName (rhs parseState 2) opNameCons,[]), None, None, [ SynPat.Tuple ([_1;_3],rhs2 parseState 1 3) ],None,lhs parseState) + ) +# 2485 "..\pars.fsy" + : 'parenPattern)); +# 8840 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'constrPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2486 "..\pars.fsy" + _1 + ) +# 2486 "..\pars.fsy" + : 'parenPattern)); +# 8851 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleParenPatternElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2490 "..\pars.fsy" + _3 :: _1 + ) +# 2490 "..\pars.fsy" + : 'tupleParenPatternElements)); +# 8863 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2492 "..\pars.fsy" + _3 :: _1 :: [] + ) +# 2492 "..\pars.fsy" + : 'tupleParenPatternElements)); +# 8875 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'conjParenPatternElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2496 "..\pars.fsy" + _3 :: _1 + ) +# 2496 "..\pars.fsy" + : 'conjParenPatternElements)); +# 8887 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2498 "..\pars.fsy" + _3 :: _1 :: [] + ) +# 2498 "..\pars.fsy" + : 'conjParenPatternElements)); +# 8899 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recordPatternElementsAux)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2501 "..\pars.fsy" + let rs,m = _1 in SynPat.Record (rs,m) + ) +# 2501 "..\pars.fsy" + : 'recordPatternElements)); +# 8910 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recordPatternElement)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2505 "..\pars.fsy" + [_1],lhs parseState + ) +# 2505 "..\pars.fsy" + : 'recordPatternElementsAux)); +# 8922 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recordPatternElement)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'seps)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recordPatternElementsAux)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2507 "..\pars.fsy" + let r = _1 in let (rs,dropMark) = _3 in (r :: rs),lhs parseState + ) +# 2507 "..\pars.fsy" + : 'recordPatternElementsAux)); +# 8935 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2510 "..\pars.fsy" + (List.frontAndBack _1.Lid,_3) + ) +# 2510 "..\pars.fsy" + : 'recordPatternElement)); +# 8947 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2514 "..\pars.fsy" + [] + ) +# 2514 "..\pars.fsy" + : 'listPatternElements)); +# 8957 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2516 "..\pars.fsy" + [_1] + ) +# 2516 "..\pars.fsy" + : 'listPatternElements)); +# 8969 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'seps)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'listPatternElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2518 "..\pars.fsy" + _1 :: _3 + ) +# 2518 "..\pars.fsy" + : 'listPatternElements)); +# 8982 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2523 "..\pars.fsy" + _2 + ) +# 2523 "..\pars.fsy" + : Ast.SynExpr)); +# 8994 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2525 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedEndOfFileExpression()); + exprFromParseError _2 + ) +# 2525 "..\pars.fsy" + : Ast.SynExpr)); +# 9007 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2528 "..\pars.fsy" + _1 + ) +# 2528 "..\pars.fsy" + : Ast.SynExpr)); +# 9018 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2533 "..\pars.fsy" + _2 + ) +# 2533 "..\pars.fsy" + : Ast.SynExpr)); +# 9030 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2535 "..\pars.fsy" + _1 + ) +# 2535 "..\pars.fsy" + : Ast.SynExpr)); +# 9041 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2540 "..\pars.fsy" + _1 + ) +# 2540 "..\pars.fsy" + : 'typedSeqExprBlockR)); +# 9052 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2541 "..\pars.fsy" + _1 + ) +# 2541 "..\pars.fsy" + : 'typedSeqExprBlockR)); +# 9063 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'seqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeWithTypeConstraints)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2544 "..\pars.fsy" + SynExpr.Typed (_1,_3, unionRanges _1.Range _3.Range) + ) +# 2544 "..\pars.fsy" + : 'typedSeqExpr)); +# 9075 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'seqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2545 "..\pars.fsy" + _1 + ) +# 2545 "..\pars.fsy" + : 'typedSeqExpr)); +# 9086 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'seps)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'seqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2549 "..\pars.fsy" + SynExpr.Sequential(SequencePointsAtSeq,true,_1,_3,unionRanges _1.Range _3.Range) + ) +# 2549 "..\pars.fsy" + : 'seqExpr)); +# 9099 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'seps)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2551 "..\pars.fsy" + _1 + ) +# 2551 "..\pars.fsy" + : 'seqExpr)); +# 9111 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2553 "..\pars.fsy" + _1 + ) +# 2553 "..\pars.fsy" + : 'seqExpr)); +# 9122 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'seqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2555 "..\pars.fsy" + SynExpr.Sequential(SequencePointsAtSeq,false,_1,_3,unionRanges _1.Range _3.Range ) + ) +# 2555 "..\pars.fsy" + : 'seqExpr)); +# 9134 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2557 "..\pars.fsy" + SynExpr.Sequential(SequencePointsAtSeq,false,_1,_4,unionRanges _1.Range _4.Range) + ) +# 2557 "..\pars.fsy" + : 'seqExpr)); +# 9147 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteLetBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2559 "..\pars.fsy" + let hwlb,m = _1 + let mLetKwd,isUse = match hwlb with (BindingSetPreAttrs(m,_,isUse,_,_)) -> m,isUse + reportParseErrorAt mLetKwd (FSComp.SR.parsExpectedStatementAfterLet(if isUse then "use" else "let")) + let fauxRange = m.EndRange // zero width range at end of m + mkLocalBindings (m,hwlb,arbExpr("seqExpr",fauxRange)) + ) +# 2559 "..\pars.fsy" + : 'seqExpr)); +# 9162 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2570 "..\pars.fsy" + debugPrint("recovering via error"); true + ) +# 2570 "..\pars.fsy" + : 'recover)); +# 9172 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LexerWhitespaceContinuation)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2571 "..\pars.fsy" + debugPrint("recovering via EOF"); false + ) +# 2571 "..\pars.fsy" + : 'recover)); +# 9183 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'defnBindings)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2576 "..\pars.fsy" + mkLocalBindings (unionRanges (rhs2 parseState 1 2) _3.Range,_1,_3) + ) +# 2576 "..\pars.fsy" + : Ast.SynExpr)); +# 9195 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'defnBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2578 "..\pars.fsy" + mkLocalBindings (rhs2 parseState 1 2,_1,arbExpr("declExpr1",(rhs parseState 3))) + ) +# 2578 "..\pars.fsy" + : Ast.SynExpr)); +# 9206 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteLetBindings)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2583 "..\pars.fsy" + let hwlb,m = _1 + mkLocalBindings (unionRanges m _2.Range,hwlb,_2) + ) +# 2583 "..\pars.fsy" + : Ast.SynExpr)); +# 9219 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteLetBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2586 "..\pars.fsy" + let hwlb,m = _1 + reportParseErrorAt (match hwlb with (BindingSetPreAttrs(m,_,_,_,_)) -> m) (FSComp.SR.parsErrorInReturnForLetIncorrectIndentation()) + mkLocalBindings (m,hwlb,arbExpr("declExpr2",(rhs parseState 2))) + ) +# 2586 "..\pars.fsy" + : Ast.SynExpr)); +# 9232 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteLetBindings)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2590 "..\pars.fsy" + let hwlb,m = _1 + mkLocalBindings (unionRanges m _3.Range ,hwlb,_3) + ) +# 2590 "..\pars.fsy" + : Ast.SynExpr)); +# 9245 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteLetBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2593 "..\pars.fsy" + let hwlb,m = _1 + //reportParseErrorAt (match hwlb with (BindingSetPreAttrs(m,_,_,_,_)) -> m) (FSComp.SR.parsErrorInReturnForLetIncorrectIndentation()) + mkLocalBindings (unionRanges m (rhs parseState 3),hwlb,arbExpr("declExpr3",(rhs parseState 3))) + ) +# 2593 "..\pars.fsy" + : Ast.SynExpr)); +# 9258 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteDoBinding)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2598 "..\pars.fsy" + let e = snd _1 + SynExpr.Do(e,e.Range) + ) +# 2598 "..\pars.fsy" + : Ast.SynExpr)); +# 9270 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'anonMatchingExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2602 "..\pars.fsy" + _1 + ) +# 2602 "..\pars.fsy" + : Ast.SynExpr)); +# 9281 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'anonLambdaExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2603 "..\pars.fsy" + _1 + ) +# 2603 "..\pars.fsy" + : Ast.SynExpr)); +# 9292 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'withClauses)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2606 "..\pars.fsy" + let mMatch = (rhs parseState 1) + let mWith,(clauses,mLast) = _3 + let spBind = SequencePointAtBinding(unionRanges mMatch mWith) + SynExpr.Match(spBind, _2,clauses,false,unionRanges mMatch mLast) + ) +# 2606 "..\pars.fsy" + : Ast.SynExpr)); +# 9307 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2612 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileMatch()); + // Produce approximate expression during error recovery + exprFromParseError _2 + ) +# 2612 "..\pars.fsy" + : Ast.SynExpr)); +# 9321 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExprBlockR)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'withClauses)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2617 "..\pars.fsy" + let mTry = (rhs parseState 1) + let spTry = SequencePointAtTry(mTry) + let mWith,(clauses,mLast) = _3 + let spWith = SequencePointAtWith(mWith) + let mTryToWith = unionRanges mTry mWith + let mWithToLast = unionRanges mWith mLast + let mTryToLast = unionRanges mTry mLast + SynExpr.TryWith(_2, mTryToWith, clauses,mWithToLast, mTryToLast,spTry,spWith) + ) +# 2617 "..\pars.fsy" + : Ast.SynExpr)); +# 9340 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExprBlockR)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2627 "..\pars.fsy" + // Produce approximate expression during error recovery + // Include any expressions to make sure they gets type checked in case that generates useful results for intellisense + if not _3 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileTry()); + exprFromParseError _2 + ) +# 2627 "..\pars.fsy" + : Ast.SynExpr)); +# 9355 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExprBlockR)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2633 "..\pars.fsy" + let mTry = rhs parseState 1 + let spTry = SequencePointAtTry(mTry) + let spFinally = SequencePointAtFinally(rhs parseState 3) + let mTryToLast = unionRanges mTry _4.Range + SynExpr.TryFinally(_2, _4,mTryToLast,spTry,spFinally) + ) +# 2633 "..\pars.fsy" + : Ast.SynExpr)); +# 9371 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ifExprCases)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2640 "..\pars.fsy" + let mIf = (rhs parseState 1) + _3 _2 mIf + ) +# 2640 "..\pars.fsy" + : Ast.SynExpr)); +# 9384 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2644 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsIncompleteIf()); + // Produce an approximate expression during error recovery. + // Include expressions to make sure they get type checked in case that generates useful results for intellisense. + // Generate a throwAway for the expression so it isn't forced to have a type 'bool' + // from the context it is used in. + exprFromParseError _2 + ) +# 2644 "..\pars.fsy" + : Ast.SynExpr)); +# 9401 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2652 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsIncompleteIf()) + // Produce an approximate expression during error recovery. There can still be value in doing this even + // for this pathological case. + let m = (rhs parseState 1) + let mEnd = m.EndRange + let spIfToThen = SequencePointAtBinding mEnd + exprFromParseError (SynExpr.IfThenElse(arbExpr("ifGuard1",mEnd),arbExpr("thenBody1",mEnd),None,spIfToThen,true,m,m)) + ) +# 2652 "..\pars.fsy" + : Ast.SynExpr)); +# 9418 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2661 "..\pars.fsy" + SynExpr.Lazy(_2,unionRanges (rhs parseState 1) _2.Range) + ) +# 2661 "..\pars.fsy" + : Ast.SynExpr)); +# 9429 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2664 "..\pars.fsy" + SynExpr.Assert(_2, unionRanges (rhs parseState 1) _2.Range) + ) +# 2664 "..\pars.fsy" + : Ast.SynExpr)); +# 9440 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2667 "..\pars.fsy" + raiseParseErrorAt (rhs parseState 1) (FSComp.SR.parsAssertIsNotFirstClassValue()) + ) +# 2667 "..\pars.fsy" + : Ast.SynExpr)); +# 9450 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2670 "..\pars.fsy" + SynExpr.Lazy(_2,unionRanges (rhs parseState 1) _2.Range) + ) +# 2670 "..\pars.fsy" + : Ast.SynExpr)); +# 9461 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2673 "..\pars.fsy" + SynExpr.Assert(_2, unionRanges (rhs parseState 1) _2.Range) + ) +# 2673 "..\pars.fsy" + : Ast.SynExpr)); +# 9472 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2676 "..\pars.fsy" + raiseParseErrorAt (rhs parseState 1) (FSComp.SR.parsAssertIsNotFirstClassValue()) + ) +# 2676 "..\pars.fsy" + : Ast.SynExpr)); +# 9482 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'doneDeclEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2679 "..\pars.fsy" + let mWhileHeader = unionRanges (rhs parseState 1) _2.Range + let spWhile = SequencePointAtWhileLoop mWhileHeader + let mWhileAll = unionRanges (rhs parseState 1) _4.Range + SynExpr.While(spWhile,_2,_4,mWhileAll) + ) +# 2679 "..\pars.fsy" + : Ast.SynExpr)); +# 9499 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2685 "..\pars.fsy" + if not _5 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileWhile()); + let mWhileHeader = unionRanges (rhs parseState 1) _2.Range + let spWhile = SequencePointAtWhileLoop mWhileHeader + let mWhileAll = unionRanges (rhs parseState 1) _4.Range + exprFromParseError (SynExpr.While(spWhile,_2,_4,mWhileAll)) + ) +# 2685 "..\pars.fsy" + : Ast.SynExpr)); +# 9517 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'doneDeclEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2692 "..\pars.fsy" + // silent recovery + let mWhileHeader = unionRanges (rhs parseState 1) _2.Range + let spWhile = SequencePointAtWhileLoop mWhileHeader + let mWhileBodyArb = unionRanges (rhs parseState 4) (rhs parseState 5) + let mWhileAll = unionRanges (rhs parseState 1) (rhs parseState 5) + SynExpr.While(spWhile,_2,arbExpr("whileBody1",mWhileBodyArb),mWhileAll) + ) +# 2692 "..\pars.fsy" + : Ast.SynExpr)); +# 9535 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2700 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsWhileDoExpected()) + let mWhileHeader = unionRanges (rhs parseState 1) _2.Range + let spWhile = SequencePointAtWhileLoop mWhileHeader + let mWhileBodyArb = rhs parseState 3 + let mWhileAll = unionRanges (rhs parseState 1) (rhs parseState 3) + exprFromParseError (SynExpr.While(spWhile,_2,arbExpr("whileBody2",mWhileBodyArb),mWhileAll)) + ) +# 2700 "..\pars.fsy" + : Ast.SynExpr)); +# 9552 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2708 "..\pars.fsy" + if not _2 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileWhile()); + arbExpr("whileLoop1",rhs parseState 1) + ) +# 2708 "..\pars.fsy" + : Ast.SynExpr)); +# 9564 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doneDeclEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2712 "..\pars.fsy" + //silent recovery + let mWhileHeader = rhs parseState 1 + let spWhile = SequencePointAtWhileLoop mWhileHeader + let mWhileBodyArb = rhs parseState 3 + let mWhileAll = unionRanges (rhs parseState 1) (rhs parseState 3) + exprFromParseError (SynExpr.While(spWhile,arbExpr("whileGuard1",mWhileHeader),arbExpr("whileBody3",mWhileBodyArb),mWhileAll)) + ) +# 2712 "..\pars.fsy" + : Ast.SynExpr)); +# 9580 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopBinder)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'doneDeclEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2720 "..\pars.fsy" + let spBind = SequencePointAtForLoop(rhs2 parseState 1 3) + let (a,b,_) = _2 + SynExpr.ForEach(spBind,SeqExprOnly false,true,a,b,_4,unionRanges (rhs parseState 1) _4.Range) + ) +# 2720 "..\pars.fsy" + : Ast.SynExpr)); +# 9596 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopBinder)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2725 "..\pars.fsy" + if not _5 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileFor()) + let spBind = SequencePointAtForLoop(rhs2 parseState 1 3) + let (a,b,_) = _2 + let mForLoopAll = unionRanges (rhs parseState 1) _4.Range + SynExpr.ForEach(spBind,SeqExprOnly false,true,a,b,_4,mForLoopAll) + ) +# 2725 "..\pars.fsy" + : Ast.SynExpr)); +# 9614 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopBinder)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'doneDeclEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2732 "..\pars.fsy" + // Silent recovery + let mForLoopHeader = rhs2 parseState 1 3 + let spBind = SequencePointAtForLoop mForLoopHeader + let (a,b,_) = _2 + let mForLoopBodyArb = rhs parseState 5 + let mForLoopAll = rhs2 parseState 1 5 + SynExpr.ForEach(spBind,SeqExprOnly false,true,a,b,arbExpr("forLoopBody2a",mForLoopBodyArb),mForLoopAll) + ) +# 2732 "..\pars.fsy" + : Ast.SynExpr)); +# 9633 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopBinder)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2741 "..\pars.fsy" + if not _4 then reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsExpectedExpressionAfterToken()) + let mForLoopHeader = rhs2 parseState 1 3 + let spBind = SequencePointAtForLoop mForLoopHeader + let (a,b,_) = _2 + let mForLoopBodyArb = rhs parseState 3 + let mForLoopAll = rhs2 parseState 1 3 + SynExpr.ForEach(spBind,SeqExprOnly false,true,a,b,arbExpr("forLoopBody2",mForLoopBodyArb),mForLoopAll) + ) +# 2741 "..\pars.fsy" + : Ast.SynExpr)); +# 9652 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopBinder)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2750 "..\pars.fsy" + let (a,b,ok) = _2 + if not _3 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsForDoExpected()) + let mForLoopHeader = rhs2 parseState 1 3 + let spBind = SequencePointAtForLoop mForLoopHeader + let mForLoopBodyArb = rhs parseState 3 + let mForLoopAll = rhs2 parseState 1 3 + SynExpr.ForEach(spBind,SeqExprOnly false,true,a,b,arbExpr("forLoopBody1",mForLoopBodyArb),mForLoopAll) + ) +# 2750 "..\pars.fsy" + : Ast.SynExpr)); +# 9670 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopRange)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'doneDeclEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2759 "..\pars.fsy" + let mForLoopHeader = rhs2 parseState 1 3 + let spBind = SequencePointAtForLoop mForLoopHeader + let (a,b,c,d) = _2 + let mForLoopAll = unionRanges (rhs parseState 1) _4.Range + SynExpr.For(spBind,a,b,c,d,_4,mForLoopAll) + ) +# 2759 "..\pars.fsy" + : Ast.SynExpr)); +# 9688 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopRange)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2766 "..\pars.fsy" + if not _5 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileFor()); + // Still produce an expression + let mForLoopHeader = rhs2 parseState 1 3 + let spBind = SequencePointAtForLoop mForLoopHeader + let (a,b,c,d) = _2 + let mForLoopAll = unionRanges (rhs parseState 1) _4.Range + exprFromParseError (SynExpr.For(spBind,a,b,c,d,_4,mForLoopAll)) + ) +# 2766 "..\pars.fsy" + : Ast.SynExpr)); +# 9708 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopRange)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'doneDeclEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2775 "..\pars.fsy" + // silent recovery + let mForLoopHeader = rhs2 parseState 1 3 + let spBind = SequencePointAtForLoop mForLoopHeader + let (a,b,c,d) = _2 + let mForLoopBodyArb = rhs parseState 5 + let mForLoopAll = rhs2 parseState 1 5 + SynExpr.For(spBind,a,b,c,d,arbExpr("declExpr11",mForLoopBodyArb),mForLoopAll) + ) +# 2775 "..\pars.fsy" + : Ast.SynExpr)); +# 9727 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopRange)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2784 "..\pars.fsy" + if not _4 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileFor()) + let mForLoopHeader = rhs2 parseState 1 3 + let spBind = SequencePointAtForLoop mForLoopHeader + let (a,b,c,d) = _2 + let mForLoopBodyArb = rhs parseState 3 + let mForLoopAll = rhs2 parseState 1 3 + exprFromParseError (SynExpr.For(spBind,a,b,c,d,arbExpr("declExpr11",mForLoopBodyArb),mForLoopAll)) + ) +# 2784 "..\pars.fsy" + : Ast.SynExpr)); +# 9746 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopRange)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2793 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileFor()); + let mForLoopHeader = rhs2 parseState 1 2 + let spBind = SequencePointAtForLoop mForLoopHeader + let (a,b,c,d) = _2 + let mForLoopBodyArb = (rhs parseState 2).EndRange + let mForLoopAll = rhs2 parseState 1 2 + exprFromParseError (SynExpr.For(spBind,a,b,c,d,arbExpr("declExpr11",mForLoopBodyArb),mForLoopAll)) + ) +# 2793 "..\pars.fsy" + : Ast.SynExpr)); +# 9764 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'doToken)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'doneDeclEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2803 "..\pars.fsy" + // silent recovery + let mForLoopHeader = rhs2 parseState 1 2 + let mForLoopAll = unionRanges (rhs parseState 1) _4.Range + let spBind = SequencePointAtForLoop(mForLoopHeader) + SynExpr.For(spBind,mkSynId mForLoopHeader "_loopVar",arbExpr("startLoopRange1",mForLoopHeader),true,arbExpr("endLoopRange1",rhs parseState 3),_4,mForLoopAll) + ) +# 2803 "..\pars.fsy" + : Ast.SynExpr)); +# 9781 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2822 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsIdentifierExpected()) + arbExpr("declExpr12",(rhs parseState 1)) + ) +# 2822 "..\pars.fsy" + : Ast.SynExpr)); +# 9793 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'doneDeclEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2826 "..\pars.fsy" + reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsInOrEqualExpected()) + let mForLoopHeader = rhs2 parseState 1 2 + let spBind = SequencePointAtForLoop mForLoopHeader + let mForLoopBodyArb = rhs parseState 4 + let mForLoopAll = rhs2 parseState 1 4 + SynExpr.ForEach(spBind,SeqExprOnly false,true,_2,arbExpr("forLoopCollection",mForLoopHeader),arbExpr("forLoopBody3",mForLoopBodyArb),mForLoopAll) + ) +# 2826 "..\pars.fsy" + : Ast.SynExpr)); +# 9810 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2834 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileFor()); + let mForLoopHeader = rhs2 parseState 1 2 + let spBind = SequencePointAtForLoop mForLoopHeader + let mForLoopBodyArb = (rhs parseState 2).EndRange + let mForLoopAll = rhs2 parseState 1 2 + exprFromParseError (SynExpr.ForEach(spBind,SeqExprOnly false,true,_2,arbExpr("forLoopCollection",mForLoopHeader),arbExpr("forLoopBody3",mForLoopBodyArb),mForLoopAll)) + ) +# 2834 "..\pars.fsy" + : Ast.SynExpr)); +# 9827 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2843 "..\pars.fsy" + SynExpr.YieldOrReturn((_1,not _1),_2, unionRanges (rhs parseState 1) _2.Range) + ) +# 2843 "..\pars.fsy" + : Ast.SynExpr)); +# 9839 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2846 "..\pars.fsy" + SynExpr.YieldOrReturnFrom((_1,not _1), _2, unionRanges (rhs parseState 1) _2.Range) + ) +# 2846 "..\pars.fsy" + : Ast.SynExpr)); +# 9851 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2849 "..\pars.fsy" + let spBind = SequencePointAtBinding(rhs2 parseState 1 5) + let m = unionRanges (rhs parseState 1) _7.Range + SynExpr.LetOrUseBang(spBind,(_1 = "use"),true,_2,_4,_7,m) + ) +# 2849 "..\pars.fsy" + : Ast.SynExpr)); +# 9868 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteDefnBindingsTerminator)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2854 "..\pars.fsy" + _5 (if _1 = "use" then "use!" else "let!") (rhs parseState 1); // report unterminated error + let spBind = SequencePointAtBinding(unionRanges (rhs parseState 1) _4.Range) + let m = unionRanges (rhs parseState 1) _7.Range + SynExpr.LetOrUseBang(spBind,(_1 = "use"),true,_2,_4,_7,m) + ) +# 2854 "..\pars.fsy" + : Ast.SynExpr)); +# 9887 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynPat)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteDefnBindingsTerminator)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2860 "..\pars.fsy" + // error recovery that allows intellisense when writing incomplete computation expressions + let spBind = SequencePointAtBinding(unionRanges (rhs parseState 1) _4.Range) + let mAll = unionRanges (rhs parseState 1) (rhs parseState 7) + let m = _4.Range.EndRange // zero-width range + SynExpr.LetOrUseBang(spBind,(_1 = "use"),true,_2,_4, SynExpr.ImplicitZero m, mAll) + ) +# 2860 "..\pars.fsy" + : Ast.SynExpr)); +# 9906 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2867 "..\pars.fsy" + let spBind = NoSequencePointAtDoBinding + SynExpr.LetOrUseBang(spBind,false,true,SynPat.Const(SynConst.Unit,_2.Range),_2,_5, unionRanges (rhs parseState 1) _5.Range) + ) +# 2867 "..\pars.fsy" + : Ast.SynExpr)); +# 9920 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'hardwhiteDefnBindingsTerminator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2871 "..\pars.fsy" + SynExpr.DoBang(_2, unionRanges (rhs parseState 1) _2.Range) + ) +# 2871 "..\pars.fsy" + : Ast.SynExpr)); +# 9932 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopBinder)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'monadicSingleLineQualifiersThenArrowThenExprR)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2874 "..\pars.fsy" + let spBind = SequencePointAtForLoop(rhs2 parseState 1 2) + let (a,b,_) = _2 in SynExpr.ForEach(spBind,SeqExprOnly true,true,a,b,_4,unionRanges (rhs parseState 1) _4.Range) + ) +# 2874 "..\pars.fsy" + : Ast.SynExpr)); +# 9946 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExprBlockR)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2878 "..\pars.fsy" + errorR(Error(FSComp.SR.parsArrowUseIsLimited(),lhs parseState)); + SynExpr.YieldOrReturn((true,true),_2, (unionRanges (rhs parseState 1) _2.Range)) + ) +# 2878 "..\pars.fsy" + : Ast.SynExpr)); +# 9958 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2883 "..\pars.fsy" + SynExpr.TypeTest(_1,_3, unionRanges _1.Range _3.Range) + ) +# 2883 "..\pars.fsy" + : Ast.SynExpr)); +# 9970 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2884 "..\pars.fsy" + SynExpr.Upcast(_1,_3, unionRanges _1.Range _3.Range) + ) +# 2884 "..\pars.fsy" + : Ast.SynExpr)); +# 9982 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2885 "..\pars.fsy" + SynExpr.Downcast(_1,_3, unionRanges _1.Range _3.Range) + ) +# 2885 "..\pars.fsy" + : Ast.SynExpr)); +# 9994 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2888 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 ":=" _3 + ) +# 2888 "..\pars.fsy" + : Ast.SynExpr)); +# 10006 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2889 "..\pars.fsy" + mkSynAssign _1 _3 + ) +# 2889 "..\pars.fsy" + : Ast.SynExpr)); +# 10018 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2891 "..\pars.fsy" + let exprs,commas = _1 in SynExpr.Tuple(List.rev exprs, List.rev commas, (commas.Head, exprs) ||> unionRangeWithListBy (fun e -> e.Range) ) + ) +# 2891 "..\pars.fsy" + : Ast.SynExpr)); +# 10029 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2892 "..\pars.fsy" + SynExpr.JoinIn(_1,rhs parseState 2,_3,unionRanges _1.Range _3.Range) + ) +# 2892 "..\pars.fsy" + : Ast.SynExpr)); +# 10041 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2893 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 "||" _3 + ) +# 2893 "..\pars.fsy" + : Ast.SynExpr)); +# 10053 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2894 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 _2 _3 + ) +# 2894 "..\pars.fsy" + : Ast.SynExpr)); +# 10066 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2895 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 "or" _3 + ) +# 2895 "..\pars.fsy" + : Ast.SynExpr)); +# 10078 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2896 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 "&" _3 + ) +# 2896 "..\pars.fsy" + : Ast.SynExpr)); +# 10090 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2897 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 "&&" _3 + ) +# 2897 "..\pars.fsy" + : Ast.SynExpr)); +# 10102 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2898 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 _2 _3 + ) +# 2898 "..\pars.fsy" + : Ast.SynExpr)); +# 10115 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2899 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 "=" _3 + ) +# 2899 "..\pars.fsy" + : Ast.SynExpr)); +# 10127 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2900 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 _2 _3 + ) +# 2900 "..\pars.fsy" + : Ast.SynExpr)); +# 10140 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2901 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 "$" _3 + ) +# 2901 "..\pars.fsy" + : Ast.SynExpr)); +# 10152 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2902 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 "<" _3 + ) +# 2902 "..\pars.fsy" + : Ast.SynExpr)); +# 10165 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2903 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 ">" _3 + ) +# 2903 "..\pars.fsy" + : Ast.SynExpr)); +# 10178 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2904 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 _2 _3 + ) +# 2904 "..\pars.fsy" + : Ast.SynExpr)); +# 10191 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2905 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 _2 _3 + ) +# 2905 "..\pars.fsy" + : Ast.SynExpr)); +# 10204 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2906 "..\pars.fsy" + SynExpr.App (ExprAtomicFlag.NonAtomic, true, mkSynIdGet (rhs parseState 2) opNameCons,SynExpr.Tuple ([_1;_3],[rhs parseState 2],unionRanges _1.Range _3.Range),unionRanges _1.Range _3.Range) + ) +# 2906 "..\pars.fsy" + : Ast.SynExpr)); +# 10216 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2907 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 _2 _3 + ) +# 2907 "..\pars.fsy" + : Ast.SynExpr)); +# 10229 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2908 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 "-" _3 + ) +# 2908 "..\pars.fsy" + : Ast.SynExpr)); +# 10241 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2909 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 "*" _3 + ) +# 2909 "..\pars.fsy" + : Ast.SynExpr)); +# 10253 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2910 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 _2 _3 + ) +# 2910 "..\pars.fsy" + : Ast.SynExpr)); +# 10266 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2911 "..\pars.fsy" + mkSynInfix (rhs parseState 2) _1 _2 _3 + ) +# 2911 "..\pars.fsy" + : Ast.SynExpr)); +# 10279 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2913 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("in")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 "@in" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2913 "..\pars.fsy" + : Ast.SynExpr)); +# 10291 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2915 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("||")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 "||" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2915 "..\pars.fsy" + : Ast.SynExpr)); +# 10303 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2917 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression(_2)); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 _2 (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2917 "..\pars.fsy" + : Ast.SynExpr)); +# 10316 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2919 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("or")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 "or" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2919 "..\pars.fsy" + : Ast.SynExpr)); +# 10328 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2921 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("&")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 "&" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2921 "..\pars.fsy" + : Ast.SynExpr)); +# 10340 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2923 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("&&")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 "&&" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2923 "..\pars.fsy" + : Ast.SynExpr)); +# 10352 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2925 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression(_2)); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 _2 (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2925 "..\pars.fsy" + : Ast.SynExpr)); +# 10365 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2927 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("=")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 "=" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2927 "..\pars.fsy" + : Ast.SynExpr)); +# 10377 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2929 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression(_2)); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 _2 (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2929 "..\pars.fsy" + : Ast.SynExpr)); +# 10390 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2931 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("$")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 "$" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2931 "..\pars.fsy" + : Ast.SynExpr)); +# 10402 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2933 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("<")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 "<" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2933 "..\pars.fsy" + : Ast.SynExpr)); +# 10415 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2935 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression(">")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 ">" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2935 "..\pars.fsy" + : Ast.SynExpr)); +# 10428 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2937 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression(_2)); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 _2 (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2937 "..\pars.fsy" + : Ast.SynExpr)); +# 10441 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2939 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression(_2)); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 _2 (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2939 "..\pars.fsy" + : Ast.SynExpr)); +# 10454 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2941 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("::")); + SynExpr.App (ExprAtomicFlag.NonAtomic, true, mkSynIdGet (rhs parseState 2) opNameCons,SynExpr.Tuple ([_1;(arbExpr("declExprInfix",(rhs parseState 3).StartRange))],[rhs parseState 2],unionRanges _1.Range (rhs parseState 3).StartRange),unionRanges _1.Range (rhs parseState 3).StartRange) + ) +# 2941 "..\pars.fsy" + : Ast.SynExpr)); +# 10466 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2943 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression(_2)); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 _2 (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2943 "..\pars.fsy" + : Ast.SynExpr)); +# 10479 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2945 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("-")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 "-" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2945 "..\pars.fsy" + : Ast.SynExpr)); +# 10491 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2947 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("*")); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 "*" (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2947 "..\pars.fsy" + : Ast.SynExpr)); +# 10503 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2949 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression(_2)); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 _2 (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2949 "..\pars.fsy" + : Ast.SynExpr)); +# 10516 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2951 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression(_2)); + exprFromParseError(mkSynInfix (rhs parseState 2) _1 _2 (arbExpr("declExprInfix",(rhs parseState 3).StartRange))) + ) +# 2951 "..\pars.fsy" + : Ast.SynExpr)); +# 10529 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2954 "..\pars.fsy" + _1 + ) +# 2954 "..\pars.fsy" + : Ast.SynExpr)); +# 10540 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2958 "..\pars.fsy" + let con = SynConst.String (_1,rhs parseState 1) + let arg2 = SynExpr.Const (con,con.Range (rhs parseState 1)) + arg2 + ) +# 2958 "..\pars.fsy" + : 'dynamicArg)); +# 10553 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2962 "..\pars.fsy" + _2 + ) +# 2962 "..\pars.fsy" + : 'dynamicArg)); +# 10565 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'withPatternClauses)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2966 "..\pars.fsy" + rhs parseState 1, _2 + ) +# 2966 "..\pars.fsy" + : 'withClauses)); +# 10576 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'withPatternClauses)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2968 "..\pars.fsy" + rhs parseState 1, _2 + ) +# 2968 "..\pars.fsy" + : 'withClauses)); +# 10587 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'withPatternClauses)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2970 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileWith()); + rhs parseState 1, _2 + ) +# 2970 "..\pars.fsy" + : 'withClauses)); +# 10600 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'patternClauses)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2975 "..\pars.fsy" + _1 + ) +# 2975 "..\pars.fsy" + : 'withPatternClauses)); +# 10611 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'patternClauses)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2977 "..\pars.fsy" + _2 + ) +# 2977 "..\pars.fsy" + : 'withPatternClauses)); +# 10622 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2979 "..\pars.fsy" + // silent recovery + let mLast = rhs parseState 1 + [], mLast + ) +# 2979 "..\pars.fsy" + : 'withPatternClauses)); +# 10634 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2983 "..\pars.fsy" + // silent recovery + let mLast = rhs parseState 1 + [], mLast + ) +# 2983 "..\pars.fsy" + : 'withPatternClauses)); +# 10646 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'patternGuard)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2990 "..\pars.fsy" + _1, _2, rhs parseState 1 + ) +# 2990 "..\pars.fsy" + : 'patternAndGuard)); +# 10658 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'patternAndGuard)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2994 "..\pars.fsy" + let pat,guard,patm = _1 + let mLast = _2.Range + [Clause(pat,guard,_2,patm,SequencePointAtTarget)], mLast + ) +# 2994 "..\pars.fsy" + : 'patternClauses)); +# 10672 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'patternAndGuard)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'patternClauses)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 2998 "..\pars.fsy" + let pat,guard,patm = _1 + let clauses,mLast = _4 + (Clause(pat,guard,_2,patm,SequencePointAtTarget) :: clauses), mLast + ) +# 2998 "..\pars.fsy" + : 'patternClauses)); +# 10687 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'patternAndGuard)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3002 "..\pars.fsy" + let pat,guard,patm = _1 + let mLast = rhs parseState 3 + // silent recovery + [Clause(pat,guard,_2,patm,SequencePointAtTarget)], mLast + ) +# 3002 "..\pars.fsy" + : 'patternClauses)); +# 10702 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'patternAndGuard)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3007 "..\pars.fsy" + let pat,guard,patm = _1 + let mLast = _2.Range + // silent recovery + [Clause(pat,guard,_2,patm,SequencePointAtTarget)], mLast + ) +# 3007 "..\pars.fsy" + : 'patternClauses)); +# 10717 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'patternAndGuard)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3012 "..\pars.fsy" + let pat,guard,patm = _1 + let mLast = rhs parseState 2 + // silent recovery + [Clause(pat,guard,SynExpr.Const(SynConst.Unit,mLast.EndRange),patm,SequencePointAtTarget)], mLast + ) +# 3012 "..\pars.fsy" + : 'patternClauses)); +# 10731 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3019 "..\pars.fsy" + Some _2 + ) +# 3019 "..\pars.fsy" + : 'patternGuard)); +# 10742 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3021 "..\pars.fsy" + None + ) +# 3021 "..\pars.fsy" + : 'patternGuard)); +# 10752 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExprBlockR)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3025 "..\pars.fsy" + _2 + ) +# 3025 "..\pars.fsy" + : Ast.SynExpr)); +# 10763 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'ifExprThen)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'ifExprElifs)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3029 "..\pars.fsy" + let exprThen,mThen = _1 + (fun exprGuard mIf -> + let mIfToThen = unionRanges mIf mThen + let lastBranch : SynExpr = match _2 with None -> exprThen | Some e -> e + let mIfToEndOfLastBranch = unionRanges mIf lastBranch.Range + let spIfToThen = SequencePointAtBinding(mIfToThen) + SynExpr.IfThenElse(exprGuard,exprThen,_2,spIfToThen,false,mIfToThen,mIfToEndOfLastBranch)) + ) +# 3029 "..\pars.fsy" + : 'ifExprCases)); +# 10781 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3039 "..\pars.fsy" + _2, rhs parseState 1 + ) +# 3039 "..\pars.fsy" + : 'ifExprThen)); +# 10792 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3041 "..\pars.fsy" + _3,rhs parseState 1 + ) +# 3041 "..\pars.fsy" + : 'ifExprThen)); +# 10804 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3043 "..\pars.fsy" + if not _4 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileThen()); + exprFromParseError _3,rhs parseState 1 + ) +# 3043 "..\pars.fsy" + : 'ifExprThen)); +# 10817 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3048 "..\pars.fsy" + None + ) +# 3048 "..\pars.fsy" + : 'ifExprElifs)); +# 10827 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3050 "..\pars.fsy" + Some _2 + ) +# 3050 "..\pars.fsy" + : 'ifExprElifs)); +# 10838 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3052 "..\pars.fsy" + Some _3 + ) +# 3052 "..\pars.fsy" + : 'ifExprElifs)); +# 10850 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3054 "..\pars.fsy" + if not _4 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileElse()); + Some (exprFromParseError _3) + ) +# 3054 "..\pars.fsy" + : 'ifExprElifs)); +# 10863 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ifExprCases)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3057 "..\pars.fsy" + let mElif = rhs parseState 1 + Some (_3 _2 mElif) + ) +# 3057 "..\pars.fsy" + : 'ifExprElifs)); +# 10876 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3060 "..\pars.fsy" + Some (exprFromParseError _2) + ) +# 3060 "..\pars.fsy" + : 'ifExprElifs)); +# 10888 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3064 "..\pars.fsy" + let exprs,commas = _1 in (_3 :: exprs),((rhs parseState 2)::commas) + ) +# 3064 "..\pars.fsy" + : 'tupleExpr)); +# 10900 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3066 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsExpectedExpressionAfterToken()) + let exprs,commas = _1 + let zeroWidthAtNextToken = (rhs parseState 3).StartRange + ((arbExpr("tupleExpr1",zeroWidthAtNextToken)) :: exprs), (rhs parseState 2)::commas + ) +# 3066 "..\pars.fsy" + : 'tupleExpr)); +# 10915 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3071 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsExpectedExpressionAfterToken()) + let zeroWidthAtNextToken = (rhs parseState 3).StartRange + ((arbExpr("tupleExpr2",zeroWidthAtNextToken)) :: [_1]), [rhs parseState 2] + ) +# 3071 "..\pars.fsy" + : 'tupleExpr)); +# 10929 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3075 "..\pars.fsy" + [_3 ; _1], [rhs parseState 2] + ) +# 3075 "..\pars.fsy" + : 'tupleExpr)); +# 10941 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3079 "..\pars.fsy" + mkSynPrefix (rhs parseState 1) (unionRanges (rhs parseState 1) _2.Range) "~-" _2 + ) +# 3079 "..\pars.fsy" + : Ast.SynExpr)); +# 10952 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3081 "..\pars.fsy" + if not (IsValidPrefixOperatorUse _1) then reportParseErrorAt _2.Range (FSComp.SR.parsInvalidPrefixOperator()); + mkSynPrefix (rhs parseState 1) (unionRanges (rhs parseState 1) _2.Range) ("~"^(_1)) _2 + ) +# 3081 "..\pars.fsy" + : Ast.SynExpr)); +# 10965 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3084 "..\pars.fsy" + if not (IsValidPrefixOperatorUse _1) then reportParseErrorAt _2.Range (FSComp.SR.parsInvalidPrefixOperator()); + if _1 = "&" then + SynExpr.AddressOf(true,_2,rhs parseState 1,unionRanges (rhs parseState 1) _2.Range) + elif _1 = "&&" then + SynExpr.AddressOf(false,_2,rhs parseState 1,unionRanges (rhs parseState 1) _2.Range) + else + mkSynPrefix (rhs parseState 1) (unionRanges (rhs parseState 1) _2.Range) ("~"^(_1)) _2 + ) +# 3084 "..\pars.fsy" + : Ast.SynExpr)); +# 10983 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3092 "..\pars.fsy" + if not (IsValidPrefixOperatorUse _1) then reportParseErrorAt _2.Range (FSComp.SR.parsInvalidPrefixOperator()); + mkSynPrefix (rhs parseState 1) (unionRanges (rhs parseState 1) _2.Range) ("~"^(_1)) _2 + ) +# 3092 "..\pars.fsy" + : Ast.SynExpr)); +# 10996 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3095 "..\pars.fsy" + SynExpr.AddressOf(true,_2,rhs parseState 1,unionRanges (rhs parseState 1) _2.Range) + ) +# 3095 "..\pars.fsy" + : Ast.SynExpr)); +# 11007 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3097 "..\pars.fsy" + SynExpr.AddressOf(false,_2,rhs parseState 1, unionRanges (rhs parseState 1) _2.Range) + ) +# 3097 "..\pars.fsy" + : Ast.SynExpr)); +# 11018 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeNonAtomicDeprecated)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3099 "..\pars.fsy" + SynExpr.New(false,_2,_4,unionRanges (rhs parseState 1) _4.Range) + ) +# 3099 "..\pars.fsy" + : Ast.SynExpr)); +# 11031 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeNonAtomicDeprecated)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3101 "..\pars.fsy" + SynExpr.New(false,_2,arbExpr("minusExpr",(rhs parseState 4)),unionRanges (rhs parseState 1) (_2).Range) + ) +# 3101 "..\pars.fsy" + : Ast.SynExpr)); +# 11043 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3103 "..\pars.fsy" + arbExpr("minusExpr2",(rhs parseState 1)) + ) +# 3103 "..\pars.fsy" + : Ast.SynExpr)); +# 11053 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3105 "..\pars.fsy" + SynExpr.InferredUpcast(_2,unionRanges (rhs parseState 1) _2.Range) + ) +# 3105 "..\pars.fsy" + : Ast.SynExpr)); +# 11064 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3107 "..\pars.fsy" + SynExpr.InferredDowncast(_2,unionRanges (rhs parseState 1) _2.Range) + ) +# 3107 "..\pars.fsy" + : Ast.SynExpr)); +# 11075 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3109 "..\pars.fsy" + _1 + ) +# 3109 "..\pars.fsy" + : Ast.SynExpr)); +# 11086 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3113 "..\pars.fsy" + SynExpr.App (ExprAtomicFlag.NonAtomic, false, _1,_2,unionRanges _1.Range _2.Range) + ) +# 3113 "..\pars.fsy" + : Ast.SynExpr)); +# 11098 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3115 "..\pars.fsy" + let arg,_ = _1 + arg + ) +# 3115 "..\pars.fsy" + : Ast.SynExpr)); +# 11110 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3120 "..\pars.fsy" + let arg2,hpa2 = _2 + if not (IsValidPrefixOperatorUse _1) then reportParseErrorAt arg2.Range (FSComp.SR.parsInvalidPrefixOperator()); + if hpa2 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsSuccessiveArgsShouldBeSpacedOrTupled()); + mkSynPrefix (rhs parseState 1) (unionRanges (rhs parseState 1) arg2.Range) ("~"^(_1)) arg2 + ) +# 3120 "..\pars.fsy" + : Ast.SynExpr)); +# 11125 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3125 "..\pars.fsy" + let arg,hpa = _1 + if hpa then reportParseErrorAt arg.Range (FSComp.SR.parsSuccessiveArgsShouldBeSpacedOrTupled()); + arg + ) +# 3125 "..\pars.fsy" + : Ast.SynExpr)); +# 11138 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3132 "..\pars.fsy" + let arg1,_ = _1 + let arg2,_ = _3 + SynExpr.App (ExprAtomicFlag.Atomic, false, arg1,arg2,unionRanges arg1.Range arg2.Range),true + ) +# 3132 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11152 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3137 "..\pars.fsy" + let arg1,_ = _1 + let arg2,_ = _3 + SynExpr.App (ExprAtomicFlag.Atomic, false, arg1,arg2,unionRanges arg1.Range arg2.Range),true + ) +# 3137 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11166 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : range * range option * bool * Ast.SynType list * range list * range)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3142 "..\pars.fsy" + let arg1,_ = _1 + let mLessThan,mGreaterThan,_,args,commas,mTypeArgs = _3 + let mWholeExpr = unionRanges arg1.Range mTypeArgs + SynExpr.TypeApp(arg1, mLessThan, args, commas, mGreaterThan, mTypeArgs, mWholeExpr), false + ) +# 3142 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11181 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3148 "..\pars.fsy" + let arg2,hpa2 = _2 + if not (IsValidPrefixOperatorUse _1) then reportParseErrorAt arg2.Range (FSComp.SR.parsInvalidPrefixOperator()); + mkSynPrefix (rhs parseState 1) (unionRanges (rhs parseState 1) arg2.Range) _1 arg2,hpa2 + ) +# 3148 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11195 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicExprQualification)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3153 "..\pars.fsy" + let arg1,hpa1 = _1 + _3 arg1 (lhs parseState) (rhs parseState 2),hpa1 + ) +# 3153 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11208 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicExprQualification)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3156 "..\pars.fsy" + let arg1 = SynExpr.Ident(ident("base",rhs parseState 1)) + _3 arg1 (lhs parseState) (rhs parseState 2),false + ) +# 3156 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11220 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'nameop)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3159 "..\pars.fsy" + SynExpr.LongIdent (true,LongIdentWithDots([_2],[]),None,rhs parseState 2),false + ) +# 3159 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11231 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'dynamicArg)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3161 "..\pars.fsy" + let arg1,hpa1 = _1 + mkSynInfix (rhs parseState 2) arg1 "?" _3, hpa1 + ) +# 3161 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11244 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3164 "..\pars.fsy" + SynExpr.Ident (ident(MangledGlobalName,rhs parseState 1)), false + ) +# 3164 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11254 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'nameop)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3166 "..\pars.fsy" + SynExpr.Ident (_1),false + ) +# 3166 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11265 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'listExprElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3168 "..\pars.fsy" + _2 (lhs parseState) false,false + ) +# 3168 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11276 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'listExprElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3170 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBracket()); + exprFromParseError (_2 (rhs2 parseState 1 2) false), false + ) +# 3170 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11289 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3173 "..\pars.fsy" + // silent recovery + SynExpr.ArrayOrList(false,[ ], lhs parseState),false + ) +# 3173 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11300 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3176 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBracket()); + // silent recovery + exprFromParseError (SynExpr.ArrayOrList(false,[ ], rhs parseState 1)),false + ) +# 3176 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11313 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3180 "..\pars.fsy" + _1,false + ) +# 3180 "..\pars.fsy" + : Ast.SynExpr * bool)); +# 11324 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'identOrOp)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3184 "..\pars.fsy" + let idm = rhs parseState 1 + (fun e lhsm dotm -> mkSynDot dotm lhsm e _1) + ) +# 3184 "..\pars.fsy" + : 'atomicExprQualification)); +# 11336 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3187 "..\pars.fsy" + (fun e lhsm dotm -> + reportParseErrorAt dotm (FSComp.SR.parsMissingQualificationAfterDot()); + let fixedLhsm = mkRange lhsm.FileName lhsm.Start dotm.End // previous lhsm is wrong after 'recover' + mkSynDotMissing dotm fixedLhsm e) + ) +# 3187 "..\pars.fsy" + : 'atomicExprQualification)); +# 11349 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3192 "..\pars.fsy" + (fun e lhsm dotm -> + reportParseErrorAt dotm (FSComp.SR.parsMissingQualificationAfterDot()); + let fixedLhsm = mkRange lhsm.FileName lhsm.Start dotm.End // previous lhsm is wrong after 'recover' + // Include 'e' in the returned expression but throw it away + SynExpr.DiscardAfterMissingQualificationAfterDot(e,fixedLhsm)) + ) +# 3192 "..\pars.fsy" + : 'atomicExprQualification)); +# 11364 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : int32 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3198 "..\pars.fsy" + (fun e lhsm dotm -> + libraryOnlyError(lhs parseState); + SynExpr.LibraryOnlyUnionCaseFieldGet (e,mkSynCaseName lhsm opNameCons,(fst _5),lhsm)) + ) +# 3198 "..\pars.fsy" + : 'atomicExprQualification)); +# 11378 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3202 "..\pars.fsy" + (fun e lhsm dotm -> + mlCompatWarning (FSComp.SR.parsParenFormIsForML()) (lhs parseState); + mkSynDotParenGet lhsm dotm e _2) + ) +# 3202 "..\pars.fsy" + : 'atomicExprQualification)); +# 11392 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3206 "..\pars.fsy" + (fun e lhsm dotm -> mkSynDotBrackGet lhsm dotm e _2) + ) +# 3206 "..\pars.fsy" + : 'atomicExprQualification)); +# 11403 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3209 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBracket()); + (fun e lhsm dotm -> exprFromParseError (mkSynDotBrackGet lhsm dotm e _2)) + ) +# 3209 "..\pars.fsy" + : 'atomicExprQualification)); +# 11416 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3213 "..\pars.fsy" + let mArg = rhs2 parseState 1 3 + (fun e lhsm dotm -> mkSynDotBrackGet lhsm dotm e (arbExpr("indexerExpr1",mArg))) + ) +# 3213 "..\pars.fsy" + : 'atomicExprQualification)); +# 11427 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3216 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBracket()) + let mArg = (rhs parseState 1).EndRange + (fun e lhsm dotm -> exprFromParseError (mkSynDotBrackGet lhsm dotm e (arbExpr("indexerExpr2",mArg)))) + ) +# 3216 "..\pars.fsy" + : 'atomicExprQualification)); +# 11440 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'optRange)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3220 "..\pars.fsy" + (fun e lhsm dotm -> mkSynDotBrackSliceGet lhsm dotm e _2) + ) +# 3220 "..\pars.fsy" + : 'atomicExprQualification)); +# 11451 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'optRange)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'optRange)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3222 "..\pars.fsy" + (fun e lhsm dotm -> mkSynDotBrackSlice2Get lhsm dotm e _2 _4) + ) +# 3222 "..\pars.fsy" + : 'atomicExprQualification)); +# 11463 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'optRange)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'optRange)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'optRange)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3224 "..\pars.fsy" + (fun e lhsm dotm -> mkSynDotBrackSlice3Get lhsm dotm e _2 _4 _6) + ) +# 3224 "..\pars.fsy" + : 'atomicExprQualification)); +# 11476 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'optRange)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'optRange)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'optRange)) in + let _8 = (let data = parseState.GetInput(8) in (Microsoft.FSharp.Core.Operators.unbox data : 'optRange)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3226 "..\pars.fsy" + (fun e lhsm dotm -> mkSynDotBrackSlice4Get lhsm dotm e _2 _4 _6 _8) + ) +# 3226 "..\pars.fsy" + : 'atomicExprQualification)); +# 11490 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3230 "..\pars.fsy" + mkSynOptionalExpr (rhs parseState 1) (Some _1), mkSynOptionalExpr (rhs parseState 3) (Some _3) + ) +# 3230 "..\pars.fsy" + : 'optRange)); +# 11502 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3232 "..\pars.fsy" + mkSynOptionalExpr (rhs parseState 1) (Some _1), mkSynOptionalExpr (rhs parseState 2) None + ) +# 3232 "..\pars.fsy" + : 'optRange)); +# 11513 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3234 "..\pars.fsy" + mkSynOptionalExpr (rhs parseState 1) None, mkSynOptionalExpr (rhs parseState 2) (Some _2) + ) +# 3234 "..\pars.fsy" + : 'optRange)); +# 11524 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3236 "..\pars.fsy" + mkSynOptionalExpr (rhs parseState 1) None, mkSynOptionalExpr (rhs parseState 1) None + ) +# 3236 "..\pars.fsy" + : 'optRange)); +# 11534 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'constant)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3242 "..\pars.fsy" + SynExpr.Const (_1,_1.Range (lhs parseState)) + ) +# 3242 "..\pars.fsy" + : Ast.SynExpr)); +# 11545 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3244 "..\pars.fsy" + _1 + ) +# 3244 "..\pars.fsy" + : Ast.SynExpr)); +# 11556 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'braceExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3246 "..\pars.fsy" + _1 + ) +# 3246 "..\pars.fsy" + : Ast.SynExpr)); +# 11567 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3248 "..\pars.fsy" + SynExpr.Null(lhs parseState) + ) +# 3248 "..\pars.fsy" + : Ast.SynExpr)); +# 11577 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3250 "..\pars.fsy" + SynExpr.Const(SynConst.Bool false,lhs parseState) + ) +# 3250 "..\pars.fsy" + : Ast.SynExpr)); +# 11587 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3252 "..\pars.fsy" + SynExpr.Const(SynConst.Bool true,lhs parseState) + ) +# 3252 "..\pars.fsy" + : Ast.SynExpr)); +# 11597 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'quoteExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3254 "..\pars.fsy" + _1 + ) +# 3254 "..\pars.fsy" + : Ast.SynExpr)); +# 11608 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'arrayExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3256 "..\pars.fsy" + _1 + ) +# 3256 "..\pars.fsy" + : Ast.SynExpr)); +# 11619 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'beginEndExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3258 "..\pars.fsy" + _1 + ) +# 3258 "..\pars.fsy" + : Ast.SynExpr)); +# 11630 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3262 "..\pars.fsy" + SynExpr.Paren(_2, rhs parseState 1, Some(rhs parseState 3), rhs2 parseState 1 3) + ) +# 3262 "..\pars.fsy" + : 'beginEndExpr)); +# 11641 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3264 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBegin()); exprFromParseError _2 + ) +# 3264 "..\pars.fsy" + : 'beginEndExpr)); +# 11653 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3266 "..\pars.fsy" + (* silent recovery *) arbExpr("beginEndExpr",(lhs parseState)) + ) +# 3266 "..\pars.fsy" + : 'beginEndExpr)); +# 11663 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3268 "..\pars.fsy" + mkSynUnit (lhs parseState) + ) +# 3268 "..\pars.fsy" + : 'beginEndExpr)); +# 11673 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string * bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : string * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3272 "..\pars.fsy" + if _1 <> _3 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsMismatchedQuote(fst _1)) + (SynExpr.Quote(mkSynIdGet (lhs parseState) (CompileOpName (fst _1)), snd _1, _2, false, lhs parseState)) + ) +# 3272 "..\pars.fsy" + : 'quoteExpr)); +# 11687 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string * bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3275 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatched(fst _1)) + let mExpr = rhs2 parseState 1 2 + exprFromParseError (SynExpr.Quote(mkSynIdGet (lhs parseState) (CompileOpName (fst _1)),snd _1, _2, false, mExpr)) + ) +# 3275 "..\pars.fsy" + : 'quoteExpr)); +# 11702 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string * bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : string * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3279 "..\pars.fsy" + (* silent recovery *) SynExpr.Quote(mkSynIdGet (lhs parseState) (CompileOpName (fst _1)),snd _1, arbExpr("quoteExpr",(rhs parseState 2)), false, lhs parseState) + ) +# 3279 "..\pars.fsy" + : 'quoteExpr)); +# 11714 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string * bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3281 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatched(fst _1)) + exprFromParseError (SynExpr.Quote(mkSynIdGet (lhs parseState) (CompileOpName (fst _1)),snd _1, arbExpr("quoteExpr2",(rhs parseState 1).EndRange), false, rhs parseState 1)) + ) +# 3281 "..\pars.fsy" + : 'quoteExpr)); +# 11727 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'listExprElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3286 "..\pars.fsy" + _2 (lhs parseState) true + ) +# 3286 "..\pars.fsy" + : 'arrayExpr)); +# 11738 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'listExprElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3288 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBracketBar()); + exprFromParseError (_2 (rhs2 parseState 1 2) true) + ) +# 3288 "..\pars.fsy" + : 'arrayExpr)); +# 11751 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3291 "..\pars.fsy" + (* silent recovery *) SynExpr.ArrayOrList(true,[ ], lhs parseState) + ) +# 3291 "..\pars.fsy" + : 'arrayExpr)); +# 11761 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3293 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBracketBar()); + (* silent recovery *) + exprFromParseError (SynExpr.ArrayOrList(true,[ ], rhs parseState 1)) + ) +# 3293 "..\pars.fsy" + : 'arrayExpr)); +# 11774 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3299 "..\pars.fsy" + SynExpr.Const(SynConst.Unit,(rhs2 parseState 1 2)) + ) +# 3299 "..\pars.fsy" + : 'parenExpr)); +# 11785 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenExprBody)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3301 "..\pars.fsy" + let m = rhs2 parseState 1 3 + SynExpr.Paren(_2 m, rhs parseState 1, Some(rhs parseState 3), m) + ) +# 3301 "..\pars.fsy" + : 'parenExpr)); +# 11798 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenExprBody)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_other_than_rparen_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3304 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()) + let lhsm = unionRangeWithPos (rhs parseState 1) (rhs parseState 3).Start + SynExpr.Paren(exprFromParseError (_2 lhsm), rhs parseState 1, None, lhsm) + ) +# 3304 "..\pars.fsy" + : 'parenExpr)); +# 11812 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3308 "..\pars.fsy" + // silent recovery + SynExpr.Paren(arbExpr("parenExpr1",(rhs parseState 1).EndRange),(rhs parseState 1),Some(rhs parseState 3),(rhs2 parseState 1 3)) + ) +# 3308 "..\pars.fsy" + : 'parenExpr)); +# 11824 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3311 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()) + let lhsm = unionRangeWithPos (rhs parseState 1) (rhs parseState 2).Start + arbExpr("parenExpr2tcs", lhsm) + ) +# 3311 "..\pars.fsy" + : 'parenExpr)); +# 11836 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3315 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()) + let lhsm = unionRangeWithPos (rhs parseState 1) (rhs parseState 2).Start + arbExpr("parenExpr2mcs", lhsm) + ) +# 3315 "..\pars.fsy" + : 'parenExpr)); +# 11848 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3319 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()) + let lhsm = unionRangeWithPos (rhs parseState 1) (rhs parseState 2).Start + arbExpr("parenExpr2rbcs", lhsm) + ) +# 3319 "..\pars.fsy" + : 'parenExpr)); +# 11860 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3323 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()) + let lhsm = unionRangeWithPos (rhs parseState 1) (rhs parseState 2).Start + arbExpr("parenExpr2obecs", lhsm) + ) +# 3323 "..\pars.fsy" + : 'parenExpr)); +# 11872 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3327 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()); + arbExpr("parenExpr2",(lhs parseState)) + ) +# 3327 "..\pars.fsy" + : 'parenExpr)); +# 11884 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticallyKnownHeadTypars)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'classMemberSpfn)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3339 "..\pars.fsy" + (fun m -> SynExpr.TraitCall(_1,_4,_6,m)) + ) +# 3339 "..\pars.fsy" + : 'parenExprBody)); +# 11898 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3341 "..\pars.fsy" + (fun _m -> _1) + ) +# 3341 "..\pars.fsy" + : 'parenExprBody)); +# 11909 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'inlineAssemblyExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3343 "..\pars.fsy" + _1 + ) +# 3343 "..\pars.fsy" + : 'parenExprBody)); +# 11920 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticallyKnownHeadTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3347 "..\pars.fsy" + [_1] + ) +# 3347 "..\pars.fsy" + : 'staticallyKnownHeadTypars)); +# 11931 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticallyKnownHeadTyparAlts)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3349 "..\pars.fsy" + List.rev _2 + ) +# 3349 "..\pars.fsy" + : 'staticallyKnownHeadTypars)); +# 11943 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticallyKnownHeadTyparAlts)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticallyKnownHeadTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3353 "..\pars.fsy" + _3 :: _1 + ) +# 3353 "..\pars.fsy" + : 'staticallyKnownHeadTyparAlts)); +# 11955 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticallyKnownHeadTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3355 "..\pars.fsy" + [_1] + ) +# 3355 "..\pars.fsy" + : 'staticallyKnownHeadTyparAlts)); +# 11966 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'braceExprBody)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rbrace)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3359 "..\pars.fsy" + let m,r = _2 in r (rhs2 parseState 1 3) + ) +# 3359 "..\pars.fsy" + : 'braceExpr)); +# 11978 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'braceExprBody)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3361 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBrace()) ; + let m,r = _2 + // Note, we can't use 'exprFromParseError' because the extra syntax node interferes with some syntax-directed transformations for computation expressions + r (unionRanges (rhs parseState 1) m) + ) +# 3361 "..\pars.fsy" + : 'braceExpr)); +# 11993 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rbrace)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3366 "..\pars.fsy" + // silent recovery + arbExpr("braceExpr",rhs2 parseState 1 3) + ) +# 3366 "..\pars.fsy" + : 'braceExpr)); +# 12005 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3369 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBrace()) ; + // Note, we can't use 'exprFromParseError' because the extra syntax node interferes with some syntax-directed transformations for computation expressions + SynExpr.Record(None,None,[],rhs parseState 1) + ) +# 3369 "..\pars.fsy" + : 'braceExpr)); +# 12018 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'rbrace)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3373 "..\pars.fsy" + let m = rhs2 parseState 1 2 + SynExpr.Record(None,None,[],m) + ) +# 3373 "..\pars.fsy" + : 'braceExpr)); +# 12030 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3378 "..\pars.fsy" + (lhs parseState), (fun m -> let a,b,c = _1 in SynExpr.Record(a,b,c,m)) + ) +# 3378 "..\pars.fsy" + : 'braceExprBody)); +# 12041 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'objExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3380 "..\pars.fsy" + _1 + ) +# 3380 "..\pars.fsy" + : 'braceExprBody)); +# 12052 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'monadicExprInitial)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3382 "..\pars.fsy" + let m,r = _1 in (m, r false) + ) +# 3382 "..\pars.fsy" + : 'braceExprBody)); +# 12063 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'monadicExprInitial)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3386 "..\pars.fsy" + let m,r = _1 in (fun lhsm isArray -> SynExpr.ArrayOrListOfSeqExpr(isArray, r true m, lhsm)) + ) +# 3386 "..\pars.fsy" + : 'listExprElements)); +# 12074 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3388 "..\pars.fsy" + (fun lhsm isArray -> SynExpr.ArrayOrList(isArray,[ ], lhsm)) + ) +# 3388 "..\pars.fsy" + : 'listExprElements)); +# 12084 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'seqExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3392 "..\pars.fsy" + _1.Range, (fun isArrayOrList lhsm -> SynExpr.CompExpr(isArrayOrList,ref(isArrayOrList),_1,lhsm)) + ) +# 3392 "..\pars.fsy" + : 'monadicExprInitial)); +# 12095 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'rangeSequenceExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3394 "..\pars.fsy" + _1 + ) +# 3394 "..\pars.fsy" + : 'monadicExprInitial)); +# 12106 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3398 "..\pars.fsy" + let opm = (rhs parseState 2) + (unionRanges _1.Range _3.Range),(fun _isArray wholem -> + // in the case of "{ 1 .. 10 }", we want the range of the expression to include the curlies, that comes from a higher level rule in the grammar, + // passed down as 'wholem', so patch up that range here + match (mkSynInfix opm _1 ".." _3) with + | SynExpr.App(a,b,c,d,_) -> SynExpr.App(a,b,c,d,wholem) + | _ -> failwith "impossible") + ) +# 3398 "..\pars.fsy" + : 'rangeSequenceExpr)); +# 12124 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3406 "..\pars.fsy" + (unionRanges _1.Range _5.Range),(fun _isArray wholem -> mkSynTrifix wholem ".. .." _1 _3 _5) + ) +# 3406 "..\pars.fsy" + : 'rangeSequenceExpr)); +# 12137 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3409 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedEndOfFileExpression()); + let opm = (rhs parseState 2) + let e = arbExpr("rangeSeqError1", (rhs parseState 3).StartRange) + (unionRanges _1.Range e.Range),(fun _isArray wholem -> + // in the case of "{ 1 .. 10 }", we want the range of the expression to include the curlies, that comes from a higher level rule in the grammar, + // passed down as 'wholem', so patch up that range here + match (mkSynInfix opm _1 ".." e) with + | SynExpr.App(a,b,c,d,_) -> SynExpr.App(a,b,c,d,wholem) + | _ -> failwith "impossible") + ) +# 3409 "..\pars.fsy" + : 'rangeSequenceExpr)); +# 12157 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExprBlockR)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3425 "..\pars.fsy" + SynExpr.YieldOrReturn((true,false), _2, unionRanges (rhs parseState 1) _2.Range) + ) +# 3425 "..\pars.fsy" + : 'monadicSingleLineQualifiersThenArrowThenExprR)); +# 12168 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3430 "..\pars.fsy" + (_1, _3, true) + ) +# 3430 "..\pars.fsy" + : 'forLoopBinder)); +# 12180 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rangeSequenceExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3432 "..\pars.fsy" + let m,r = _3 in (_1, r false m, true) + ) +# 3432 "..\pars.fsy" + : 'forLoopBinder)); +# 12192 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3434 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsExpectedExpressionAfterToken()) + (_1, arbExpr("forLoopBinder",(rhs parseState 2)), false) + ) +# 3434 "..\pars.fsy" + : 'forLoopBinder)); +# 12205 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3437 "..\pars.fsy" + if not _2 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsInOrEqualExpected()) + (_1, arbExpr("forLoopBinder2",(rhs parseState 1).EndRange), false) + ) +# 3437 "..\pars.fsy" + : 'forLoopBinder)); +# 12218 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'parenPattern)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'forLoopDirection)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3442 "..\pars.fsy" + idOfPat (rhs parseState 1) _1,_3,_4,_5 + ) +# 3442 "..\pars.fsy" + : 'forLoopRange)); +# 12232 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'stringOrKeywordString)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inlineAssemblyTypeArg)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_curriedArgExprs)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_inlineAssemblyReturnTypes)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HASH)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3446 "..\pars.fsy" + libraryOnlyWarning (lhs parseState); + let s,sm = _2,rhs parseState 2 + (fun m -> SynExpr.LibraryOnlyILAssembly (ParseAssemblyCodeInstructions s sm,_3,List.rev _4,_5,m)) + ) +# 3446 "..\pars.fsy" + : 'inlineAssemblyExpr)); +# 12249 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_curriedArgExprs)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3451 "..\pars.fsy" + _2 :: _1 + ) +# 3451 "..\pars.fsy" + : 'opt_curriedArgExprs)); +# 12261 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3452 "..\pars.fsy" + [] + ) +# 3452 "..\pars.fsy" + : 'opt_curriedArgExprs)); +# 12271 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3455 "..\pars.fsy" + None + ) +# 3455 "..\pars.fsy" + : 'opt_atomicExprAfterType)); +# 12281 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3456 "..\pars.fsy" + Some(_1) + ) +# 3456 "..\pars.fsy" + : 'opt_atomicExprAfterType)); +# 12292 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3459 "..\pars.fsy" + [] + ) +# 3459 "..\pars.fsy" + : 'opt_inlineAssemblyTypeArg)); +# 12302 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'type_keyword)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3460 "..\pars.fsy" + [_3] + ) +# 3460 "..\pars.fsy" + : 'opt_inlineAssemblyTypeArg)); +# 12315 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3464 "..\pars.fsy" + [] + ) +# 3464 "..\pars.fsy" + : 'opt_inlineAssemblyReturnTypes)); +# 12325 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3466 "..\pars.fsy" + [_2] + ) +# 3466 "..\pars.fsy" + : 'opt_inlineAssemblyReturnTypes)); +# 12336 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3468 "..\pars.fsy" + [] + ) +# 3468 "..\pars.fsy" + : 'opt_inlineAssemblyReturnTypes)); +# 12347 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeNonAtomicDeprecated)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_atomicExprAfterType)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdExprBindings)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps_recd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3472 "..\pars.fsy" + let arg = match _4 with None -> mkSynUnit (lhs parseState) | Some e -> e + let l = List.rev _5 + let dummyField = mkRecdField (LongIdentWithDots([], [])) // dummy identifier, it will be discarded + let l = rebindRanges (dummyField, None) l _6 + let (_, _, inheritsSep) = List.head l + let bindings = List.tail l + (Some (_2,arg,rhs2 parseState 2 4, inheritsSep, rhs parseState 1), None, bindings) + ) +# 3472 "..\pars.fsy" + : 'recdExpr)); +# 12368 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdExprBindings)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps_recd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3481 "..\pars.fsy" + match _1 with + | LongOrSingleIdent(false, (LongIdentWithDots(_,_) as f),None,m) -> + let f = mkRecdField f + let l = List.rev _4 + let l = rebindRanges (f, Some _3) l _5 + (None, None, l) + | _ -> raiseParseErrorAt (rhs parseState 2) (FSComp.SR.parsFieldBinding()) + ) +# 3481 "..\pars.fsy" + : 'recdExpr)); +# 12388 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3494 "..\pars.fsy" + let m = rhs parseState 1 + reportParseErrorAt m (FSComp.SR.parsUnderscoreInvalidFieldName()) + reportParseErrorAt m (FSComp.SR.parsFieldBinding()) + let f = mkUnderscoreRecdField m + (None, None, [ f, None, None ]) + ) +# 3494 "..\pars.fsy" + : 'recdExpr)); +# 12402 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3501 "..\pars.fsy" + let m = rhs parseState 1 + reportParseErrorAt m (FSComp.SR.parsUnderscoreInvalidFieldName()) + let f = mkUnderscoreRecdField m + reportParseErrorAt (rhs2 parseState 1 2) (FSComp.SR.parsFieldBinding()) + + (None, None, [f, None, None]) + ) +# 3501 "..\pars.fsy" + : 'recdExpr)); +# 12417 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdExprBindings)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps_recd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3510 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnderscoreInvalidFieldName()) + let f = mkUnderscoreRecdField (rhs parseState 1) + let l = List.rev _4 + let l = rebindRanges (f, Some _3) l _5 + (None, None, l) + ) +# 3510 "..\pars.fsy" + : 'recdExpr)); +# 12434 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdBinding)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdExprBindings)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps_recd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3520 "..\pars.fsy" + let l = List.rev _4 + let l = rebindRanges _3 l _5 + (None,Some (_1, (rhs parseState 2, None)), l) + ) +# 3520 "..\pars.fsy" + : 'recdExpr)); +# 12450 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps_recd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3525 "..\pars.fsy" + (None,Some (_1, (rhs parseState 2, None)), []) + ) +# 3525 "..\pars.fsy" + : 'recdExpr)); +# 12462 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdBinding)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdExprBindings)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_seps_recd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3528 "..\pars.fsy" + + let l = List.rev _4 + let l = rebindRanges _3 l _5 + (None,Some (_1, (rhs parseState 2, None)), l) + ) +# 3528 "..\pars.fsy" + : 'recdExpr)); +# 12479 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'seps_recd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3534 "..\pars.fsy" + Some _1 + ) +# 3534 "..\pars.fsy" + : 'opt_seps_recd)); +# 12490 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3535 "..\pars.fsy" + None + ) +# 3535 "..\pars.fsy" + : 'opt_seps_recd)); +# 12500 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3538 "..\pars.fsy" + (rhs parseState 1), None + ) +# 3538 "..\pars.fsy" + : 'seps_recd)); +# 12510 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3539 "..\pars.fsy" + let m = (rhs parseState 1) in (m, Some m.End) + ) +# 3539 "..\pars.fsy" + : 'seps_recd)); +# 12520 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3540 "..\pars.fsy" + (rhs2 parseState 1 2), Some (rhs parseState 1).End + ) +# 3540 "..\pars.fsy" + : 'seps_recd)); +# 12530 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3541 "..\pars.fsy" + (rhs2 parseState 1 2), Some (rhs parseState 2).End + ) +# 3541 "..\pars.fsy" + : 'seps_recd)); +# 12540 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3547 "..\pars.fsy" + mkRecdField _1 + ) +# 3547 "..\pars.fsy" + : 'pathOrUnderscore)); +# 12551 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3549 "..\pars.fsy" + let m = rhs parseState 1 + reportParseErrorAt m (FSComp.SR.parsUnderscoreInvalidFieldName()) + mkUnderscoreRecdField m + ) +# 3549 "..\pars.fsy" + : 'pathOrUnderscore)); +# 12563 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdExprBindings)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'seps_recd)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recdBinding)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3555 "..\pars.fsy" + (_3, Some _2) :: _1 + ) +# 3555 "..\pars.fsy" + : 'recdExprBindings)); +# 12576 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3556 "..\pars.fsy" + [] + ) +# 3556 "..\pars.fsy" + : 'recdExprBindings)); +# 12586 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'pathOrUnderscore)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3560 "..\pars.fsy" + (_1, Some _3) + ) +# 3560 "..\pars.fsy" + : 'recdBinding)); +# 12598 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'pathOrUnderscore)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3562 "..\pars.fsy" + + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsFieldBinding()) + (_1, None) + + ) +# 3562 "..\pars.fsy" + : 'recdBinding)); +# 12612 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'pathOrUnderscore)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3567 "..\pars.fsy" + + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsFieldBinding()) + (_1, None) + + ) +# 3567 "..\pars.fsy" + : 'recdBinding)); +# 12627 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'pathOrUnderscore)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3572 "..\pars.fsy" + + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsFieldBinding()) + (_1, None) + + ) +# 3572 "..\pars.fsy" + : 'recdBinding)); +# 12641 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'pathOrUnderscore)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3577 "..\pars.fsy" + + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsFieldBinding()) + (_1, None) + + ) +# 3577 "..\pars.fsy" + : 'recdBinding)); +# 12656 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'objExprBaseCall)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'objExprBindings)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_objExprInterfaces)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3590 "..\pars.fsy" + let mNewExpr = rhs parseState 1 + let fullRange = match _4 with [] -> (rhs parseState 1) | _ -> (rhs2 parseState 1 4) + fullRange, (fun m -> let (a,b) = _1 in SynExpr.ObjExpr(a,b,_2,_4, mNewExpr, m)) + ) +# 3590 "..\pars.fsy" + : 'objExpr)); +# 12672 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'objExprBaseCall)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'objExprInterfaces)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3594 "..\pars.fsy" + let mNewExpr = rhs parseState 1 + let fullRange = match _3 with [] -> (rhs parseState 1) | _ -> (rhs2 parseState 1 3) + fullRange, (fun m -> let (a,b) = _1 in SynExpr.ObjExpr(a,b,[],_3, mNewExpr, m)) + ) +# 3594 "..\pars.fsy" + : 'objExpr)); +# 12687 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeNonAtomicDeprecated)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3598 "..\pars.fsy" + let mNewExpr = rhs parseState 1 + (rhs2 parseState 1 2), (fun m -> let (a,b) = _2,None in SynExpr.ObjExpr(a,b,[],[], mNewExpr, m)) + ) +# 3598 "..\pars.fsy" + : 'objExpr)); +# 12699 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeNonAtomicDeprecated)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'baseSpec)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3604 "..\pars.fsy" + (_2, Some(_4,Some(_5))) + ) +# 3604 "..\pars.fsy" + : 'objExprBaseCall)); +# 12713 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeNonAtomicDeprecated)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_HIGH_PRECEDENCE_APP)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3606 "..\pars.fsy" + (_2, Some(_4,None)) + ) +# 3606 "..\pars.fsy" + : 'objExprBaseCall)); +# 12726 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeNonAtomicDeprecated)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3608 "..\pars.fsy" + _2,None + ) +# 3608 "..\pars.fsy" + : 'objExprBaseCall)); +# 12737 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'objExprBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3613 "..\pars.fsy" + _1 + ) +# 3613 "..\pars.fsy" + : 'opt_objExprBindings)); +# 12748 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3614 "..\pars.fsy" + [] + ) +# 3614 "..\pars.fsy" + : 'opt_objExprBindings)); +# 12758 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'localBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3618 "..\pars.fsy" + let mWithKwd = (rhs parseState 1) + let _localBindingsLastRange, localBindingsBuilder = _2 + localBindingsBuilder [] None mWithKwd + ) +# 3618 "..\pars.fsy" + : 'objExprBindings)); +# 12771 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'localBindings)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3622 "..\pars.fsy" + let mWithKwd = (rhs parseState 1) + let _localBindingsLastRange, localBindingsBuilder = _2 + localBindingsBuilder [] None mWithKwd + ) +# 3622 "..\pars.fsy" + : 'objExprBindings)); +# 12784 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'objectImplementationBlock)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declEnd)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3626 "..\pars.fsy" + _2 |> + (List.choose (function + | SynMemberDefn.Member(b,m) -> Some b + | SynMemberDefn.AutoProperty(_,_,_,_,_,_,_,_,_,_,m) -> errorR(Error(FSComp.SR.parsIllegalMemberVarInObjectImplementation(),m)); None + | x -> errorR(Error(FSComp.SR.parsMemberIllegalInObjectImplementation(),x.Range)); None)) + ) +# 3626 "..\pars.fsy" + : 'objExprBindings)); +# 12800 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'objExprInterface)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_objExprInterfaces)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3633 "..\pars.fsy" + _1 :: _2 + ) +# 3633 "..\pars.fsy" + : 'objExprInterfaces)); +# 12812 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3637 "..\pars.fsy" + [] + ) +# 3637 "..\pars.fsy" + : 'opt_objExprInterfaces)); +# 12822 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'objExprInterface)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_objExprInterfaces)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3639 "..\pars.fsy" + _1 :: _2 + ) +# 3639 "..\pars.fsy" + : 'opt_objExprInterfaces)); +# 12834 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_objExprInterfaces)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3641 "..\pars.fsy" + (* silent recovery *) _2 + ) +# 3641 "..\pars.fsy" + : 'opt_objExprInterfaces)); +# 12845 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interfaceMember)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_objExprBindings)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_declEnd)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_OBLOCKSEP)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3645 "..\pars.fsy" + InterfaceImpl(_2, _3, lhs parseState) + ) +# 3645 "..\pars.fsy" + : 'objExprInterface)); +# 12860 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3648 "..\pars.fsy" + true + ) +# 3648 "..\pars.fsy" + : 'forLoopDirection)); +# 12870 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3649 "..\pars.fsy" + false + ) +# 3649 "..\pars.fsy" + : 'forLoopDirection)); +# 12880 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3653 "..\pars.fsy" + let mAll = unionRanges (rhs parseState 1) _4.Range + mkSynFunMatchLambdas (parseState.GetSynArgNameGenerator()) false mAll _2 _4 + ) +# 3653 "..\pars.fsy" + : 'anonLambdaExpr)); +# 12893 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3656 "..\pars.fsy" + let mAll = rhs2 parseState 1 3 + mkSynFunMatchLambdas (parseState.GetSynArgNameGenerator()) false mAll _2 (arbExpr("anonLambdaExpr1",(rhs parseState 4))) + ) +# 3656 "..\pars.fsy" + : 'anonLambdaExpr)); +# 12905 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExprBlockR)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3659 "..\pars.fsy" + let mAll = unionRanges (rhs parseState 1) _4.Range + mkSynFunMatchLambdas (parseState.GetSynArgNameGenerator()) false mAll _2 _4 + ) +# 3659 "..\pars.fsy" + : 'anonLambdaExpr)); +# 12918 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'typedSeqExprBlockR)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3662 "..\pars.fsy" + if not _5 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileFunBody()); + let mAll = unionRanges (rhs parseState 1) _4.Range + exprFromParseError (mkSynFunMatchLambdas (parseState.GetSynArgNameGenerator()) false mAll _2 _4) + ) +# 3662 "..\pars.fsy" + : 'anonLambdaExpr)); +# 12933 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3666 "..\pars.fsy" + reportParseErrorAt (rhs2 parseState 1 3) (FSComp.SR.parsMissingFunctionBody()) + mkSynFunMatchLambdas (parseState.GetSynArgNameGenerator()) false (rhs2 parseState 1 3) _2 (arbExpr("anonLambdaExpr2",(rhs parseState 4))) + ) +# 3666 "..\pars.fsy" + : 'anonLambdaExpr)); +# 12945 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3670 "..\pars.fsy" + if not _4 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileFunBody()) + exprFromParseError (mkSynFunMatchLambdas (parseState.GetSynArgNameGenerator()) false (rhs2 parseState 1 3) _2 (arbExpr("anonLambdaExpr3",(rhs parseState 4)))) + ) +# 3670 "..\pars.fsy" + : 'anonLambdaExpr)); +# 12958 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomicPatterns)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3673 "..\pars.fsy" + exprFromParseError (mkSynFunMatchLambdas (parseState.GetSynArgNameGenerator()) false (rhs2 parseState 1 2) _2 (arbExpr("anonLambdaExpr4",(rhs parseState 3)))) + ) +# 3673 "..\pars.fsy" + : 'anonLambdaExpr)); +# 12969 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3675 "..\pars.fsy" + exprFromParseError (mkSynFunMatchLambdas (parseState.GetSynArgNameGenerator()) false (rhs parseState 1) [] (arbExpr("anonLambdaExpr5",(rhs parseState 2)))) + ) +# 3675 "..\pars.fsy" + : 'anonLambdaExpr)); +# 12979 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'withPatternClauses)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3679 "..\pars.fsy" + let clauses,mLast = _2 + let mAll = unionRanges (rhs parseState 1) mLast + SynExpr.MatchLambda(false,(rhs parseState 1),clauses,NoSequencePointAtInvisibleBinding,mAll) + ) +# 3679 "..\pars.fsy" + : 'anonMatchingExpr)); +# 12992 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'withPatternClauses)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3683 "..\pars.fsy" + let clauses,mLast = _2 + let mAll = unionRanges (rhs parseState 1) mLast + SynExpr.MatchLambda(false,(rhs parseState 1),clauses,NoSequencePointAtInvisibleBinding,mAll) + ) +# 3683 "..\pars.fsy" + : 'anonMatchingExpr)); +# 13005 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3691 "..\pars.fsy" + _1 + ) +# 3691 "..\pars.fsy" + : 'typeWithTypeConstraints)); +# 13016 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeConstraints)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3693 "..\pars.fsy" + SynType.WithGlobalConstraints(_1, List.rev _3,lhs parseState) + ) +# 3693 "..\pars.fsy" + : 'typeWithTypeConstraints)); +# 13028 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3697 "..\pars.fsy" + _1 + ) +# 3697 "..\pars.fsy" + : 'topTypeWithTypeConstraints)); +# 13039 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeConstraints)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3699 "..\pars.fsy" + let ty,arity = _1 + // nb. it doesn't matter where the constraints go in the structure of the type. + SynType.WithGlobalConstraints(ty,List.rev _3,lhs parseState), arity + ) +# 3699 "..\pars.fsy" + : 'topTypeWithTypeConstraints)); +# 13053 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3705 "..\pars.fsy" + None + ) +# 3705 "..\pars.fsy" + : 'opt_topReturnTypeWithTypeConstraints)); +# 13063 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'topTypeWithTypeConstraints)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3707 "..\pars.fsy" + let ty,arity = _2 + let arity = (match arity with SynValInfo([],rmdata)-> rmdata | _ -> SynInfo.unnamedRetVal) + Some (SynReturnInfo((ty,arity),rhs parseState 2)) + ) +# 3707 "..\pars.fsy" + : 'opt_topReturnTypeWithTypeConstraints)); +# 13076 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topTupleType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'topType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3713 "..\pars.fsy" + let dty,dmdata= _1 + let rty,(SynValInfo(dmdatas,rmdata)) = _3 + SynType.Fun(dty,rty,lhs parseState), (SynValInfo(dmdata::dmdatas, rmdata)) + ) +# 3713 "..\pars.fsy" + : 'topType)); +# 13090 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topTupleType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3717 "..\pars.fsy" + let ty,rmdata = _1 in ty, (SynValInfo([],(match rmdata with [md] -> md | _ -> SynInfo.unnamedRetVal))) + ) +# 3717 "..\pars.fsy" + : 'topType)); +# 13101 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topAppType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'topTupleTypeElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3721 "..\pars.fsy" + let ty,mdata = _1 in let tys,mdatas = List.unzip _3 in (SynType.Tuple(List.map (fun ty -> (false,ty)) (ty ::tys), lhs parseState)),(mdata :: mdatas) + ) +# 3721 "..\pars.fsy" + : 'topTupleType)); +# 13113 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topAppType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3723 "..\pars.fsy" + let ty,mdata = _1 in ty,[mdata] + ) +# 3723 "..\pars.fsy" + : 'topTupleType)); +# 13124 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topAppType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'topTupleTypeElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3726 "..\pars.fsy" + _1 :: _3 + ) +# 3726 "..\pars.fsy" + : 'topTupleTypeElements)); +# 13136 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topAppType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3727 "..\pars.fsy" + [_1] + ) +# 3727 "..\pars.fsy" + : 'topTupleTypeElements)); +# 13147 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3732 "..\pars.fsy" + match _2 with + | SynType.LongIdent(LongIdentWithDots([id],_)) -> _4,SynArgInfo(_1,false,Some id) + | _ -> raiseParseErrorAt (rhs parseState 2) (FSComp.SR.parsSyntaxErrorInLabeledType()) + ) +# 3732 "..\pars.fsy" + : 'topAppType)); +# 13162 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributes)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3736 "..\pars.fsy" + _5,SynArgInfo(_1,true,Some _3) + ) +# 3736 "..\pars.fsy" + : 'topAppType)); +# 13175 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'attributes)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3738 "..\pars.fsy" + (_2,SynArgInfo(_1,false,None)) + ) +# 3738 "..\pars.fsy" + : 'topAppType)); +# 13187 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3740 "..\pars.fsy" + match _1 with + | SynType.LongIdent(LongIdentWithDots([id],_)) -> _3,SynArgInfo([],false,Some id) + | _ -> raiseParseErrorAt (rhs parseState 2) (FSComp.SR.parsSyntaxErrorInLabeledType()) + ) +# 3740 "..\pars.fsy" + : 'topAppType)); +# 13201 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3744 "..\pars.fsy" + _4,SynArgInfo([],true,Some _2) + ) +# 3744 "..\pars.fsy" + : 'topAppType)); +# 13213 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3746 "..\pars.fsy" + _1,SynArgInfo([],false,None) + ) +# 3746 "..\pars.fsy" + : 'topAppType)); +# 13224 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3751 "..\pars.fsy" + SynType.Fun(_1,_3,lhs parseState) + ) +# 3751 "..\pars.fsy" + : Ast.SynType)); +# 13236 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3752 "..\pars.fsy" + _1 + ) +# 3752 "..\pars.fsy" + : Ast.SynType)); +# 13247 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleOrQuotTypeElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3756 "..\pars.fsy" + SynType.Tuple((false,_1) :: _3,lhs parseState) + ) +# 3756 "..\pars.fsy" + : 'tupleType)); +# 13259 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleOrQuotTypeElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3759 "..\pars.fsy" + if _1 <> "/" then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedInfixOperator()); + SynType.Tuple((true, SynType.StaticConstant (SynConst.Int32 1, lhs parseState)):: _2, lhs parseState) + ) +# 3759 "..\pars.fsy" + : 'tupleType)); +# 13272 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleOrQuotTypeElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3763 "..\pars.fsy" + if _2 <> "/" then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedInfixOperator()); + SynType.Tuple((true,_1) :: _3, lhs parseState) + ) +# 3763 "..\pars.fsy" + : 'tupleType)); +# 13286 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3765 "..\pars.fsy" + _1 + ) +# 3765 "..\pars.fsy" + : 'tupleType)); +# 13297 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleOrQuotTypeElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3768 "..\pars.fsy" + (false,_1) :: _3 + ) +# 3768 "..\pars.fsy" + : 'tupleOrQuotTypeElements)); +# 13309 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleOrQuotTypeElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3770 "..\pars.fsy" + if _2 <> "/" then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedInfixOperator()); + (true,_1) :: _3 + ) +# 3770 "..\pars.fsy" + : 'tupleOrQuotTypeElements)); +# 13323 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3772 "..\pars.fsy" + [(false,_1)] + ) +# 3772 "..\pars.fsy" + : 'tupleOrQuotTypeElements)); +# 13334 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'tupleTypeElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3775 "..\pars.fsy" + _1 :: _3 + ) +# 3775 "..\pars.fsy" + : 'tupleTypeElements)); +# 13346 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3776 "..\pars.fsy" + [_1] + ) +# 3776 "..\pars.fsy" + : 'tupleTypeElements)); +# 13357 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3780 "..\pars.fsy" + SynType.LongIdent(_1) + ) +# 3780 "..\pars.fsy" + : 'appTypeCon)); +# 13368 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3783 "..\pars.fsy" + SynType.Var(_1, lhs parseState) + ) +# 3783 "..\pars.fsy" + : 'appTypeCon)); +# 13379 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeCon)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : int32 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3787 "..\pars.fsy" + if _2 <> "^" && _2 <> "^-" then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnexpectedInfixOperator()); + if _2 = "^-" then SynType.MeasurePower(_1, -(fst _3), lhs parseState) + else SynType.MeasurePower(_1, fst _3, lhs parseState) + ) +# 3787 "..\pars.fsy" + : 'appTypeConPower)); +# 13394 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeCon)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3791 "..\pars.fsy" + _1 + ) +# 3791 "..\pars.fsy" + : 'appTypeConPower)); +# 13405 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'arrayTypeSuffix)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3795 "..\pars.fsy" + SynType.Array(_2,_1,lhs parseState) + ) +# 3795 "..\pars.fsy" + : 'appType)); +# 13417 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'arrayTypeSuffix)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3797 "..\pars.fsy" + SynType.Array(_3,_1,lhs parseState) + ) +# 3797 "..\pars.fsy" + : 'appType)); +# 13429 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeConPower)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3799 "..\pars.fsy" + SynType.App(_2, None, [_1], [], None, true, unionRanges (rhs parseState 1) _2.Range) + ) +# 3799 "..\pars.fsy" + : 'appType)); +# 13441 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypePrefixArguments)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeConPower)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3801 "..\pars.fsy" + let args, commas = _2 + mlCompatWarning (FSComp.SR.parsMultiArgumentGenericTypeFormDeprecated()) (unionRanges (rhs parseState 1) _4.Range); + SynType.App(_4, None, args, commas, None, true, unionRanges (rhs parseState 1) _4.Range) + ) +# 3801 "..\pars.fsy" + : 'appType)); +# 13456 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'powerType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3805 "..\pars.fsy" + _1 + ) +# 3805 "..\pars.fsy" + : 'appType)); +# 13467 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3807 "..\pars.fsy" + let tp,typ = _1,_3 + let m = lhs parseState + SynType.WithGlobalConstraints(SynType.Var (tp, rhs parseState 1), [WhereTyparSubtypeOfType(tp,typ,m)],m) + ) +# 3807 "..\pars.fsy" + : 'appType)); +# 13481 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3811 "..\pars.fsy" + SynType.HashConstraint(_3, lhs parseState) + ) +# 3811 "..\pars.fsy" + : 'appType)); +# 13492 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3815 "..\pars.fsy" + 1 + ) +# 3815 "..\pars.fsy" + : 'arrayTypeSuffix)); +# 13502 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3817 "..\pars.fsy" + 2 + ) +# 3817 "..\pars.fsy" + : 'arrayTypeSuffix)); +# 13512 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3819 "..\pars.fsy" + 3 + ) +# 3819 "..\pars.fsy" + : 'arrayTypeSuffix)); +# 13522 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3821 "..\pars.fsy" + 4 + ) +# 3821 "..\pars.fsy" + : 'arrayTypeSuffix)); +# 13532 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActual)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActual)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgListElements)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3825 "..\pars.fsy" + let typeArgs, commas = _4 in _1 :: _3 :: List.rev typeArgs, (rhs parseState 2)::(List.rev commas) + ) +# 3825 "..\pars.fsy" + : 'appTypePrefixArguments)); +# 13545 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgListElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActual)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3829 "..\pars.fsy" + let typeArgs, commas = _1 + _3 :: typeArgs, (rhs parseState 2)::commas + ) +# 3829 "..\pars.fsy" + : 'typeArgListElements)); +# 13558 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgListElements)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'dummyTypeArg)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3832 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsMissingTypeArgs()) + let typeArgs, commas = _1 + _3 :: typeArgs, (rhs parseState 2)::commas + ) +# 3832 "..\pars.fsy" + : 'typeArgListElements)); +# 13572 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3836 "..\pars.fsy" + [], [] + ) +# 3836 "..\pars.fsy" + : 'typeArgListElements)); +# 13582 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3840 "..\pars.fsy" + _1 + ) +# 3840 "..\pars.fsy" + : 'powerType)); +# 13593 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : int32 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3842 "..\pars.fsy" + if _2 <> "^" && _2 <> "^-" then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnexpectedInfixOperator()); + if _2 = "^-" then SynType.MeasurePower(_1, - (fst _3), lhs parseState) + else SynType.MeasurePower(_1, fst _3, lhs parseState) + ) +# 3842 "..\pars.fsy" + : 'powerType)); +# 13608 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : int32 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3846 "..\pars.fsy" + if _2 <> "^" then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnexpectedInfixOperator()); + SynType.MeasurePower(_1, - (fst _4), lhs parseState) + ) +# 3846 "..\pars.fsy" + : 'powerType)); +# 13622 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'arrayTypeSuffix)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3852 "..\pars.fsy" + deprecatedWithError (FSComp.SR.parsNonAtomicType()) (lhs parseState); + SynType.Array(_2,_1,lhs parseState) + ) +# 3852 "..\pars.fsy" + : 'appTypeNonAtomicDeprecated)); +# 13635 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'arrayTypeSuffix)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3855 "..\pars.fsy" + deprecatedWithError (FSComp.SR.parsNonAtomicType()) (lhs parseState); + SynType.Array(_3,_1,lhs parseState) + ) +# 3855 "..\pars.fsy" + : 'appTypeNonAtomicDeprecated)); +# 13648 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeConPower)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3858 "..\pars.fsy" + let mWhole = unionRanges (rhs parseState 1) _2.Range // note: use "rhs parseState 1" to deal with parens in "(int) list" + deprecatedWithError (FSComp.SR.parsNonAtomicType()) mWhole; + SynType.App(_2, None, [_1], [], None, true, mWhole) + ) +# 3858 "..\pars.fsy" + : 'appTypeNonAtomicDeprecated)); +# 13662 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypePrefixArguments)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeConPower)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3862 "..\pars.fsy" + let args, commas = _2 + mlCompatWarning (FSComp.SR.parsMultiArgumentGenericTypeFormDeprecated()) (unionRanges (rhs parseState 1) _4.Range); + SynType.App(_4, None, args, commas, None, true, unionRanges (rhs parseState 1) _4.Range) + ) +# 3862 "..\pars.fsy" + : 'appTypeNonAtomicDeprecated)); +# 13677 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'powerTypeNonAtomicDeprecated)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3866 "..\pars.fsy" + _1 + ) +# 3866 "..\pars.fsy" + : 'appTypeNonAtomicDeprecated)); +# 13688 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3868 "..\pars.fsy" + deprecatedWithError (FSComp.SR.parsNonAtomicType()) (lhs parseState); + let tp,typ = _1,_3 + let m = lhs parseState + SynType.WithGlobalConstraints(SynType.Var (tp, rhs parseState 1), [WhereTyparSubtypeOfType(tp,typ,m)],m) + ) +# 3868 "..\pars.fsy" + : 'appTypeNonAtomicDeprecated)); +# 13703 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3873 "..\pars.fsy" + deprecatedWithError (FSComp.SR.parsNonAtomicType()) (lhs parseState); + SynType.HashConstraint(_3, lhs parseState) + ) +# 3873 "..\pars.fsy" + : 'appTypeNonAtomicDeprecated)); +# 13715 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3879 "..\pars.fsy" + _1 + ) +# 3879 "..\pars.fsy" + : 'powerTypeNonAtomicDeprecated)); +# 13726 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : int32 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3881 "..\pars.fsy" + if _2 <> "^" && _2 <> "^-" then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnexpectedInfixOperator()); + deprecatedWithError (FSComp.SR.parsNonAtomicType()) (lhs parseState); + if _2 = "^-" then SynType.MeasurePower(_1, - (fst _3), lhs parseState) + else SynType.MeasurePower(_1, fst _3, lhs parseState) + ) +# 3881 "..\pars.fsy" + : 'powerTypeNonAtomicDeprecated)); +# 13742 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomType)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : int32 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3886 "..\pars.fsy" + if _2 <> "^" then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnexpectedInfixOperator()); + deprecatedWithError (FSComp.SR.parsNonAtomicType()) (lhs parseState); + SynType.MeasurePower(_1, - (fst _4), lhs parseState) + ) +# 3886 "..\pars.fsy" + : 'powerTypeNonAtomicDeprecated)); +# 13757 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3895 "..\pars.fsy" + SynType.HashConstraint(_2, lhs parseState) + ) +# 3895 "..\pars.fsy" + : 'atomType)); +# 13768 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeConPower)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3897 "..\pars.fsy" + _1 + ) +# 3897 "..\pars.fsy" + : 'atomType)); +# 13779 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3899 "..\pars.fsy" + SynType.Anon (lhs parseState) + ) +# 3899 "..\pars.fsy" + : 'atomType)); +# 13789 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3901 "..\pars.fsy" + _2 + ) +# 3901 "..\pars.fsy" + : 'atomType)); +# 13801 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3903 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedParen()) + _2 + ) +# 3903 "..\pars.fsy" + : 'atomType)); +# 13814 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'rawConstant)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3906 "..\pars.fsy" + SynType.StaticConstant(_1, rhs parseState 1) + ) +# 3906 "..\pars.fsy" + : 'atomType)); +# 13825 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3908 "..\pars.fsy" + let m = rhs parseState 1 + SynType.StaticConstant(SynConst.String (null, m), m) + ) +# 3908 "..\pars.fsy" + : 'atomType)); +# 13836 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynExpr * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3911 "..\pars.fsy" + let e,_ = _2 + SynType.StaticConstantExpr(e, e.Range) + + ) +# 3911 "..\pars.fsy" + : 'atomType)); +# 13849 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3915 "..\pars.fsy" + SynType.StaticConstant(SynConst.Bool false,lhs parseState) + ) +# 3915 "..\pars.fsy" + : 'atomType)); +# 13859 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3917 "..\pars.fsy" + SynType.StaticConstant(SynConst.Bool true,lhs parseState) + ) +# 3917 "..\pars.fsy" + : 'atomType)); +# 13869 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3919 "..\pars.fsy" + (* silent recovery *) SynType.Anon (lhs parseState) + ) +# 3919 "..\pars.fsy" + : 'atomType)); +# 13880 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeCon)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : range * range option * Ast.SynType list * range list * range)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3921 "..\pars.fsy" + let mLessThan,mGreaterThan,args,commas,mWhole = _2 in SynType.App(_1, Some(mLessThan), args, commas, mGreaterThan, false, unionRanges _1.Range mWhole) + ) +# 3921 "..\pars.fsy" + : 'atomType)); +# 13892 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3923 "..\pars.fsy" + SynType.LongIdentApp(_1, _3, None, [], [], None, unionRanges (rhs parseState 1) _3.Range) + ) +# 3923 "..\pars.fsy" + : 'atomType)); +# 13904 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'atomType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : range * range option * Ast.SynType list * range list * range)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3925 "..\pars.fsy" + let mLessThan,mGreaterThan,args,commas,mWhole = _4 + SynType.LongIdentApp(_1, _3, Some(mLessThan), args, commas, mGreaterThan, unionRanges _1.Range mWhole) + ) +# 3925 "..\pars.fsy" + : 'atomType)); +# 13918 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'appTypeCon)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3928 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsExpectedNameAfterToken()) + _1 + ) +# 3928 "..\pars.fsy" + : 'atomType)); +# 13931 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : range * range option * bool * Ast.SynType list * range list * range)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3934 "..\pars.fsy" + let mLessThan, mGreaterThan, parsedOk, args, commas, mAll = _1 + if parsedOk then // if someone has "foo + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : range * range option * bool * Ast.SynType list * range list * range)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3939 "..\pars.fsy" + let mLessThan, mGreaterThan, _, args, commas, mAll = _2 + mLessThan, mGreaterThan, args, commas, mAll + ) +# 3939 "..\pars.fsy" + : range * range option * Ast.SynType list * range list * range)); +# 13957 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActualOrDummyIfEmpty)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActualOrDummyIfEmpty)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgListElements)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3944 "..\pars.fsy" + let typeArgs, commas = _5 + (rhs parseState 1), Some(rhs parseState 6), true, (_2 :: _4 :: List.rev typeArgs), (rhs parseState 3)::(List.rev commas), lhs parseState + ) +# 3944 "..\pars.fsy" + : range * range option * bool * Ast.SynType list * range list * range)); +# 13973 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActualOrDummyIfEmpty)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActualOrDummyIfEmpty)) in + let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgListElements)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3947 "..\pars.fsy" + if not _6 then + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedEndOfFileTypeArgs()) + else + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsMissingGreaterThan()) + let typeArgs, commas = _5 + let nextToken = rhs parseState 6 + let zeroWidthAtStartOfNextToken = nextToken.StartRange + (rhs parseState 1), None, false, (_2 :: _4 :: List.rev typeArgs), (rhs parseState 3)::(List.rev commas), unionRanges (rhs parseState 1) zeroWidthAtStartOfNextToken + ) +# 3947 "..\pars.fsy" + : range * range option * bool * Ast.SynType list * range list * range)); +# 13995 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActualOrDummyIfEmpty)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3957 "..\pars.fsy" + if not _4 then reportParseErrorAt (rhs parseState 4) (FSComp.SR.parsMissingTypeArgs()) + let nextToken = rhs parseState 4 + let zeroWidthAtStartOfNextToken = nextToken.StartRange + (rhs parseState 1), None, false, [_2], [rhs parseState 3], unionRanges (rhs parseState 1) zeroWidthAtStartOfNextToken + ) +# 3957 "..\pars.fsy" + : range * range option * bool * Ast.SynType list * range list * range)); +# 14011 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActual)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3963 "..\pars.fsy" + (rhs parseState 1), Some(rhs parseState 3), true, [_2], [], lhs parseState + ) +# 3963 "..\pars.fsy" + : range * range option * bool * Ast.SynType list * range list * range)); +# 14024 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActual)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3965 "..\pars.fsy" + if not _3 then + reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsUnexpectedEndOfFileTypeArgs()) + else + reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsMissingGreaterThan()) + (rhs parseState 1), None, false, [_2], [], (rhs2 parseState 1 2) + ) +# 3965 "..\pars.fsy" + : range * range option * bool * Ast.SynType list * range list * range)); +# 14041 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3972 "..\pars.fsy" + (rhs parseState 1), Some(rhs parseState 2), true, [], [], lhs parseState + ) +# 3972 "..\pars.fsy" + : range * range option * bool * Ast.SynType list * range list * range)); +# 14053 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3974 "..\pars.fsy" + if not _2 then + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsExpectedTypeAfterToken()) + else + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsMissingTypeArgs()) + let nextToken = rhs parseState 2 + let zeroWidthAtStartOfNextToken = nextToken.StartRange + (rhs parseState 1), None, false, [], [], unionRanges (rhs parseState 1) zeroWidthAtStartOfNextToken + ) +# 3974 "..\pars.fsy" + : range * range option * bool * Ast.SynType list * range list * range)); +# 14071 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3984 "..\pars.fsy" + _1 + ) +# 3984 "..\pars.fsy" + : 'typeArgActual)); +# 14082 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3986 "..\pars.fsy" + SynType.StaticConstantNamed(_1, _3, unionRanges _1.Range _3.Range) + ) +# 3986 "..\pars.fsy" + : 'typeArgActual)); +# 14094 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynType)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3988 "..\pars.fsy" + reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsMissingTypeArgs()) + let dummy = SynType.StaticConstant(SynConst.Int32(0), rhs parseState 2) + SynType.StaticConstantNamed(_1, dummy, (rhs2 parseState 1 2)) + + ) +# 3988 "..\pars.fsy" + : 'typeArgActual)); +# 14108 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'typeArgActual)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3995 "..\pars.fsy" + _1 + ) +# 3995 "..\pars.fsy" + : 'typeArgActualOrDummyIfEmpty)); +# 14119 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'dummyTypeArg)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 3997 "..\pars.fsy" + reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsMissingTypeArgs()) + _1 + ) +# 3997 "..\pars.fsy" + : 'typeArgActualOrDummyIfEmpty)); +# 14131 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4002 "..\pars.fsy" + + let m = rhs parseState 1 + let dummyStatVal = SynType.StaticConstant(SynConst.Int32(0), m) + let dummyName = SynType.LongIdent(LongIdentWithDots([ident("",m)],[])) + let dummyTypeArg = SynType.StaticConstantNamed(dummyName, dummyStatVal, m) + dummyTypeArg + ) +# 4002 "..\pars.fsy" + : 'dummyTypeArg)); +# 14146 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4012 "..\pars.fsy" + _2 + ) +# 4012 "..\pars.fsy" + : 'measureTypeArg)); +# 14159 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4014 "..\pars.fsy" + SynMeasure.Anon (lhs parseState) + ) +# 4014 "..\pars.fsy" + : 'measureTypeArg)); +# 14171 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4018 "..\pars.fsy" + SynMeasure.Named(_1.Lid, _1.Range) + ) +# 4018 "..\pars.fsy" + : 'measureTypeAtom)); +# 14182 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.SynTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4021 "..\pars.fsy" + SynMeasure.Var(_1, lhs parseState) + ) +# 4021 "..\pars.fsy" + : 'measureTypeAtom)); +# 14193 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4024 "..\pars.fsy" + _2 + ) +# 4024 "..\pars.fsy" + : 'measureTypeAtom)); +# 14205 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeAtom)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4028 "..\pars.fsy" + _1 + ) +# 4028 "..\pars.fsy" + : 'measureTypePower)); +# 14216 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeAtom)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : int32 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4031 "..\pars.fsy" + if _2 <> "^" && _2 <> "^-" then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnexpectedOperatorForUnitOfMeasure()); + if _2 = "^-" then SynMeasure.Power(_1, - (fst _3), lhs parseState) + else SynMeasure.Power(_1, fst _3, lhs parseState) + ) +# 4031 "..\pars.fsy" + : 'measureTypePower)); +# 14231 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeAtom)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : int32 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4036 "..\pars.fsy" + if _2 <> "^" then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnexpectedOperatorForUnitOfMeasure()); + SynMeasure.Power(_1, - (fst _4), lhs parseState) + ) +# 4036 "..\pars.fsy" + : 'measureTypePower)); +# 14245 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : int32 * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4040 "..\pars.fsy" + if fst _1 <> 1 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedIntegerLiteralForUnitOfMeasure()); + SynMeasure.One + ) +# 4040 "..\pars.fsy" + : 'measureTypePower)); +# 14257 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypePower)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4045 "..\pars.fsy" + [_1] + ) +# 4045 "..\pars.fsy" + : 'measureTypeSeq)); +# 14268 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypePower)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeSeq)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4047 "..\pars.fsy" + _1 :: _2 + ) +# 4047 "..\pars.fsy" + : 'measureTypeSeq)); +# 14280 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeSeq)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4051 "..\pars.fsy" + SynMeasure.Seq(_1, lhs parseState) + ) +# 4051 "..\pars.fsy" + : 'measureTypeExpr)); +# 14291 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeExpr)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4053 "..\pars.fsy" + SynMeasure.Product(_1, _3, lhs parseState) + ) +# 4053 "..\pars.fsy" + : 'measureTypeExpr)); +# 14303 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeExpr)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4055 "..\pars.fsy" + if _2 <> "*" && _2 <> "/" then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnexpectedOperatorForUnitOfMeasure()); + if _2 = "*" then SynMeasure.Product(_1, _3, lhs parseState) + else SynMeasure.Divide(_1, _3, lhs parseState) + ) +# 4055 "..\pars.fsy" + : 'measureTypeExpr)); +# 14318 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'measureTypeExpr)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4059 "..\pars.fsy" + if _1 <> "/" then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedOperatorForUnitOfMeasure()); + SynMeasure.Divide(SynMeasure.One, _2, lhs parseState) + ) +# 4059 "..\pars.fsy" + : 'measureTypeExpr)); +# 14331 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4064 "..\pars.fsy" + let id = mkSynId (lhs parseState) (_2).idText + Typar(id ,NoStaticReq,false) + ) +# 4064 "..\pars.fsy" + : Ast.SynTypar)); +# 14343 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'staticallyKnownHeadTypar)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4067 "..\pars.fsy" + _1 + ) +# 4067 "..\pars.fsy" + : Ast.SynTypar)); +# 14354 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4071 "..\pars.fsy" + if _1 <> "^" then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnexpectedTypeParameter()); + Typar(_2,HeadTypeStaticReq,false) + ) +# 4071 "..\pars.fsy" + : 'staticallyKnownHeadTypar)); +# 14367 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4078 "..\pars.fsy" + ident(_1,rhs parseState 1) + ) +# 4078 "..\pars.fsy" + : Ast.Ident)); +# 14378 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4082 "..\pars.fsy" + LongIdentWithDots([ident(MangledGlobalName,rhs parseState 1)],[]) + ) +# 4082 "..\pars.fsy" + : Ast.LongIdentWithDots)); +# 14388 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4084 "..\pars.fsy" + LongIdentWithDots([_1],[]) + ) +# 4084 "..\pars.fsy" + : Ast.LongIdentWithDots)); +# 14399 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4086 "..\pars.fsy" + let (LongIdentWithDots(lid,dotms)) = _1 in LongIdentWithDots(lid @ [_3], dotms @ [rhs parseState 2]) + ) +# 4086 "..\pars.fsy" + : Ast.LongIdentWithDots)); +# 14411 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ends_coming_soon_or_recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4088 "..\pars.fsy" + if not _3 then reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsExpectedNameAfterToken()) + let (LongIdentWithDots(lid,dotms)) = _1 in LongIdentWithDots(lid, dotms @ [rhs parseState 2]) + ) +# 4088 "..\pars.fsy" + : Ast.LongIdentWithDots)); +# 14424 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'operatorName)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4093 "..\pars.fsy" + ident(CompileOpName _2,rhs parseState 2) + ) +# 4093 "..\pars.fsy" + : 'opName)); +# 14436 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4095 "..\pars.fsy" + reportParseErrorAt (lhs parseState) (FSComp.SR.parsErrorParsingAsOperatorName()); ident(CompileOpName "****",rhs parseState 2) + ) +# 4095 "..\pars.fsy" + : 'opName)); +# 14447 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4097 "..\pars.fsy" + ident(CompileOpName "*",rhs parseState 1) + ) +# 4097 "..\pars.fsy" + : 'opName)); +# 14457 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'barNames)) in + let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4101 "..\pars.fsy" + let text = ("|"^String.concat "|" (List.rev _2) ^ "|") + ident(text,rhs2 parseState 2 3) + ) +# 4101 "..\pars.fsy" + : 'opName)); +# 14470 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'barNames)) in + let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4105 "..\pars.fsy" + let text = ("|"^String.concat "|" (List.rev _2) ^ "|_|" ) + ident(text,rhs2 parseState 2 5) + ) +# 4105 "..\pars.fsy" + : 'opName)); +# 14483 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4110 "..\pars.fsy" + if not (IsValidPrefixOperatorDefinitionName _1) then + reportParseErrorAt (lhs parseState) (FSComp.SR.parsInvalidPrefixOperatorDefinition()); + _1 + ) +# 4110 "..\pars.fsy" + : 'operatorName)); +# 14496 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4113 "..\pars.fsy" + _1 + ) +# 4113 "..\pars.fsy" + : 'operatorName)); +# 14507 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4114 "..\pars.fsy" + _1 + ) +# 4114 "..\pars.fsy" + : 'operatorName)); +# 14518 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4115 "..\pars.fsy" + _1 + ) +# 4115 "..\pars.fsy" + : 'operatorName)); +# 14529 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4116 "..\pars.fsy" + _1 + ) +# 4116 "..\pars.fsy" + : 'operatorName)); +# 14540 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4117 "..\pars.fsy" + _1 + ) +# 4117 "..\pars.fsy" + : 'operatorName)); +# 14551 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4118 "..\pars.fsy" + _1 + ) +# 4118 "..\pars.fsy" + : 'operatorName)); +# 14562 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4119 "..\pars.fsy" + _1 + ) +# 4119 "..\pars.fsy" + : 'operatorName)); +# 14573 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4120 "..\pars.fsy" + "$" + ) +# 4120 "..\pars.fsy" + : 'operatorName)); +# 14583 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4121 "..\pars.fsy" + _1 + ) +# 4121 "..\pars.fsy" + : 'operatorName)); +# 14594 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4122 "..\pars.fsy" + "-" + ) +# 4122 "..\pars.fsy" + : 'operatorName)); +# 14604 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4123 "..\pars.fsy" + "*" + ) +# 4123 "..\pars.fsy" + : 'operatorName)); +# 14614 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4124 "..\pars.fsy" + "=" + ) +# 4124 "..\pars.fsy" + : 'operatorName)); +# 14624 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4125 "..\pars.fsy" + "or" + ) +# 4125 "..\pars.fsy" + : 'operatorName)); +# 14634 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4126 "..\pars.fsy" + "<" + ) +# 4126 "..\pars.fsy" + : 'operatorName)); +# 14645 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4127 "..\pars.fsy" + ">" + ) +# 4127 "..\pars.fsy" + : 'operatorName)); +# 14656 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4128 "..\pars.fsy" + "?" + ) +# 4128 "..\pars.fsy" + : 'operatorName)); +# 14666 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4129 "..\pars.fsy" + "&" + ) +# 4129 "..\pars.fsy" + : 'operatorName)); +# 14676 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4130 "..\pars.fsy" + "&&" + ) +# 4130 "..\pars.fsy" + : 'operatorName)); +# 14686 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4131 "..\pars.fsy" + "||" + ) +# 4131 "..\pars.fsy" + : 'operatorName)); +# 14696 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4132 "..\pars.fsy" + ":=" + ) +# 4132 "..\pars.fsy" + : 'operatorName)); +# 14706 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4134 "..\pars.fsy" + if _1 <> ".[]" && _1 <> ".()" && _1 <> ".()<-" then + deprecatedOperator (lhs parseState); + _1 + ) +# 4134 "..\pars.fsy" + : 'operatorName)); +# 14719 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4137 "..\pars.fsy" + _1 + ) +# 4137 "..\pars.fsy" + : 'operatorName)); +# 14730 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4138 "..\pars.fsy" + ".." + ) +# 4138 "..\pars.fsy" + : 'operatorName)); +# 14740 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4139 "..\pars.fsy" + ".. .." + ) +# 4139 "..\pars.fsy" + : 'operatorName)); +# 14750 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string * bool)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : string * bool)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4141 "..\pars.fsy" + if _1 <> _2 then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsMismatchedQuotationName(fst _1)); + fst _1 + ) +# 4141 "..\pars.fsy" + : 'operatorName)); +# 14763 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4146 "..\pars.fsy" + if not (String.isUpper _1) then reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsActivePatternCaseMustBeginWithUpperCase()); + _1 + ) +# 4146 "..\pars.fsy" + : 'barName)); +# 14775 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'barName)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4151 "..\pars.fsy" + [_2] + ) +# 4151 "..\pars.fsy" + : 'barNames)); +# 14786 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'barNames)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'barName)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4153 "..\pars.fsy" + _3 :: _1 + ) +# 4153 "..\pars.fsy" + : 'barNames)); +# 14798 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4157 "..\pars.fsy" + _1 + ) +# 4157 "..\pars.fsy" + : 'identOrOp)); +# 14809 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opName)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4159 "..\pars.fsy" + _1 + ) +# 4159 "..\pars.fsy" + : 'identOrOp)); +# 14820 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4165 "..\pars.fsy" + LongIdentWithDots([_1],[]) + ) +# 4165 "..\pars.fsy" + : Ast.LongIdentWithDots)); +# 14831 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'opName)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4167 "..\pars.fsy" + LongIdentWithDots([_1],[]) + ) +# 4167 "..\pars.fsy" + : Ast.LongIdentWithDots)); +# 14842 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.LongIdentWithDots)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4169 "..\pars.fsy" + let (LongIdentWithDots(lid,dotms)) = _3 in LongIdentWithDots(_1 :: lid, rhs parseState 2 :: dotms) + ) +# 4169 "..\pars.fsy" + : Ast.LongIdentWithDots)); +# 14854 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Ident)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4171 "..\pars.fsy" + (* silent recovery *) LongIdentWithDots([_1],[rhs parseState 2]) + ) +# 4171 "..\pars.fsy" + : Ast.LongIdentWithDots)); +# 14865 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'identOrOp)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4176 "..\pars.fsy" + _1 + ) +# 4176 "..\pars.fsy" + : 'nameop)); +# 14876 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4179 "..\pars.fsy" + + ) +# 4179 "..\pars.fsy" + : 'topSeparator)); +# 14886 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4180 "..\pars.fsy" + + ) +# 4180 "..\pars.fsy" + : 'topSeparator)); +# 14896 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4181 "..\pars.fsy" + + ) +# 4181 "..\pars.fsy" + : 'topSeparator)); +# 14906 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topSeparator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4184 "..\pars.fsy" + + ) +# 4184 "..\pars.fsy" + : 'topSeparators)); +# 14917 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topSeparator)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'topSeparators)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4185 "..\pars.fsy" + + ) +# 4185 "..\pars.fsy" + : 'topSeparators)); +# 14929 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4188 "..\pars.fsy" + + ) +# 4188 "..\pars.fsy" + : 'interactiveSeparator)); +# 14939 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4189 "..\pars.fsy" + + ) +# 4189 "..\pars.fsy" + : 'interactiveSeparator)); +# 14949 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveSeparator)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4192 "..\pars.fsy" + + ) +# 4192 "..\pars.fsy" + : 'interactiveSeparators)); +# 14960 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveSeparator)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveSeparators)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4193 "..\pars.fsy" + + ) +# 4193 "..\pars.fsy" + : 'interactiveSeparators)); +# 14972 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'interactiveSeparator)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_interactiveSeparators)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4196 "..\pars.fsy" + + ) +# 4196 "..\pars.fsy" + : 'opt_interactiveSeparators)); +# 14984 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4197 "..\pars.fsy" + + ) +# 4197 "..\pars.fsy" + : 'opt_interactiveSeparators)); +# 14994 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'topSeparator)) in + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'opt_topSeparators)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4200 "..\pars.fsy" + + ) +# 4200 "..\pars.fsy" + : 'opt_topSeparators)); +# 15006 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4201 "..\pars.fsy" + + ) +# 4201 "..\pars.fsy" + : 'opt_topSeparators)); +# 15016 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4204 "..\pars.fsy" + + ) +# 4204 "..\pars.fsy" + : 'seps)); +# 15026 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4205 "..\pars.fsy" + + ) +# 4205 "..\pars.fsy" + : 'seps)); +# 15036 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4206 "..\pars.fsy" + + ) +# 4206 "..\pars.fsy" + : 'seps)); +# 15046 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4207 "..\pars.fsy" + + ) +# 4207 "..\pars.fsy" + : 'seps)); +# 15056 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4212 "..\pars.fsy" + + ) +# 4212 "..\pars.fsy" + : 'declEnd)); +# 15066 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4214 "..\pars.fsy" + + ) +# 4214 "..\pars.fsy" + : 'declEnd)); +# 15076 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4216 "..\pars.fsy" + + ) +# 4216 "..\pars.fsy" + : 'declEnd)); +# 15086 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4221 "..\pars.fsy" + + ) +# 4221 "..\pars.fsy" + : 'opt_declEnd)); +# 15096 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4223 "..\pars.fsy" + + ) +# 4223 "..\pars.fsy" + : 'opt_declEnd)); +# 15106 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4225 "..\pars.fsy" + + ) +# 4225 "..\pars.fsy" + : 'opt_declEnd)); +# 15116 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4227 "..\pars.fsy" + + ) +# 4227 "..\pars.fsy" + : 'opt_declEnd)); +# 15126 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4230 "..\pars.fsy" + + ) +# 4230 "..\pars.fsy" + : 'opt_ODECLEND)); +# 15136 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4231 "..\pars.fsy" + + ) +# 4231 "..\pars.fsy" + : 'opt_ODECLEND)); +# 15146 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4234 "..\pars.fsy" + deprecatedWithError (FSComp.SR.parsNoEqualShouldFollowNamespace()) (lhs parseState); () + ) +# 4234 "..\pars.fsy" + : 'deprecated_opt_equals)); +# 15156 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4235 "..\pars.fsy" + + ) +# 4235 "..\pars.fsy" + : 'deprecated_opt_equals)); +# 15166 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4238 "..\pars.fsy" + + ) +# 4238 "..\pars.fsy" + : 'opt_OBLOCKSEP)); +# 15176 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4239 "..\pars.fsy" + + ) +# 4239 "..\pars.fsy" + : 'opt_OBLOCKSEP)); +# 15186 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'seps)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4242 "..\pars.fsy" + + ) +# 4242 "..\pars.fsy" + : 'opt_seps)); +# 15197 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4243 "..\pars.fsy" + + ) +# 4243 "..\pars.fsy" + : 'opt_seps)); +# 15207 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4246 "..\pars.fsy" + true + ) +# 4246 "..\pars.fsy" + : 'opt_rec)); +# 15217 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4247 "..\pars.fsy" + false + ) +# 4247 "..\pars.fsy" + : 'opt_rec)); +# 15227 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4250 "..\pars.fsy" + + ) +# 4250 "..\pars.fsy" + : 'opt_bar)); +# 15237 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4251 "..\pars.fsy" + + ) +# 4251 "..\pars.fsy" + : 'opt_bar)); +# 15247 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4254 "..\pars.fsy" + true + ) +# 4254 "..\pars.fsy" + : 'opt_inline)); +# 15257 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4255 "..\pars.fsy" + false + ) +# 4255 "..\pars.fsy" + : 'opt_inline)); +# 15267 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4258 "..\pars.fsy" + true + ) +# 4258 "..\pars.fsy" + : 'opt_mutable)); +# 15277 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4259 "..\pars.fsy" + false + ) +# 4259 "..\pars.fsy" + : 'opt_mutable)); +# 15287 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4262 "..\pars.fsy" + + ) +# 4262 "..\pars.fsy" + : 'doToken)); +# 15297 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4263 "..\pars.fsy" + + ) +# 4263 "..\pars.fsy" + : 'doToken)); +# 15307 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4266 "..\pars.fsy" + + ) +# 4266 "..\pars.fsy" + : 'doneDeclEnd)); +# 15317 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4267 "..\pars.fsy" + + ) +# 4267 "..\pars.fsy" + : 'doneDeclEnd)); +# 15327 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4270 "..\pars.fsy" + mlCompatWarning (FSComp.SR.parsSyntaxModuleStructEndDeprecated()) (lhs parseState); + ) +# 4270 "..\pars.fsy" + : 'structOrBegin)); +# 15337 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4271 "..\pars.fsy" + + ) +# 4271 "..\pars.fsy" + : 'structOrBegin)); +# 15347 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4274 "..\pars.fsy" + mlCompatWarning (FSComp.SR.parsSyntaxModuleSigEndDeprecated()) (lhs parseState); + ) +# 4274 "..\pars.fsy" + : 'sigOrBegin)); +# 15357 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4275 "..\pars.fsy" + + ) +# 4275 "..\pars.fsy" + : 'sigOrBegin)); +# 15367 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4278 "..\pars.fsy" + mlCompatWarning (FSComp.SR.parsSyntaxModuleSigEndDeprecated()) (lhs parseState); + ) +# 4278 "..\pars.fsy" + : 'colonOrEquals)); +# 15377 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4279 "..\pars.fsy" + + ) +# 4279 "..\pars.fsy" + : 'colonOrEquals)); +# 15387 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4282 "..\pars.fsy" + + ) +# 4282 "..\pars.fsy" + : 'opt_HASH)); +# 15397 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4285 "..\pars.fsy" + + ) +# 4285 "..\pars.fsy" + : 'opt_HIGH_PRECEDENCE_APP)); +# 15407 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4286 "..\pars.fsy" + + ) +# 4286 "..\pars.fsy" + : 'opt_HIGH_PRECEDENCE_APP)); +# 15417 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4287 "..\pars.fsy" + + ) +# 4287 "..\pars.fsy" + : 'opt_HIGH_PRECEDENCE_APP)); +# 15427 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4290 "..\pars.fsy" + + ) +# 4290 "..\pars.fsy" + : 'opt_HIGH_PRECEDENCE_TYAPP)); +# 15437 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4291 "..\pars.fsy" + + ) +# 4291 "..\pars.fsy" + : 'opt_HIGH_PRECEDENCE_TYAPP)); +# 15447 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'type_keyword)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4294 "..\pars.fsy" + + ) +# 4294 "..\pars.fsy" + : 'type_keyword)); +# 15458 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4295 "..\pars.fsy" + + ) +# 4295 "..\pars.fsy" + : 'type_keyword)); +# 15468 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4296 "..\pars.fsy" + + ) +# 4296 "..\pars.fsy" + : 'type_keyword)); +# 15478 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'module_keyword)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4299 "..\pars.fsy" + + ) +# 4299 "..\pars.fsy" + : 'module_keyword)); +# 15489 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4300 "..\pars.fsy" + + ) +# 4300 "..\pars.fsy" + : 'module_keyword)); +# 15499 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4301 "..\pars.fsy" + + ) +# 4301 "..\pars.fsy" + : 'module_keyword)); +# 15509 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'rbrace)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4304 "..\pars.fsy" + + ) +# 4304 "..\pars.fsy" + : 'rbrace)); +# 15520 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4305 "..\pars.fsy" + + ) +# 4305 "..\pars.fsy" + : 'rbrace)); +# 15530 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4306 "..\pars.fsy" + + ) +# 4306 "..\pars.fsy" + : 'rbrace)); +# 15540 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'rparen)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4309 "..\pars.fsy" + + ) +# 4309 "..\pars.fsy" + : 'rparen)); +# 15551 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4310 "..\pars.fsy" + + ) +# 4310 "..\pars.fsy" + : 'rparen)); +# 15561 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4311 "..\pars.fsy" + + ) +# 4311 "..\pars.fsy" + : 'rparen)); +# 15571 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'oblockend)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4314 "..\pars.fsy" + + ) +# 4314 "..\pars.fsy" + : 'oblockend)); +# 15582 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4315 "..\pars.fsy" + + ) +# 4315 "..\pars.fsy" + : 'oblockend)); +# 15592 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4316 "..\pars.fsy" + + ) +# 4316 "..\pars.fsy" + : 'oblockend)); +# 15602 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4319 "..\pars.fsy" + false + ) +# 4319 "..\pars.fsy" + : 'ends_other_than_rparen_coming_soon_or_recover)); +# 15612 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4320 "..\pars.fsy" + false + ) +# 4320 "..\pars.fsy" + : 'ends_other_than_rparen_coming_soon_or_recover)); +# 15622 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4321 "..\pars.fsy" + false + ) +# 4321 "..\pars.fsy" + : 'ends_other_than_rparen_coming_soon_or_recover)); +# 15632 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4322 "..\pars.fsy" + false + ) +# 4322 "..\pars.fsy" + : 'ends_other_than_rparen_coming_soon_or_recover)); +# 15642 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4323 "..\pars.fsy" + _1 + ) +# 4323 "..\pars.fsy" + : 'ends_other_than_rparen_coming_soon_or_recover)); +# 15653 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4326 "..\pars.fsy" + false + ) +# 4326 "..\pars.fsy" + : 'ends_coming_soon_or_recover)); +# 15663 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4327 "..\pars.fsy" + false + ) +# 4327 "..\pars.fsy" + : 'ends_coming_soon_or_recover)); +# 15673 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4328 "..\pars.fsy" + false + ) +# 4328 "..\pars.fsy" + : 'ends_coming_soon_or_recover)); +# 15683 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4329 "..\pars.fsy" + false + ) +# 4329 "..\pars.fsy" + : 'ends_coming_soon_or_recover)); +# 15693 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4330 "..\pars.fsy" + false + ) +# 4330 "..\pars.fsy" + : 'ends_coming_soon_or_recover)); +# 15703 "pars.fs" + (fun (parseState : Internal.Utilities.Text.Parsing.IParseState) -> + let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'recover)) in + Microsoft.FSharp.Core.Operators.box + ( + ( +# 4331 "..\pars.fsy" + _1 + ) +# 4331 "..\pars.fsy" + : 'ends_coming_soon_or_recover)); +|] +# 15715 "pars.fs" +let tables () : Internal.Utilities.Text.Parsing.Tables<_> = + { reductions= _fsyacc_reductions (); + endOfInputTag = _fsyacc_endOfInputTag; + tagOfToken = tagOfToken; + dataOfToken = _fsyacc_dataOfToken; + actionTableElements = _fsyacc_actionTableElements; + actionTableRowOffsets = _fsyacc_actionTableRowOffsets; + stateToProdIdxsTableElements = _fsyacc_stateToProdIdxsTableElements; + stateToProdIdxsTableRowOffsets = _fsyacc_stateToProdIdxsTableRowOffsets; + reductionSymbolCounts = _fsyacc_reductionSymbolCounts; + immediateActions = _fsyacc_immediateActions; + gotos = _fsyacc_gotos; + sparseGotoTableRowOffsets = _fsyacc_sparseGotoTableRowOffsets; + tagOfErrorTerminal = _fsyacc_tagOfErrorTerminal; + parseError = (fun (ctxt:Internal.Utilities.Text.Parsing.ParseErrorContext<_>) -> + match parse_error_rich with + | Some f -> f ctxt + | None -> parse_error ctxt.Message); + numTerminals = 195; + productionToNonTerminalTable = _fsyacc_productionToNonTerminalTable } +let engine lexer lexbuf startState = (tables ()).Interpret(lexer, lexbuf, startState) +let signatureFile lexer lexbuf : Ast.ParsedSigFile = + Microsoft.FSharp.Core.Operators.unbox ((tables ()).Interpret(lexer, lexbuf, 0)) +let implementationFile lexer lexbuf : Ast.ParsedImplFile = + Microsoft.FSharp.Core.Operators.unbox ((tables ()).Interpret(lexer, lexbuf, 2)) +let interaction lexer lexbuf : Ast.ParsedFsiInteraction = + Microsoft.FSharp.Core.Operators.unbox ((tables ()).Interpret(lexer, lexbuf, 4)) diff --git a/src/fsharp/FSharp.Compiler-proto/pars.fsi b/src/fsharp/FSharp.Compiler-proto/pars.fsi new file mode 100644 index 0000000..f3884b6 --- /dev/null +++ b/src/fsharp/FSharp.Compiler-proto/pars.fsi @@ -0,0 +1,718 @@ +// Signature file for parser generated by fsyacc +module internal Microsoft.FSharp.Compiler.Parser +open Microsoft.FSharp.Compiler +type token = + | HASH_IF of (range * string * Ast.LexerWhitespaceContinuation) + | HASH_ELSE of (range * string * Ast.LexerWhitespaceContinuation) + | HASH_ENDIF of (range * string * Ast.LexerWhitespaceContinuation) + | COMMENT of (Ast.LexerWhitespaceContinuation) + | WHITESPACE of (Ast.LexerWhitespaceContinuation) + | HASH_LINE of (Ast.LexerWhitespaceContinuation) + | HASH_LIGHT of (Ast.LexerWhitespaceContinuation) + | INACTIVECODE of (Ast.LexerWhitespaceContinuation) + | LINE_COMMENT of (Ast.LexerWhitespaceContinuation) + | STRING_TEXT of (Ast.LexerWhitespaceContinuation) + | EOF of (Ast.LexerWhitespaceContinuation) + | LEX_FAILURE of (string) + | ODUMMY of (token) + | OINTERFACE_MEMBER + | OBLOCKEND + | OBLOCKEND_COMING_SOON + | OBLOCKEND_IS_HERE + | ORIGHT_BLOCK_END + | ODECLEND + | OEND + | OBLOCKSEP + | OBLOCKBEGIN + | ORESET + | OFUN + | OFUNCTION + | OWITH + | OELSE + | OTHEN + | ODO_BANG + | ODO + | OBINDER of (string) + | OLET of (bool) + | HIGH_PRECEDENCE_TYAPP + | HIGH_PRECEDENCE_PAREN_APP + | HIGH_PRECEDENCE_BRACK_APP + | TYPE_COMING_SOON + | TYPE_IS_HERE + | MODULE_COMING_SOON + | MODULE_IS_HERE + | EXTERN + | VOID + | PUBLIC + | PRIVATE + | INTERNAL + | GLOBAL + | STATIC + | MEMBER + | CLASS + | ABSTRACT + | OVERRIDE + | DEFAULT + | CONSTRUCTOR + | INHERIT + | GREATER_RBRACK + | STRUCT + | SIG + | BAR + | RBRACK + | RBRACE + | RBRACE_COMING_SOON + | RBRACE_IS_HERE + | MINUS + | DOLLAR + | LBRACE_LESS + | BAR_RBRACK + | GREATER_RBRACE + | UNDERSCORE + | SEMICOLON_SEMICOLON + | LARROW + | EQUALS + | LBRACK + | LBRACK_BAR + | LBRACK_LESS + | LBRACE + | QMARK + | QMARK_QMARK + | DOT + | COLON + | COLON_COLON + | COLON_GREATER + | COLON_QMARK_GREATER + | COLON_QMARK + | COLON_EQUALS + | SEMICOLON + | WHEN + | WHILE + | WITH + | HASH + | AMP + | AMP_AMP + | QUOTE + | LPAREN + | RPAREN + | RPAREN_COMING_SOON + | RPAREN_IS_HERE + | STAR + | COMMA + | RARROW + | GREATER_BAR_RBRACK + | LPAREN_STAR_RPAREN + | OPEN + | OR + | REC + | THEN + | TO + | TRUE + | TRY + | TYPE + | VAL + | INLINE + | INTERFACE + | INSTANCE + | CONST + | LAZY + | OLAZY + | MATCH + | MUTABLE + | NEW + | OF + | EXCEPTION + | FALSE + | FOR + | FUN + | FUNCTION + | IF + | IN + | JOIN_IN + | FINALLY + | DO_BANG + | AND + | AS + | ASSERT + | OASSERT + | ASR + | BEGIN + | DO + | DONE + | DOWNTO + | ELSE + | ELIF + | END + | DOT_DOT + | BAR_BAR + | UPCAST + | DOWNCAST + | NULL + | RESERVED + | MODULE + | NAMESPACE + | DELEGATE + | CONSTRAINT + | BASE + | LQUOTE of (string * bool) + | RQUOTE of (string * bool) + | RQUOTE_DOT of (string * bool) + | PERCENT_OP of (string) + | BINDER of (string) + | LESS of (bool) + | GREATER of (bool) + | LET of (bool) + | YIELD of (bool) + | YIELD_BANG of (bool) + | BIGNUM of ((string * string)) + | DECIMAL of (System.Decimal) + | CHAR of (char) + | IEEE64 of (double) + | IEEE32 of (single) + | NATIVEINT of (int64) + | UNATIVEINT of (uint64) + | UINT64 of (uint64) + | UINT32 of (uint32) + | UINT16 of (uint16) + | UINT8 of (byte) + | INT64 of (int64 * bool) + | INT32 of (int32 * bool) + | INT32_DOT_DOT of (int32 * bool) + | INT16 of (int16 * bool) + | INT8 of (sbyte * bool) + | FUNKY_OPERATOR_NAME of (string) + | ADJACENT_PREFIX_OP of (string) + | PLUS_MINUS_OP of (string) + | INFIX_AMP_OP of (string) + | INFIX_STAR_DIV_MOD_OP of (string) + | PREFIX_OP of (string) + | INFIX_BAR_OP of (string) + | INFIX_AT_HAT_OP of (string) + | INFIX_COMPARE_OP of (string) + | INFIX_STAR_STAR_OP of (string) + | IDENT of (string) + | KEYWORD_STRING of (string) + | STRING of (string) + | BYTEARRAY of (byte[]) +type tokenId = + | TOKEN_HASH_IF + | TOKEN_HASH_ELSE + | TOKEN_HASH_ENDIF + | TOKEN_COMMENT + | TOKEN_WHITESPACE + | TOKEN_HASH_LINE + | TOKEN_HASH_LIGHT + | TOKEN_INACTIVECODE + | TOKEN_LINE_COMMENT + | TOKEN_STRING_TEXT + | TOKEN_EOF + | TOKEN_LEX_FAILURE + | TOKEN_ODUMMY + | TOKEN_OINTERFACE_MEMBER + | TOKEN_OBLOCKEND + | TOKEN_OBLOCKEND_COMING_SOON + | TOKEN_OBLOCKEND_IS_HERE + | TOKEN_ORIGHT_BLOCK_END + | TOKEN_ODECLEND + | TOKEN_OEND + | TOKEN_OBLOCKSEP + | TOKEN_OBLOCKBEGIN + | TOKEN_ORESET + | TOKEN_OFUN + | TOKEN_OFUNCTION + | TOKEN_OWITH + | TOKEN_OELSE + | TOKEN_OTHEN + | TOKEN_ODO_BANG + | TOKEN_ODO + | TOKEN_OBINDER + | TOKEN_OLET + | TOKEN_HIGH_PRECEDENCE_TYAPP + | TOKEN_HIGH_PRECEDENCE_PAREN_APP + | TOKEN_HIGH_PRECEDENCE_BRACK_APP + | TOKEN_TYPE_COMING_SOON + | TOKEN_TYPE_IS_HERE + | TOKEN_MODULE_COMING_SOON + | TOKEN_MODULE_IS_HERE + | TOKEN_EXTERN + | TOKEN_VOID + | TOKEN_PUBLIC + | TOKEN_PRIVATE + | TOKEN_INTERNAL + | TOKEN_GLOBAL + | TOKEN_STATIC + | TOKEN_MEMBER + | TOKEN_CLASS + | TOKEN_ABSTRACT + | TOKEN_OVERRIDE + | TOKEN_DEFAULT + | TOKEN_CONSTRUCTOR + | TOKEN_INHERIT + | TOKEN_GREATER_RBRACK + | TOKEN_STRUCT + | TOKEN_SIG + | TOKEN_BAR + | TOKEN_RBRACK + | TOKEN_RBRACE + | TOKEN_RBRACE_COMING_SOON + | TOKEN_RBRACE_IS_HERE + | TOKEN_MINUS + | TOKEN_DOLLAR + | TOKEN_LBRACE_LESS + | TOKEN_BAR_RBRACK + | TOKEN_GREATER_RBRACE + | TOKEN_UNDERSCORE + | TOKEN_SEMICOLON_SEMICOLON + | TOKEN_LARROW + | TOKEN_EQUALS + | TOKEN_LBRACK + | TOKEN_LBRACK_BAR + | TOKEN_LBRACK_LESS + | TOKEN_LBRACE + | TOKEN_QMARK + | TOKEN_QMARK_QMARK + | TOKEN_DOT + | TOKEN_COLON + | TOKEN_COLON_COLON + | TOKEN_COLON_GREATER + | TOKEN_COLON_QMARK_GREATER + | TOKEN_COLON_QMARK + | TOKEN_COLON_EQUALS + | TOKEN_SEMICOLON + | TOKEN_WHEN + | TOKEN_WHILE + | TOKEN_WITH + | TOKEN_HASH + | TOKEN_AMP + | TOKEN_AMP_AMP + | TOKEN_QUOTE + | TOKEN_LPAREN + | TOKEN_RPAREN + | TOKEN_RPAREN_COMING_SOON + | TOKEN_RPAREN_IS_HERE + | TOKEN_STAR + | TOKEN_COMMA + | TOKEN_RARROW + | TOKEN_GREATER_BAR_RBRACK + | TOKEN_LPAREN_STAR_RPAREN + | TOKEN_OPEN + | TOKEN_OR + | TOKEN_REC + | TOKEN_THEN + | TOKEN_TO + | TOKEN_TRUE + | TOKEN_TRY + | TOKEN_TYPE + | TOKEN_VAL + | TOKEN_INLINE + | TOKEN_INTERFACE + | TOKEN_INSTANCE + | TOKEN_CONST + | TOKEN_LAZY + | TOKEN_OLAZY + | TOKEN_MATCH + | TOKEN_MUTABLE + | TOKEN_NEW + | TOKEN_OF + | TOKEN_EXCEPTION + | TOKEN_FALSE + | TOKEN_FOR + | TOKEN_FUN + | TOKEN_FUNCTION + | TOKEN_IF + | TOKEN_IN + | TOKEN_JOIN_IN + | TOKEN_FINALLY + | TOKEN_DO_BANG + | TOKEN_AND + | TOKEN_AS + | TOKEN_ASSERT + | TOKEN_OASSERT + | TOKEN_ASR + | TOKEN_BEGIN + | TOKEN_DO + | TOKEN_DONE + | TOKEN_DOWNTO + | TOKEN_ELSE + | TOKEN_ELIF + | TOKEN_END + | TOKEN_DOT_DOT + | TOKEN_BAR_BAR + | TOKEN_UPCAST + | TOKEN_DOWNCAST + | TOKEN_NULL + | TOKEN_RESERVED + | TOKEN_MODULE + | TOKEN_NAMESPACE + | TOKEN_DELEGATE + | TOKEN_CONSTRAINT + | TOKEN_BASE + | TOKEN_LQUOTE + | TOKEN_RQUOTE + | TOKEN_RQUOTE_DOT + | TOKEN_PERCENT_OP + | TOKEN_BINDER + | TOKEN_LESS + | TOKEN_GREATER + | TOKEN_LET + | TOKEN_YIELD + | TOKEN_YIELD_BANG + | TOKEN_BIGNUM + | TOKEN_DECIMAL + | TOKEN_CHAR + | TOKEN_IEEE64 + | TOKEN_IEEE32 + | TOKEN_NATIVEINT + | TOKEN_UNATIVEINT + | TOKEN_UINT64 + | TOKEN_UINT32 + | TOKEN_UINT16 + | TOKEN_UINT8 + | TOKEN_INT64 + | TOKEN_INT32 + | TOKEN_INT32_DOT_DOT + | TOKEN_INT16 + | TOKEN_INT8 + | TOKEN_FUNKY_OPERATOR_NAME + | TOKEN_ADJACENT_PREFIX_OP + | TOKEN_PLUS_MINUS_OP + | TOKEN_INFIX_AMP_OP + | TOKEN_INFIX_STAR_DIV_MOD_OP + | TOKEN_PREFIX_OP + | TOKEN_INFIX_BAR_OP + | TOKEN_INFIX_AT_HAT_OP + | TOKEN_INFIX_COMPARE_OP + | TOKEN_INFIX_STAR_STAR_OP + | TOKEN_IDENT + | TOKEN_KEYWORD_STRING + | TOKEN_STRING + | TOKEN_BYTEARRAY + | TOKEN_end_of_input + | TOKEN_error +type nonTerminalId = + | NONTERM__startsignatureFile + | NONTERM__startimplementationFile + | NONTERM__startinteraction + | NONTERM_interaction + | NONTERM_hashDirective + | NONTERM_stringOrKeywordString + | NONTERM_hashDirectiveArg + | NONTERM_hashDirectiveArgs + | NONTERM_interactiveTerminator + | NONTERM_interactiveItemsTerminator + | NONTERM_interactiveModuleDefns + | NONTERM_interactiveExpr + | NONTERM_interactiveHash + | NONTERM_signatureFile + | NONTERM_implementationFile + | NONTERM_moduleIntro + | NONTERM_namespaceIntro + | NONTERM_fileNamespaceSpecs + | NONTERM_fileNamespaceSpecList + | NONTERM_fileNamespaceSpec + | NONTERM_fileNamespaceImpls + | NONTERM_fileNamespaceImplList + | NONTERM_fileNamespaceImpl + | NONTERM_fileModuleSpec + | NONTERM_fileModuleImpl + | NONTERM_moduleSpfnsPossiblyEmptyBlock + | NONTERM_moduleSpfnsPossiblyEmpty + | NONTERM_moduleSpfns + | NONTERM_moduleDefnsOrExprPossiblyEmptyOrBlock + | NONTERM_moduleDefnsOrExprPossiblyEmpty + | NONTERM_moduleDefnsOrExpr + | NONTERM_moduleDefns + | NONTERM_moduleDefnOrDirective + | NONTERM_moduleDefn + | NONTERM_namedModuleAbbrevBlock + | NONTERM_namedModuleDefnBlock + | NONTERM_wrappedNamedModuleDefn + | NONTERM_opt_signature + | NONTERM_tyconDefnAugmentation + | NONTERM_moduleSpfn + | NONTERM_valSpfn + | NONTERM_opt_literalValue + | NONTERM_moduleSpecBlock + | NONTERM_opt_attributes + | NONTERM_attributes + | NONTERM_attributeList + | NONTERM_attributeListElements + | NONTERM_attribute + | NONTERM_attributeTarget + | NONTERM_tyconSpfns + | NONTERM_tyconSpfnList + | NONTERM_tyconSpfn + | NONTERM_tyconSpfnRhsBlock + | NONTERM_tyconSpfnRhs + | NONTERM_tyconClassSpfn + | NONTERM_classSpfnBlockKindUnspecified + | NONTERM_classSpfnBlock + | NONTERM_classSpfnMembers + | NONTERM_classSpfnMembersAtLeastOne + | NONTERM_memberFlags + | NONTERM_memberSpecFlags + | NONTERM_classMemberSpfnGetSet + | NONTERM_classMemberSpfnGetSetElements + | NONTERM_classMemberSpfn + | NONTERM_typeNameInfo + | NONTERM_tyconDefnList + | NONTERM_tyconDefn + | NONTERM_tyconDefnRhsBlock + | NONTERM_tyconDefnRhs + | NONTERM_tyconClassDefn + | NONTERM_classDefnBlockKindUnspecified + | NONTERM_classDefnBlock + | NONTERM_classDefnMembers + | NONTERM_classDefnMembersAtLeastOne + | NONTERM_classDefnMemberGetSet + | NONTERM_classDefnMemberGetSetElements + | NONTERM_classDefnMemberGetSetElement + | NONTERM_memberCore + | NONTERM_abstractMemberFlags + | NONTERM_classDefnMember + | NONTERM_valDefnDecl + | NONTERM_autoPropsDefnDecl + | NONTERM_opt_typ + | NONTERM_atomicPatternLongIdent + | NONTERM_opt_access + | NONTERM_access + | NONTERM_opt_declVisibility + | NONTERM_opt_interfaceImplDefn + | NONTERM_opt_classDefn + | NONTERM_opt_classSpfn + | NONTERM_inheritsDefn + | NONTERM_optAsSpec + | NONTERM_asSpec + | NONTERM_optBaseSpec + | NONTERM_baseSpec + | NONTERM_objectImplementationBlock + | NONTERM_objectImplementationMembers + | NONTERM_objectImplementationMember + | NONTERM_memberOrOverride + | NONTERM_tyconDefnOrSpfnSimpleRepr + | NONTERM_braceFieldDeclList + | NONTERM_inlineAssemblyTyconRepr + | NONTERM_classOrInterfaceOrStruct + | NONTERM_interfaceMember + | NONTERM_tyconNameAndTyparDecls + | NONTERM_prefixTyparDecls + | NONTERM_prefixTyparDeclList + | NONTERM_typarDecl + | NONTERM_postfixTyparDecls + | NONTERM_explicitValTyparDeclsCore + | NONTERM_explicitValTyparDecls + | NONTERM_opt_explicitValTyparDecls + | NONTERM_opt_explicitValTyparDecls2 + | NONTERM_opt_typeConstraints + | NONTERM_typeConstraints + | NONTERM_typeConstraint + | NONTERM_typarAlts + | NONTERM_unionRepr + | NONTERM_barAndgrabXmlDoc + | NONTERM_attrUnionCaseDecls + | NONTERM_attrUnionCaseDecl + | NONTERM_unionCaseName + | NONTERM_firstUnionCaseDeclOfMany + | NONTERM_firstUnionCaseDecl + | NONTERM_unionCaseRepr + | NONTERM_recdFieldDeclList + | NONTERM_recdFieldDecl + | NONTERM_fieldDecl + | NONTERM_exconDefn + | NONTERM_exconSpfn + | NONTERM_exceptionAndGrabDoc + | NONTERM_exconCore + | NONTERM_exconIntro + | NONTERM_exconRepr + | NONTERM_openDecl + | NONTERM_defnBindings + | NONTERM_doBinding + | NONTERM_hardwhiteLetBindings + | NONTERM_hardwhiteDoBinding + | NONTERM_classDefnBindings + | NONTERM_hardwhiteDefnBindingsTerminator + | NONTERM_cPrototype + | NONTERM_cArgs + | NONTERM_cMoreArgs + | NONTERM_cArg + | NONTERM_cType + | NONTERM_cRetType + | NONTERM_localBindings + | NONTERM_moreLocalBindings + | NONTERM_attr_localBinding + | NONTERM_localBinding + | NONTERM_typedExprWithStaticOptimizationsBlock + | NONTERM_typedExprWithStaticOptimizations + | NONTERM_opt_staticOptimizations + | NONTERM_staticOptimization + | NONTERM_staticOptimizationConditions + | NONTERM_staticOptimizationCondition + | NONTERM_rawConstant + | NONTERM_constant + | NONTERM_bindingPattern + | NONTERM_simplePattern + | NONTERM_simplePatternCommaList + | NONTERM_simplePatterns + | NONTERM_headBindingPattern + | NONTERM_tuplePatternElements + | NONTERM_conjPatternElements + | NONTERM_constrPattern + | NONTERM_atomicPatterns + | NONTERM_atomicPattern + | NONTERM_parenPatternBody + | NONTERM_parenPattern + | NONTERM_tupleParenPatternElements + | NONTERM_conjParenPatternElements + | NONTERM_recordPatternElements + | NONTERM_recordPatternElementsAux + | NONTERM_recordPatternElement + | NONTERM_listPatternElements + | NONTERM_typedSeqExprBlock + | NONTERM_declExprBlock + | NONTERM_typedSeqExprBlockR + | NONTERM_typedSeqExpr + | NONTERM_seqExpr + | NONTERM_recover + | NONTERM_declExpr + | NONTERM_dynamicArg + | NONTERM_withClauses + | NONTERM_withPatternClauses + | NONTERM_patternAndGuard + | NONTERM_patternClauses + | NONTERM_patternGuard + | NONTERM_patternResult + | NONTERM_ifExprCases + | NONTERM_ifExprThen + | NONTERM_ifExprElifs + | NONTERM_tupleExpr + | NONTERM_minusExpr + | NONTERM_appExpr + | NONTERM_argExpr + | NONTERM_atomicExpr + | NONTERM_atomicExprQualification + | NONTERM_optRange + | NONTERM_atomicExprAfterType + | NONTERM_beginEndExpr + | NONTERM_quoteExpr + | NONTERM_arrayExpr + | NONTERM_parenExpr + | NONTERM_parenExprBody + | NONTERM_staticallyKnownHeadTypars + | NONTERM_staticallyKnownHeadTyparAlts + | NONTERM_braceExpr + | NONTERM_braceExprBody + | NONTERM_listExprElements + | NONTERM_monadicExprInitial + | NONTERM_rangeSequenceExpr + | NONTERM_monadicSingleLineQualifiersThenArrowThenExprR + | NONTERM_forLoopBinder + | NONTERM_forLoopRange + | NONTERM_inlineAssemblyExpr + | NONTERM_opt_curriedArgExprs + | NONTERM_opt_atomicExprAfterType + | NONTERM_opt_inlineAssemblyTypeArg + | NONTERM_opt_inlineAssemblyReturnTypes + | NONTERM_recdExpr + | NONTERM_opt_seps_recd + | NONTERM_seps_recd + | NONTERM_pathOrUnderscore + | NONTERM_recdExprBindings + | NONTERM_recdBinding + | NONTERM_objExpr + | NONTERM_objExprBaseCall + | NONTERM_opt_objExprBindings + | NONTERM_objExprBindings + | NONTERM_objExprInterfaces + | NONTERM_opt_objExprInterfaces + | NONTERM_objExprInterface + | NONTERM_forLoopDirection + | NONTERM_anonLambdaExpr + | NONTERM_anonMatchingExpr + | NONTERM_typeWithTypeConstraints + | NONTERM_topTypeWithTypeConstraints + | NONTERM_opt_topReturnTypeWithTypeConstraints + | NONTERM_topType + | NONTERM_topTupleType + | NONTERM_topTupleTypeElements + | NONTERM_topAppType + | NONTERM_typ + | NONTERM_tupleType + | NONTERM_tupleOrQuotTypeElements + | NONTERM_tupleTypeElements + | NONTERM_appTypeCon + | NONTERM_appTypeConPower + | NONTERM_appType + | NONTERM_arrayTypeSuffix + | NONTERM_appTypePrefixArguments + | NONTERM_typeArgListElements + | NONTERM_powerType + | NONTERM_appTypeNonAtomicDeprecated + | NONTERM_powerTypeNonAtomicDeprecated + | NONTERM_atomType + | NONTERM_typeArgsNoHpaDeprecated + | NONTERM_typeArgsActual + | NONTERM_typeArgActual + | NONTERM_typeArgActualOrDummyIfEmpty + | NONTERM_dummyTypeArg + | NONTERM_measureTypeArg + | NONTERM_measureTypeAtom + | NONTERM_measureTypePower + | NONTERM_measureTypeSeq + | NONTERM_measureTypeExpr + | NONTERM_typar + | NONTERM_staticallyKnownHeadTypar + | NONTERM_ident + | NONTERM_path + | NONTERM_opName + | NONTERM_operatorName + | NONTERM_barName + | NONTERM_barNames + | NONTERM_identOrOp + | NONTERM_pathOp + | NONTERM_nameop + | NONTERM_topSeparator + | NONTERM_topSeparators + | NONTERM_interactiveSeparator + | NONTERM_interactiveSeparators + | NONTERM_opt_interactiveSeparators + | NONTERM_opt_topSeparators + | NONTERM_seps + | NONTERM_declEnd + | NONTERM_opt_declEnd + | NONTERM_opt_ODECLEND + | NONTERM_deprecated_opt_equals + | NONTERM_opt_OBLOCKSEP + | NONTERM_opt_seps + | NONTERM_opt_rec + | NONTERM_opt_bar + | NONTERM_opt_inline + | NONTERM_opt_mutable + | NONTERM_doToken + | NONTERM_doneDeclEnd + | NONTERM_structOrBegin + | NONTERM_sigOrBegin + | NONTERM_colonOrEquals + | NONTERM_opt_HASH + | NONTERM_opt_HIGH_PRECEDENCE_APP + | NONTERM_opt_HIGH_PRECEDENCE_TYAPP + | NONTERM_type_keyword + | NONTERM_module_keyword + | NONTERM_rbrace + | NONTERM_rparen + | NONTERM_oblockend + | NONTERM_ends_other_than_rparen_coming_soon_or_recover + | NONTERM_ends_coming_soon_or_recover +/// This function maps integers indexes to symbolic token ids +val tagOfToken: token -> int + +/// This function maps integers indexes to symbolic token ids +val tokenTagToTokenId: int -> tokenId + +/// This function maps production indexes returned in syntax errors to strings representing the non terminal that would be produced by that production +val prodIdxToNonTerminal: int -> nonTerminalId + +/// This function gets the name of a token as a string +val token_to_string: token -> string +val signatureFile : (Internal.Utilities.Text.Lexing.LexBuffer<'cty> -> token) -> Internal.Utilities.Text.Lexing.LexBuffer<'cty> -> (Ast.ParsedSigFile) +val implementationFile : (Internal.Utilities.Text.Lexing.LexBuffer<'cty> -> token) -> Internal.Utilities.Text.Lexing.LexBuffer<'cty> -> (Ast.ParsedImplFile) +val interaction : (Internal.Utilities.Text.Lexing.LexBuffer<'cty> -> token) -> Internal.Utilities.Text.Lexing.LexBuffer<'cty> -> (Ast.ParsedFsiInteraction) diff --git a/src/fsharp/FSharp.Compiler/FSharp.Compiler.fsproj b/src/fsharp/FSharp.Compiler/FSharp.Compiler.fsproj new file mode 100644 index 0000000..676bcf8 --- /dev/null +++ b/src/fsharp/FSharp.Compiler/FSharp.Compiler.fsproj @@ -0,0 +1,519 @@ + + + + + $(MSBuildProjectDirectory)\..\.. + 10.0.0 + 2.0 + False + + + + Debug + AnyCPU + Library + FSharp.Compiler + EXTENSIONTYPING;COMPILER;INCLUDE_METADATA_READER;INCLUDE_METADATA_WRITER;EXTENSIBLE_DUMPER;TYPE_PROVIDER_SECURITY;$(DefineConstants) + $(NoWarn);44;62;9 + {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3} + true + 0x06800000 + $(OtherFlags) /warnon:1182 + + + + + + + FSComp.txt + + + FSStrings.resx + + + assemblyinfo.FSharp.Compiler.dll.fs + + + --lexlib Internal.Utilities.Text.Lexing + lex.fsl + + + --lexlib Internal.Utilities.Text.Lexing + illex.fsl + + + Microsoft.FSharp.Compiler.Parser + Microsoft.FSharp.Compiler + --internal --lexlib Internal.Utilities.Text.Lexing --parslib Internal.Utilities.Text.Parsing + pars.fsy + + + Microsoft.FSharp.Compiler.AbstractIL.Internal.AsciiParser + Microsoft.FSharp.Compiler.AbstractIL + --internal --lexlib Internal.Utilities.Text.Lexing --parslib Internal.Utilities.Text.Parsing + ilpars.fsy + + + ExtensibleDumper.fsi + + + ExtensibleDumper.fs + + + sformat.fsi + + + sformat.fs + + + sr.fsi + + + sr.fs + + + prim-lexing.fsi + + + prim-lexing.fs + + + prim-parsing.fsi + + + prim-parsing.fs + + + resizearray.fsi + + + resizearray.fs + + + HashMultiMap.fsi + + + HashMultiMap.fs + + + TaggedCollections.fsi + + + TaggedCollections.fs + + + FlatList.fs + + + illib.fs + + + filename.fsi + + + filename.fs + + + zmap.fsi + + + zmap.fs + + + zset.fsi + + + zset.fs + + + bytes.fsi + + + bytes.fs + + + ildiag.fsi + + + ildiag.fs + + + ReferenceResolution.fs + + + il.fsi + + + il.fs + + + ilx.fsi + + + ilx.fs + + + ilascii.fsi + + + ilascii.fs + + + ilprint.fsi + + + ilprint.fs + + + ilmorph.fsi + + + ilmorph.fs + + + ilsupp.fsi + + + ilsupp.fs + + + + + ilbinary.fsi + + + ilbinary.fs + + + lib.fs + + + range.fsi + + + range.fs + + + ErrorLogger.fs + + + tainted.fsi + + + tainted.fs + + + InternalCollections.fsi + + + InternalCollections.fs + + + ilread.fsi + + + ilread.fs + + + ilwrite.fsi + + + ilwrite.fs + + + ilreflect.fs + + + CompilerLocationUtils.fs + + + PrettyNaming.fs + + + ilxsettings.fs + + + pubclo.fsi + + + pubclo.fs + + + cu_erase.fsi + + + cu_erase.fs + + + InternalFileSystemUtils.fsi + + + InternalFileSystemUtils.fs + + + unilex.fsi + + + unilex.fs + + + layout.fsi + + + layout.fs + + + ast.fs + + + est.fsi + + + est.fs + + + + lexhelp.fsi + + + lexhelp.fs + + + + sreflect.fsi + + + sreflect.fs + + + QueueList.fs + + + tast.fs + + + env.fs + + + tastops.fsi + + + tastops.fs + + + pickle.fsi + + + pickle.fs + + + lexfilter.fs + + + import.fsi + + + import.fs + + + infos.fs + + + NicePrint.fs + + + augment.fsi + + + augment.fs + + + outcome.fsi + + + outcome.fs + + + nameres.fsi + + + nameres.fs + + + typrelns.fs + + + patcompile.fsi + + + patcompile.fs + + + csolve.fsi + + + csolve.fs + + + formats.fsi + + + formats.fs + + + unsolved.fs + + + creflect.fsi + + + creflect.fs + + + check.fsi + + + check.fs + + + tc.fsi + + + tc.fs + + + opt.fsi + + + opt.fs + + + detuple.fsi + + + detuple.fs + + + tlr.fsi + + + tlr.fs + + + lowertop.fs + + + ilxgen.fsi + + + ilxgen.fs + + + TraceCall.fsi + + + TraceCall.fs + + + build.fsi + + + build.fs + + + fscopts.fsi + + + fscopts.fs + + + IncrementalBuild.fsi + + + IncrementalBuild.fs + + + fsc.fs + + + Reactor.fsi + + + Reactor.fs + + + ServiceLexing.fsi + + + ServiceLexing.fs + + + ServiceConstants.fs + + + ServiceParseTreeWalk.fs + + + ServiceNavigation.fsi + + + ServiceNavigation.fs + + + ServiceParamInfoLocations.fsi + + + ServiceParamInfoLocations.fs + + + ServiceUntypedParse.fsi + + + ServiceUntypedParse.fs + + + ServiceDeclarations.fsi + + + ServiceDeclarations.fs + + + service.fsi + + + service.fs + + + SimpleServices.fs + + + + + + + + + + + + + + + + + {DED3BBD7-53F4-428A-8C9F-27968E768605} + FSharp.Core + + + + + diff --git a/src/fsharp/FlatList.fs b/src/fsharp/FlatList.fs new file mode 100644 index 0000000..5079d68 --- /dev/null +++ b/src/fsharp/FlatList.fs @@ -0,0 +1,291 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +namespace Internal.Utilities + +open System.Collections +open System.Collections.Generic + +//------------------------------------------------------------------------- +// Library: flat list (immutable arrays) +//------------------------------------------------------------------------ +#if FLAT_LIST_AS_ARRAY_STRUCT +//#else +[] +type internal FlatList<'T> = + val internal array : 'T[] + internal new (arr: 'T[]) = { array = (match arr with null -> null | arr -> if arr.Length = 0 then null else arr) } + member x.Item with get(n:int) = x.array.[n] + member x.Length = match x.array with null -> 0 | arr -> arr.Length + member x.IsEmpty = match x.array with null -> true | _ -> false + static member Empty : FlatList<'T> = FlatList(null) + interface IEnumerable<'T> with + member x.GetEnumerator() : IEnumerator<'T> = + match x.array with + | null -> Seq.empty.GetEnumerator() + | arr -> (arr :> IEnumerable<'T>).GetEnumerator() + interface IEnumerable with + member x.GetEnumerator() : IEnumerator = + match x.array with + | null -> (Seq.empty :> IEnumerable).GetEnumerator() + | arr -> (arr :> IEnumerable).GetEnumerator() + + +[] +module internal FlatList = + + let empty<'T> = FlatList<'T>.Empty + + let collect (f: 'T -> FlatList<'T>) (x:FlatList<_>) = + match x.array with + | null -> FlatList.Empty + | arr -> + if arr.Length = 1 then f arr.[0] + else FlatList(Array.map (fun x -> match (f x).array with null -> [| |] | arr -> arr) arr |> Array.concat) + + let exists f (x:FlatList<_>) = + match x.array with + | null -> false + | arr -> Array.exists f arr + + let filter f (x:FlatList<_>) = + match x.array with + | null -> FlatList.Empty + | arr -> FlatList(Array.filter f arr) + + let fold f acc (x:FlatList<_>) = + match x.array with + | null -> acc + | arr -> Array.fold f acc arr + + let fold2 f acc (x:FlatList<_>) (y:FlatList<_>) = + match x.array,y.array with + | null,null -> acc + | null,_ | _,null -> invalidArg "x" "mismatched list lengths" + | arr1,arr2 -> Array.fold2 f acc arr1 arr2 + + let foldBack f (x:FlatList<_>) acc = + match x.array with + | null -> acc + | arr -> Array.foldBack f arr acc + + let foldBack2 f (x:FlatList<_>) (y:FlatList<_>) acc = + match x.array,y.array with + | null,null -> acc + | null,_ | _,null -> invalidArg "x" "mismatched list lengths" + | arr1,arr2 -> Array.foldBack2 f arr1 arr2 acc + + let map2 f (x:FlatList<_>) (y:FlatList<_>) = + match x.array,y.array with + | null,null -> FlatList.Empty + | null,_ | _,null -> invalidArg "x" "mismatched list lengths" + | arr1,arr2 -> FlatList(Array.map2 f arr1 arr2) + + let forall f (x:FlatList<_>) = + match x.array with + | null -> true + | arr -> Array.forall f arr + + let forall2 f (x1:FlatList<_>) (x2:FlatList<_>) = + match x1.array, x2.array with + | null,null -> true + | null,_ | _,null -> invalidArg "x1" "mismatched list lengths" + | arr1,arr2 -> Array.forall2 f arr1 arr2 + + let iter2 f (x1:FlatList<_>) (x2:FlatList<_>) = + match x1.array, x2.array with + | null,null -> () + | null,_ | _,null -> invalidArg "x1" "mismatched list lengths" + | arr1,arr2 -> Array.iter2 f arr1 arr2 + + let partition f (x:FlatList<_>) = + match x.array with + | null -> FlatList.Empty,FlatList.Empty + | arr -> + let arr1,arr2 = Array.partition f arr + FlatList(arr1),FlatList(arr2) + + let (* inline *) sum (x:FlatList) = + match x.array with + | null -> 0 + | arr -> Array.sum arr + + let (* inline *) sumBy (f: 'T -> int) (x:FlatList<'T>) = + match x.array with + | null -> 0 + | arr -> Array.sumBy f arr + + let unzip (x:FlatList<_>) = + match x.array with + | null -> FlatList.Empty,FlatList.Empty + | arr -> let arr1,arr2 = Array.unzip arr in FlatList(arr1),FlatList(arr2) + + let physicalEquality (x:FlatList<_>) (y:FlatList<_>) = + LanguagePrimitives.PhysicalEquality x.array y.array + + let tryFind f (x:FlatList<_>) = + match x.array with + | null -> None + | arr -> Array.tryFind f arr + + let concat (x:FlatList<_>) = + match x.array with + | null -> FlatList.Empty + | arr -> FlatList(Array.concat arr) + + let isEmpty (x:FlatList<_>) = x.IsEmpty + let one(x) = FlatList([| x |]) + + let toMap (x:FlatList<_>) = match x.array with null -> Map.empty | arr -> Map.ofArray arr + let length (x:FlatList<_>) = x.Length + + let map f (x:FlatList<_>) = + match x.array with + | null -> FlatList.Empty + | arr -> FlatList(Array.map f arr) + + let mapi f (x:FlatList<_>) = + match x.array with + | null -> FlatList.Empty + | arr -> FlatList(Array.mapi f arr) + + let iter f (x:FlatList<_>) = + match x.array with + | null -> () + | arr -> Array.iter f arr + + let iteri f (x:FlatList<_>) = + match x.array with + | null -> () + | arr -> Array.iteri f arr + + let toList (x:FlatList<_>) = + match x.array with + | null -> [] + | arr -> Array.toList arr + + let append(l1 : FlatList<'T>) (l2 : FlatList<'T>) = + match l1.array, l2.array with + | null,_ -> l2 + | _,null -> l1 + | arr1, arr2 -> FlatList(Array.append arr1 arr2) + + let ofSeq l = + FlatList(Array.ofSeq l) + + let ofList l = + match l with + | [] -> FlatList.Empty + | l -> FlatList(Array.ofList l) + + let init n f = + if n = 0 then + FlatList.Empty + else + FlatList(Array.init n f) + + let zip (x:FlatList<_>) (y:FlatList<_>) = + match x.array,y.array with + | null,null -> FlatList.Empty + | null,_ | _,null -> invalidArg "x" "mismatched list lengths" + | arr1,arr2 -> FlatList(Array.zip arr1 arr2) + +#endif +#if FLAT_LIST_AS_LIST + +#else +type internal FlatList<'T> ='T list + +[] +module internal FlatList = + let empty<'T> : 'T list = [] + let collect (f: 'T -> FlatList<'T>) (x:FlatList<_>) = List.collect f x + let exists f (x:FlatList<_>) = List.exists f x + let filter f (x:FlatList<_>) = List.filter f x + let fold f acc (x:FlatList<_>) = List.fold f acc x + let fold2 f acc (x:FlatList<_>) (y:FlatList<_>) = List.fold2 f acc x y + let foldBack f (x:FlatList<_>) acc = List.foldBack f x acc + let foldBack2 f (x:FlatList<_>) (y:FlatList<_>) acc = List.foldBack2 f x y acc + let map2 f (x:FlatList<_>) (y:FlatList<_>) = List.map2 f x y + let forall f (x:FlatList<_>) = List.forall f x + let forall2 f (x1:FlatList<_>) (x2:FlatList<_>) = List.forall2 f x1 x2 + let iter2 f (x1:FlatList<_>) (x2:FlatList<_>) = List.iter2 f x1 x2 + let partition f (x:FlatList<_>) = List.partition f x + let (* inline *) sum (x:FlatList) = List.sum x + let (* inline *) sumBy (f: 'T -> int) (x:FlatList<'T>) = List.sumBy f x + let unzip (x:FlatList<_>) = List.unzip x + let physicalEquality (x:FlatList<_>) (y:FlatList<_>) = (LanguagePrimitives.PhysicalEquality x y) + let tryFind f (x:FlatList<_>) = List.tryFind f x + let concat (x:FlatList<_>) = List.concat x + let isEmpty (x:FlatList<_>) = List.isEmpty x + let one(x) = [x] + let toMap (x:FlatList<_>) = Map.ofList x + let length (x:FlatList<_>) = List.length x + let map f (x:FlatList<_>) = List.map f x + let mapi f (x:FlatList<_>) = List.mapi f x + let iter f (x:FlatList<_>) = List.iter f x + let iteri f (x:FlatList<_>) = List.iteri f x + let toList (x:FlatList<_>) = x + let ofSeq (x:seq<_>) = List.ofSeq x + let append(l1 : FlatList<'T>) (l2 : FlatList<'T>) = List.append l1 l2 + let ofList(l) = l + let init n f = List.init n f + let zip (x:FlatList<_>) (y:FlatList<_>) = List.zip x y +#endif + +#if FLAT_LIST_AS_ARRAY +//#else +type internal FlatList<'T> ='T array + +type internal FlatListEmpty<'T>() = + // cache the empty array in a generic static field + static let empty : 'T array = [| |] + static member Empty : 'T array = empty + +[] +module internal FlatList = + let empty<'T> : 'T array = FlatListEmpty<'T>.Empty + //let empty<'T> : 'T array = [| |] + let collect (f: 'T -> FlatList<'T>) (x:FlatList<_>) = x |> Array.map f |> Array.concat + let exists f x = Array.exists f x + let filter f x = Array.filter f x + let fold f acc x = Array.fold f acc x + let fold2 f acc x y = Array.fold2 f acc x y + let foldBack f x acc = Array.foldBack f x acc + let foldBack2 f x y acc = Array.foldBack2 f x y acc + let map2 f x y = Array.map2 f x y + let forall f x = Array.forall f x + let forall2 f x1 x2 = Array.forall2 f x1 x2 + let iter2 f x1 x2 = Array.iter2 f x1 x2 + let partition f x = Array.partition f x + let (* inline *) sum (x:FlatList) = Array.sum x + let (* inline *) sumBy (f: 'T -> int) (x:FlatList<'T>) = Array.sumBy f x + let unzip x = Array.unzip x + let physicalEquality (x:FlatList<_>) (y:FlatList<_>) = LanguagePrimitives.PhysicalEquality x y + let tryFind f x = Array.tryFind f x + let concat x = Array.concat x + let isEmpty x = Array.isEmpty x + let one x = [| x |] + let toMap x = Map.ofArray x + let length x = Array.length x + let map f x = Array.map f x + let mapi f x = Array.mapi f x + let iter f x = Array.iter f x + let iteri f x = Array.iteri f x + let toList x = Array.toList x + let append l1 l2 = Array.append l1 l2 + let ofSeq l = Array.ofSeq l + let ofList l = Array.ofList l + let init n f = Array.init n f + let zip x y = Array.zip x y +#endif + diff --git a/src/fsharp/Fsc-proto/Fsc-proto.fsproj b/src/fsharp/Fsc-proto/Fsc-proto.fsproj new file mode 100644 index 0000000..0c2a899 --- /dev/null +++ b/src/fsharp/Fsc-proto/Fsc-proto.fsproj @@ -0,0 +1,55 @@ + + + + + $(MSBuildProjectDirectory)\..\.. + Proto + + + + + x86 + Exe + $(NoWarn);62 + fsc-proto + BUILDING_PROTO;BUILDING_WITH_LKG;COMPILER;$(DefineConstants) + LKG + {9D7C9060-9263-40EB-8FE3-1E4E3C6D941C} + true + $(OtherFlags) --stackReserveSize:4096000 + v4.0 + + + + + + + fscmain.fs + + + + + + + + + + + {33E0FB8C-93DC-4AD7-9DCD-9FBDA6C2F061} + FSharp.Compiler-proto + + + + diff --git a/src/fsharp/Fsc-proto/Makefile.in b/src/fsharp/Fsc-proto/Makefile.in new file mode 100644 index 0000000..5500234 --- /dev/null +++ b/src/fsharp/Fsc-proto/Makefile.in @@ -0,0 +1,38 @@ +NAME=fsc-proto +ASSEMBLY = $(NAME).exe + +srcdir := @abs_srcdir@/ + +include @abs_top_builddir@/config.make + +CONFIG=proto + +FSC=$(bootstrapdir)fsc.exe + +FLAGS += --target:exe + +DEFINES += \ + --define:BUILDING_PROTO \ + --define:BUILDING_WITH_LKG \ + --define:COMPILER \ + --define:NO_STRONG_NAMES + +REFERENCES += \ + -r:$(bootstrapdir)FSharp.Core.dll \ + -r:$(outdir)FSharp.Compiler-proto.dll \ + -r:$(monolibdir)System.Runtime.Remoting.dll \ + -r:$(monolibdir)System.Windows.Forms.dll + +sources = \ + ../fscmain.fs + +do-proto: do-4-0 $(protodir)FSharp.Core.dll + +clean: clean-4-0 + +include $(topdir)/src/fsharp/targets.make + +# We need the bootstrap's FSharp.Core to run the proto +$(protodir)FSharp.Core.dll: $(bootstrapdir)FSharp.Core.dll + @-mkdir $(protodir) + cp -p $(bootstrapdir)FSharp.Core.dll $(protodir)FSharp.Core.dll diff --git a/src/fsharp/Fsc/Fsc.fsproj b/src/fsharp/Fsc/Fsc.fsproj new file mode 100644 index 0000000..fc9d9b1 --- /dev/null +++ b/src/fsharp/Fsc/Fsc.fsproj @@ -0,0 +1,60 @@ + + + + + $(MSBuildProjectDirectory)\..\.. + 10.0.0 + 2.0 + False + + + + Debug + + x86 + {C94C257C-3C0A-4858-B5D8-D746498D1F08} + Exe + $(NoWarn);62;44 + fsc + EXTENSIONTYPING;COMPILER;$(DefineConstants) + true + $(OtherFlags) --warnon:1182 + + + + + + + assemblyinfo.fsc.exe.fs + + + fscmain.fs + + + PreserveNewest + + + + + + + + + {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3} + FSharp.Compiler + + + + \ No newline at end of file diff --git a/src/fsharp/Fsc/Makefile.in b/src/fsharp/Fsc/Makefile.in new file mode 100644 index 0000000..5a291aa --- /dev/null +++ b/src/fsharp/Fsc/Makefile.in @@ -0,0 +1,34 @@ +NAME=fsc +ASSEMBLY = $(NAME).exe +TOKEN=$(SIGN_TOKEN) + +srcdir := @abs_srcdir@/ + +include @abs_top_builddir@/config.make + +FSC=$(protodir)fsc-proto.exe + +FLAGS += \ + $(SIGN_FLAGS) \ + --target:exe + +REFERENCES += \ + -r:$(outdir)FSharp.Core.dll \ + -r:$(outdir)FSharp.Compiler.dll \ + -r:$(monolibdir)System.Runtime.Remoting.dll \ + -r:$(monolibdir)System.Windows.Forms.dll + +sources = \ + ../../assemblyinfo/assemblyinfo.fsc.exe.fs \ + ../fscmain.fs + +include $(topdir)/src/fsharp/targets.make + +do-final: do-4-0 + +clean: clean-4-0 + +install: install-bin-4 install-lib-4-5 + + + diff --git a/src/fsharp/Fsc/fsc.exe.config b/src/fsharp/Fsc/fsc.exe.config new file mode 100644 index 0000000..694b0ff --- /dev/null +++ b/src/fsharp/Fsc/fsc.exe.config @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + diff --git a/src/fsharp/InternalCollections.fs b/src/fsharp/InternalCollections.fs new file mode 100644 index 0000000..b1581d0 --- /dev/null +++ b/src/fsharp/InternalCollections.fs @@ -0,0 +1,232 @@ +//---------------------------------------------------------------------------- +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +namespace Internal.Utilities.Collections +open System +open System.Collections.Generic + +#nowarn "44" // This construct is deprecated. This F# library function has been renamed. Use 'isSome' instead + +[] +type internal ValueStrength<'T> = + | Strong of 'T + | Weak of WeakReference + +type internal AgedLookup<'TKey,'TValue>(keepStrongly:int, areSame, ?onStrongDiscard : ('TValue -> unit), ?keepMax: int) = + /// The list of items stored. Youngest is at the end of the list. + /// The choice of order is somewhat aribtrary. If the other way then adding + /// items would be O(1) and removing O(N). + let mutable refs:('TKey*ValueStrength<'TValue>) list = [] + + // Only set a strong discard function if keepMax is expliclty set to keepStrongly, i.e. there are no weak entries in this lookup. + do assert (onStrongDiscard.IsNone || Some keepStrongly = keepMax) + + let strongDiscard x = match onStrongDiscard with None -> () | Some f -> f x + + // The 75 here determines how long the list should be passed the end of strongly held + // references. Some operations are O(N) and we don't want to let things get out of + // hand. + let keepMax = defaultArg keepMax 75 + let keepMax = max keepStrongly keepMax + + /// Look up a the given key, return None if not found. + let TryPeekKeyValueImpl(data,key) = + let rec Lookup key = function + // Treat a list of key-value pairs as a lookup collection. + // This function returns true if two keys are the same according to the predicate + // function passed in. + | []->None + | (key',value)::t-> + if areSame(key,key') then Some(key',value) + else Lookup key t + Lookup key data + + /// Determines whether a particular key exists. + let Exists(data,key) = TryPeekKeyValueImpl(data,key).IsSome + + /// Set a particular key's value. + let Add(data,key,value) = + data @ [key,value] + + /// Promote a particular key value + let Promote (data, key, value) = + (data |> List.filter (fun (key',_)-> not (areSame(key,key')))) @ [ (key, value) ] + + /// Remove a particular key value + let RemoveImpl (data, key) = + let discard,keep = data |> List.partition (fun (key',_)-> areSame(key,key')) + keep, discard + + let TryGetKeyValueImpl(data,key) = + match TryPeekKeyValueImpl(data,key) with + | Some(_, value) as result -> + // If the result existed, move it to the top of the list. + result,Promote (data,key,value) + | None -> None,data + + /// Remove weak entries from the list that have been collected + let FilterAndHold() = + [ for (key,value) in refs do + match value with + | Strong(value) -> yield (key,value) + | Weak(weakReference) -> + match weakReference.Target with + | null -> assert onStrongDiscard.IsNone; () + | value -> yield key,(value:?>'TValue) ] + + + let AssignWithStrength(newdata,discard1) = + let actualLength = List.length newdata + let tossThreshold = max 0 (actualLength - keepMax) // Delete everything less than this threshold + let weakThreshhold = max 0 (actualLength - keepStrongly) // Weaken everything less than this threshhold + + let newdata = newdata|> List.mapi( fun n kv -> n,kv ) // Place the index. + let newdata,discard2 = newdata |> List.partition (fun (n:int,_) -> n >= tossThreshold) + let newdata = + newdata + |> List.map( fun (n:int,(k,v)) -> + let handle = + if n List.iter (snd >> strongDiscard) + discard2 |> List.iter (snd >> snd >> strongDiscard) + + member al.TryPeekKeyValue(key) = + // Returns the original key value as well since it may be different depending on equality test. + let data = FilterAndHold() + TryPeekKeyValueImpl(data,key) + + member al.TryGetKeyValue(key) = + let data = FilterAndHold() + let result,newdata = TryGetKeyValueImpl(data,key) + AssignWithStrength(newdata,[]) + result + member al.TryGet(key) = + let data = FilterAndHold() + let result,newdata = TryGetKeyValueImpl(data,key) + AssignWithStrength(newdata,[]) + match result with + | Some(_,value) -> Some(value) + | None -> None + member al.Put(key,value) = + let data = FilterAndHold() + let data,discard = if Exists(data,key) then RemoveImpl (data,key) else data,[] + let data = Add(data,key,value) + AssignWithStrength(data,discard) // This will remove extras + + member al.Remove(key) = + let data = FilterAndHold() + let newdata,discard = RemoveImpl (data,key) + AssignWithStrength(newdata,discard) + + member al.MostRecent : ('TKey*'TValue) option= + let data = FilterAndHold() + if not data.IsEmpty then + // Non-optimal reverse list to get most recent. Consider an array of option for the data structure. + Some(data |> List.rev |> List.head) + else None + + member al.Clear() = + let discards = FilterAndHold() + AssignWithStrength([], discards) + + + +type internal MruCache<'TKey,'TValue>(keepStrongly,compute, areSame, ?isStillValid : 'TKey*'TValue->bool, ?areSameForSubsumption, ?logComputedNewValue, ?logUsedCachedValue, ?onStrongDiscard, ?keepMax) = + + /// Default behavior of areSameForSubsumption function is areSame + let areSameForSubsumption = defaultArg areSameForSubsumption areSame + + /// The list of items in the cache. Youngest is at the end of the list. + /// The choice of order is somewhat aribtrary. If the other way then adding + /// items would be O(1) and removing O(N). + let cache = AgedLookup<'TKey,'TValue>(keepStrongly=keepStrongly,areSame=areSameForSubsumption,?onStrongDiscard=onStrongDiscard,?keepMax=keepMax) + + /// Whether or not this result value is still valid. + let isStillValid = defaultArg isStillValid (fun _ -> true) + + /// Log a message when a new value is computed. + let logComputedNewValue = defaultArg logComputedNewValue ignore + + /// Log a message when an existing value was retrieved from cache. + let logUsedCachedValue = defaultArg logUsedCachedValue ignore + + member bc.GetAvailable(key) = + match cache.TryPeekKeyValue(key) with + | Some(key', value)-> + if areSame(key',key) then Some(value) + else None + | None -> None + + member bc.Get(key) = + let Compute() = + let value = compute key + cache.Put(key, value) + logComputedNewValue(key) + value + match cache.TryGetKeyValue(key) with + | Some(key', value) -> + if areSame(key', key) && isStillValid(key,value) then + logUsedCachedValue(key) + value + else Compute() + | None -> Compute() + + member bc.MostRecent = + cache.MostRecent + + member bc.SetAlternate(key:'TKey,value:'TValue) = + cache.Put(key,value) + + member bc.Remove(key) = + cache.Remove(key) + + member bc.Clear() = + cache.Clear() + +/// List helpers +[] +type internal List = + /// Return a new list with one element for each unique 'TKey. Multiple 'TValues are flattened. The original order of the first instance of 'TKey is preserved. + static member groupByFirst( l : ('TKey * 'TValue) list) : ('TKey * 'TValue list) list = + let nextIndex = ref 0 + let result = System.Collections.Generic.List<'TKey * System.Collections.Generic.List<'TValue>>() + let keyToIndex = Dictionary<'TKey,int>(HashIdentity.Structural) + let indexOfKey(key) = + match keyToIndex.TryGetValue(key) with + | true, v -> v + | false, _ -> + keyToIndex.Add(key,!nextIndex) + nextIndex := !nextIndex + 1 + !nextIndex - 1 + + for kv in l do + let index = indexOfKey(fst kv) + if index>= result.Count then + let k,vs = fst kv,System.Collections.Generic.List<'TValue>() + vs.Add(snd kv) + result.Add(k,vs) + else + let _,vs = result.[index] + vs.Add(snd kv) + + result |> Seq.map(fun (k,vs) -> k,vs |> List.ofSeq ) |> List.ofSeq + + /// Return each distinct item in the list using reference equality. + static member referenceDistinct( l : 'T list) : 'T list when 'T : not struct = + let set = System.Collections.Generic.Dictionary<'T,bool>(HashIdentity.Reference) + l |> List.iter(fun i->set.Add(i,true)) + set |> Seq.map(fun kv->kv.Key) |> List.ofSeq diff --git a/src/fsharp/InternalCollections.fsi b/src/fsharp/InternalCollections.fsi new file mode 100644 index 0000000..940437f --- /dev/null +++ b/src/fsharp/InternalCollections.fsi @@ -0,0 +1,62 @@ +namespace Internal.Utilities.Collections + + /// Simple aging lookup table. When a member is accessed it's + /// moved to the top of the list and when there are too many elements + /// the least-recently-accessed element falls of the end. + type internal AgedLookup<'TKey,'TValue> = + new : keepStrongly:int + * areSame:('TKey * 'TKey -> bool) + * ?onStrongDiscard : ('TValue -> unit) // this may only be set if keepTotal=keepStrongly, i.e. not weak entries + * ?keepMax: int + -> AgedLookup<'TKey,'TValue> + /// Lookup the value without making it the most recent. + /// Returns the original key value because the areSame function + /// may have unified two different keys. + member TryPeekKeyValue : key:'TKey -> ('TKey*'TValue) option + /// Lookup a value and make it the most recent. + /// Returns the original key value because the areSame function + /// may have unified two different keys. + member TryGetKeyValue : key:'TKey -> ('TKey*'TValue) option + /// Lookup a value and make it the most recent. Return None if it wasn't there. + member TryGet : key:'TKey -> 'TValue option + /// Add an element to the collection. Make it the most recent. + member Put : 'TKey*'TValue -> unit + /// Remove the given value from the collection. + member Remove : key:'TKey -> unit + /// Remove all elements. + member Clear : unit -> unit + + /// Simple priority caching for a small number of key\value associations. + /// This cache may age-out results that have been Set by the caller. + /// Because of this, the caller must be able to tolerate values + /// that aren't what was originally passed to the Set function. + type internal MruCache<'TKey,'TValue> = + new : keepStrongly:int + * compute:('TKey -> 'TValue) + * areSame:('TKey * 'TKey -> bool) + * ?isStillValid:('TKey * 'TValue -> bool) + * ?areSameForSubsumption:('TKey * 'TKey -> bool) + * ?logComputedNewValue:('TKey -> unit) + * ?logUsedCachedValue:('TKey -> unit) + * ?onDiscard:('TValue -> unit) + * ?keepMax:int + -> MruCache<'TKey,'TValue> + /// Clear out the cache. + member Clear : unit -> unit + /// Get the value for the given key. Compute if necessary. + member Get : key:'TKey -> 'TValue + /// Get the value for the given key or None if not already available + member GetAvailable : key:'TKey -> 'TValue option + /// Remove the given value from the mru cache. + member Remove : key:'TKey -> unit + /// Set the value for the given key. This value does not have to agree with computed value. + member SetAlternate : key:'TKey * value:'TValue -> unit + /// Get the most recent item if there is one. + member MostRecent : ('TKey * 'TValue) option + + [] + type internal List = + /// Return a new list with one element for each unique 'TKey. Multiple 'TValues are flattened. The original order of the first instance of 'TKey is preserved. + static member groupByFirst : l:('TKey * 'TValue) list -> ('TKey * 'TValue list) list when 'TKey : equality + /// Return each distinct item in the list using reference equality. + static member referenceDistinct : 'T list -> 'T list when 'T : not struct diff --git a/src/fsharp/Makefile.in b/src/fsharp/Makefile.in new file mode 100644 index 0000000..68552fe --- /dev/null +++ b/src/fsharp/Makefile.in @@ -0,0 +1,56 @@ + +# Make the proto using the bootstrap, then make the final compiler using the proto +# We call MAKE sequentially because we don't want do-final to explicitly depend on do-proto, +# as that causes a complete recompilation of both proto and final everytime you touch the +# compiler sources. +all: + $(MAKE) do-proto + $(MAKE) do-final + +do-proto: + $(MAKE) -C FSharp.Build-proto $@ + $(MAKE) -C FSharp.Compiler-proto $@ + $(MAKE) -C Fsc-proto $@ + +do-final install: + $(MAKE) -C FSharp.Core $@ + $(MAKE) -C FSharp.Build $@ + $(MAKE) -C FSharp.Compiler $@ + $(MAKE) -C Fsc $@ + $(MAKE) -C FSharp.Compiler.Interactive.Settings $@ + $(MAKE) -C FSharp.Compiler.Server.Shared $@ + $(MAKE) -C FSharp.Data.TypeProviders $@ + $(MAKE) -C fsi $@ + $(MAKE) -C fsiAnyCpu $@ + $(MAKE) -C policy.2.0.FSharp.Core $@ + $(MAKE) -C policy.4.0.FSharp.Core $@ + $(MAKE) -C policy.2.3.FSharp.Core $@ + $(MAKE) -C policy.4.3.FSharp.Core $@ + +clean clean-2-0 clean-4-0: + $(MAKE) -C FSharp.Build-proto $@ + $(MAKE) -C FSharp.Compiler-proto $@ + $(MAKE) -C Fsc-proto $@ + $(MAKE) -C FSharp.Core $@ + $(MAKE) -C FSharp.Build $@ + $(MAKE) -C FSharp.Compiler $@ + $(MAKE) -C Fsc $@ + $(MAKE) -C FSharp.Compiler.Interactive.Settings $@ + $(MAKE) -C FSharp.Compiler.Server.Shared $@ + $(MAKE) -C FSharp.Data.TypeProviders $@ + $(MAKE) -C fsi $@ + $(MAKE) -C fsiAnyCpu $@ + $(MAKE) -C policy.2.0.FSharp.Core $@ + $(MAKE) -C policy.4.0.FSharp.Core $@ + $(MAKE) -C policy.2.3.FSharp.Core $@ + $(MAKE) -C policy.4.3.FSharp.Core $@ + +clean-2-1 do-2-1: + $(MAKE) -C FSharp.Core $@ + +install-2-1: do-2-1 + $(MAKE) -C FSharp.Core $@ + + + + diff --git a/src/fsharp/ReferenceResolution.fs b/src/fsharp/ReferenceResolution.fs new file mode 100644 index 0000000..88fd4c9 --- /dev/null +++ b/src/fsharp/ReferenceResolution.fs @@ -0,0 +1,375 @@ +namespace Viz + +/// This type exists to have a concrete 'Target' type for a DebuggerVisualizerAttribute. +/// Ideally it would be out in its own assembly, but then the compiler would need to take a dependency on that assembly, so instead we +/// pragmatically just shove this into the compiler assembly itself. +type internal Visualizable(o:obj) = + member this.Data = o + /// assuming this assembly is already in the debuggee process, then Viz.Visualiable.Make(foo) in the Watch window will make a visualizer for foo + static member Make(o:obj) = new Visualizable(o) + +namespace Microsoft.FSharp.Compiler + +module internal MSBuildResolver = + + open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library + exception ResolutionFailure + + type ResolvedFrom = + | AssemblyFolders + | AssemblyFoldersEx + | TargetFrameworkDirectory + | RawFileName + | GlobalAssemblyCache + | Path of string + | Unknown + + type ResolutionEnvironment = CompileTimeLike | RuntimeLike | DesigntimeLike + +#if SILVERLIGHT +#else + open System + open System.Reflection + open Microsoft.Build.Tasks + open Microsoft.Build.Utilities + open Microsoft.Build.Framework + open Microsoft.Build.BuildEngine + open System.IO + + type ResolvedFile = { + itemSpec:string + resolvedFrom:ResolvedFrom + fusionName:string + version:string + redist:string + baggage:string + } + with override this.ToString() = sprintf "ResolvedFile(%s)" this.itemSpec + + type ResolutionResults = { + resolvedFiles:ResolvedFile array + referenceDependencyPaths:string array + relatedPaths:string array + referenceSatellitePaths:string array + referenceScatterPaths:string array + referenceCopyLocalPaths:string array + suggestedBindingRedirects:string array + } + + let DotNetFrameworkReferenceAssembliesRootDirectory = + // Note that ProgramFilesX86 is correct for both x86 and x64 architectures (the reference assemblies are always in the 32-bit location, which is PF(x86) on an x64 machine) + let PF = + //System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFilesX86) // This API is not available to bootstrap compiler + match System.Environment.GetEnvironmentVariable("ProgramFiles(x86)") with + | null -> System.Environment.GetEnvironmentVariable("ProgramFiles") // if PFx86 is null, then we are 32-bit and just get PF + | s -> s + PF + @"\Reference Assemblies\Microsoft\Framework\.NETFramework" + + let ReplaceFrameworkVariables(dirs) = + let windowsFramework = System.Environment.GetEnvironmentVariable("windir")+ @"\Microsoft.NET\Framework" + let referenceAssemblies = DotNetFrameworkReferenceAssembliesRootDirectory + dirs|>List.map(fun (d:string)->d.Replace("{WindowsFramework}",windowsFramework).Replace("{ReferenceAssemblies}",referenceAssemblies)) + + + /// Derive the target framework directories. + let DeriveTargetFrameworkDirectories + (targetFrameworkVersion:string, // e.g. v2.0, v3.0, v3.5, v4.0 etc + excludeNonExecutableAssemblies:bool, // True when the assembly must be executable and not just a stub meta assembly. + logmessage:string->unit) = + let targetFrameworkVersion = + if not(targetFrameworkVersion.StartsWith("v",StringComparison.Ordinal)) then "v"^targetFrameworkVersion + else targetFrameworkVersion + let FrameworkStartsWith(short) = + targetFrameworkVersion.StartsWith(short,StringComparison.Ordinal) + let result = + if FrameworkStartsWith("v1.0") then ReplaceFrameworkVariables([@"{WindowsFramework}\v1.0.3705"]) + else if FrameworkStartsWith("v1.1") then ReplaceFrameworkVariables([@"{WindowsFramework}\v1.1.4322"]) + else if FrameworkStartsWith("v2.0") then ReplaceFrameworkVariables([@"{WindowsFramework}\v2.0.50727"]) + else if FrameworkStartsWith("v3.0") then ReplaceFrameworkVariables([@"{ReferenceAssemblies}\v3.0"; @"{WindowsFramework}\v3.0"; @"{WindowsFramework}\v2.0.50727"]) + else if FrameworkStartsWith("v3.5") then ReplaceFrameworkVariables([@"{ReferenceAssemblies}\v3.5"; @"{WindowsFramework}\v3.5"; @"{ReferenceAssemblies}\v3.0"; @"{WindowsFramework}\v3.0"; @"{WindowsFramework}\v2.0.50727"]) + else if FrameworkStartsWith("v4.0") then ReplaceFrameworkVariables([@"{ReferenceAssemblies}\v4.0"]) // starting with .Net 4.0, the runtime dirs (WindowsFramework) are never used by MSBuild RAR + else if FrameworkStartsWith("v4.5") then ReplaceFrameworkVariables([@"{ReferenceAssemblies}\v4.5"]) + else (ignore(excludeNonExecutableAssemblies); []) + + let result = result |> Array.ofList + logmessage (sprintf "Derived target framework directories for version %s are: %s" targetFrameworkVersion (String.Join(",", result))) + result + + /// Decode the ResolvedFrom code from MSBuild. + let DecodeResolvedFrom(resolvedFrom:string) : ResolvedFrom = + let Same a b = + String.CompareOrdinal(a,b) = 0 + match resolvedFrom with + | r when Same "{RawFileName}" r -> RawFileName + | r when Same "{GAC}" r -> GlobalAssemblyCache + | r when Same "{TargetFrameworkDirectory}" r -> TargetFrameworkDirectory + | r when Same "{AssemblyFolders}" r -> AssemblyFolders + | r when r.Length >= 10 && Same "{Registry:" (r.Substring(0,10)) -> AssemblyFoldersEx + | r -> ResolvedFrom.Path r + + + type ErrorWarningCallbackSig = ((*code:*)string->(*message*)string->unit) + + type Foregrounded = + | ForegroundedMessage of string + | ForegroundedError of string * string + | ForegroundedWarning of string * string + + let ResolveCore( + resolutionEnvironment: ResolutionEnvironment, + references:(string*(*baggage*)string)[], + targetFrameworkVersion:string, + targetFrameworkDirectories:string list, + targetProcessorArchitecture:string, + outputDirectory:string, + fsharpCoreExplicitDirOrFSharpBinariesDir:string, + explicitIncludeDirs:string list, + implicitIncludeDir:string, + frameworkRegistryBase:string, + assemblyFoldersSuffix:string, + assemblyFoldersConditions:string, + allowRawFileName:bool, + logmessage:string->unit, + logwarning:ErrorWarningCallbackSig, + logerror:ErrorWarningCallbackSig ) = + + // Message Foregrounding: + // In version 4.0 MSBuild began calling log methods on a background (non-UI) thread. If there is an exception thrown from + // logmessage, logwarning or logerror then it would kill the process. + // The fix is to catch these exceptions and log the rest of the messages to a list to output at the end. + // It looks simpler to always just accumulate the messages during resolution and show them all at the end, but then + // we couldn't see the messages as resolution progresses. + let foregrounded = ref [] + let backgroundException : exn option ref = ref None + + let logmessage message = + match !backgroundException with + | Some _ -> foregrounded := ForegroundedMessage(message) :: !foregrounded + | None -> + try + logmessage message + with e -> + backgroundException := Some(e) + foregrounded := ForegroundedMessage(message) :: !foregrounded + + let logwarning code message = + match !backgroundException with + | Some _ -> foregrounded := ForegroundedWarning(code,message) :: !foregrounded + | None -> + try + logwarning code message + with e -> + backgroundException := Some(e) + foregrounded := ForegroundedWarning(code,message) :: !foregrounded + + let logerror code message = + match !backgroundException with + | Some _ -> foregrounded := ForegroundedError(code,message) :: !foregrounded + | None -> + try + logerror code message + with e -> + backgroundException := Some(e) + foregrounded := ForegroundedError(code,message) :: !foregrounded + + + let engine = { new IBuildEngine with + member be.BuildProjectFile(projectFileName, targetNames, globalProperties, targetOutputs) = true + member be.LogCustomEvent(e) = logmessage e.Message + member be.LogErrorEvent(e) = logerror e.Code e.Message + member be.LogMessageEvent(e) = logmessage e.Message + member be.LogWarningEvent(e) = logwarning e.Code e.Message + member be.ColumnNumberOfTaskNode with get() = 1 + member be.LineNumberOfTaskNode with get() = 1 + member be.ContinueOnError with get() = true + member be.ProjectFileOfTaskNode with get() = "" } + + let rar = new ResolveAssemblyReference() + rar.BuildEngine <- engine + + // Derive target framework directory if none was supplied. + let excludeNonExecutableAssemblies = (resolutionEnvironment = RuntimeLike) + let targetFrameworkDirectories = + if targetFrameworkDirectories=[] then DeriveTargetFrameworkDirectories(targetFrameworkVersion,excludeNonExecutableAssemblies,logmessage) + else targetFrameworkDirectories |> Array.ofList + + // Filter for null and zero length, and escape backslashes so legitimate path characters aren't mistaken for + // escape characters (E.g., ".\r.dll") + let explicitIncludeDirs = explicitIncludeDirs |> List.filter(fun eid->not(String.IsNullOrEmpty(eid))) + let references = references |> Array.filter(fun (path,_)->not(String.IsNullOrEmpty(path))) // |> Array.map (fun (path,baggage) -> (path.Replace("\\","\\\\"),baggage)) + + rar.TargetFrameworkDirectories <- targetFrameworkDirectories + rar.FindRelatedFiles <- false + rar.FindDependencies <- false + rar.FindSatellites <- false + rar.FindSerializationAssemblies <- false +#if BUILDING_WITH_LKG + ignore targetProcessorArchitecture +#else + let targetedRuntimeVersionValue = typeof.Assembly.ImageRuntimeVersion +#if CROSS_PLATFORM_COMPILER + // The properties TargetedRuntimeVersion and CopyLocalDependenciesWhenParentReferenceInGac + // are not available to the cross-platform compiler since they are Windows only (not defined in the Mono + // 4.0 XBuild support). So we only set them if available (to avoid a compile-time dependency). + let runningOnMono = try System.Type.GetType("Mono.Runtime") <> null with e-> false + if not runningOnMono then + typeof.InvokeMember("TargetedRuntimeVersion",(BindingFlags.Instance ||| BindingFlags.SetProperty ||| BindingFlags.Public),null,rar,[| box targetedRuntimeVersionValue |]) |> ignore + typeof.InvokeMember("CopyLocalDependenciesWhenParentReferenceInGac",(BindingFlags.Instance ||| BindingFlags.SetProperty ||| BindingFlags.Public),null,rar,[| box true |]) |> ignore +#else + rar.TargetedRuntimeVersion <- targetedRuntimeVersionValue + rar.CopyLocalDependenciesWhenParentReferenceInGac <- true +#endif +#endif + rar.TargetProcessorArchitecture <- targetProcessorArchitecture + rar.Assemblies <- [|for (referenceName,baggage) in references -> + let item = new Microsoft.Build.Utilities.TaskItem(referenceName) + item.SetMetadata("Baggage", baggage) + item:>ITaskItem|] + + let rawFileNamePath = if allowRawFileName then ["{RawFileName}"] else [] + let searchPaths = + match resolutionEnvironment with + | DesigntimeLike + | RuntimeLike -> + logmessage("Using scripting resolution precedence.") + // These are search paths for runtime-like or scripting resolution. GAC searching is present. + rawFileNamePath @ // Quick-resolve straight to filename first + explicitIncludeDirs @ // From -I, #I + [implicitIncludeDir] @ // Usually the project directory + [fsharpCoreExplicitDirOrFSharpBinariesDir] @ // Location of explicit reference to FSharp.Core, otherwise location of fsc.exe + ["{TargetFrameworkDirectory}"] @ + [sprintf "{Registry:%s,%s,%s%s}" frameworkRegistryBase targetFrameworkVersion assemblyFoldersSuffix assemblyFoldersConditions] @ + ["{AssemblyFolders}"] @ + ["{GAC}"] + | CompileTimeLike -> + logmessage("Using compilation resolution precedence.") + // These are search paths for compile-like resolution. GAC searching is not present. + ["{TargetFrameworkDirectory}"] @ + rawFileNamePath @ // Quick-resolve straight to filename first + explicitIncludeDirs @ // From -I, #I + [implicitIncludeDir] @ // Usually the project directory + [fsharpCoreExplicitDirOrFSharpBinariesDir] @ // Location of explicit reference to FSharp.Core, otherwise location of fsc.exe + [sprintf "{Registry:%s,%s,%s%s}" frameworkRegistryBase targetFrameworkVersion assemblyFoldersSuffix assemblyFoldersConditions] @ // Like {Registry:Software\Microsoft\.NETFramework,v2.0,AssemblyFoldersEx} + ["{AssemblyFolders}"] @ + [outputDirectory] @ + ["{GAC}"] + + rar.SearchPaths <- searchPaths |> Array.ofList + + rar.AllowedAssemblyExtensions <- [| ".dll" ; ".exe" |] + + let succeeded = rar.Execute() + + // Unroll any foregrounded messages + match !backgroundException with + | Some(backGroundException) -> + logwarning "" "Saw error on logger thread during resolution." + logwarning "" (sprintf "%A" backGroundException) + logwarning "" "Showing messages seen after exception." + + !foregrounded + |> List.iter(fun message-> + match message with + | ForegroundedMessage(message) -> logmessage message + | ForegroundedWarning(code,message) -> logwarning code message + | ForegroundedError(code,message) -> logerror code message ) + | None -> () + + if not succeeded then + raise ResolutionFailure + + { + resolvedFiles = [| for p in rar.ResolvedFiles -> {itemSpec = p.ItemSpec; + resolvedFrom = DecodeResolvedFrom(p.GetMetadata("ResolvedFrom")); + fusionName = p.GetMetadata("FusionName"); + version = p.GetMetadata("Version"); + redist = p.GetMetadata("Redist"); + baggage = p.GetMetadata("Baggage") } |] + referenceDependencyPaths = [| for p in rar.ResolvedDependencyFiles -> p.ItemSpec |] + relatedPaths = [| for p in rar.RelatedFiles -> p.ItemSpec |] + referenceSatellitePaths = [| for p in rar.SatelliteFiles -> p.ItemSpec |] + referenceScatterPaths = [| for p in rar.ScatterFiles -> p.ItemSpec |] + referenceCopyLocalPaths = [| for p in rar.CopyLocalFiles -> p.ItemSpec |] + suggestedBindingRedirects = [| for p in rar.SuggestedRedirects -> p.ItemSpec |] + } + + let Resolve( + resolutionEnvironment: ResolutionEnvironment, + references:(string*(*baggage*)string)[], + targetFrameworkVersion:string, + targetFrameworkDirectories:string list, + targetProcessorArchitecture:string, + outputDirectory:string, + fsharpCoreExplicitDirOrFSharpBinariesDir:string, + explicitIncludeDirs:string list, + implicitIncludeDir:string, + frameworkRegistryBase:string, + assemblyFoldersSuffix:string, + assemblyFoldersConditions:string, + logmessage:string->unit, + logwarning:ErrorWarningCallbackSig, + logerror:ErrorWarningCallbackSig ) = + // The {RawFileName} target is 'dangerous', in the sense that is uses Directory.GetCurrentDirectory() to resolve unrooted file paths. + // It is unreliable to use this mutable global state inside Visual Studio. As a result, we partition all references into a "rooted" set + // (which contains e.g. C:\MyDir\MyAssem.dll) and "unrooted" (everything else). We only allow "rooted" to use {RawFileName}. Note that + // unrooted may still find 'local' assemblies by virtue of the fact that "implicitIncludeDir" is one of the places searched during + // assembly resolution. + let references = references |> Array.map (fun ((file,baggage) as data) -> + // However, MSBuild will not resolve 'relative' paths, even when e.g. implicitIncludeDir is part of the search. As a result, + // if we have an unrooted path+filename, we'll assume this is relative to the project directory and root it. + if FileSystem.IsPathRootedShim(file) then + data // fine, e.g. "C:\Dir\foo.dll" + elif not(file.Contains("\\") || file.Contains("/")) then + data // fine, e.g. "System.Transactions.dll" + else + // we have a 'relative path', e.g. "bin/Debug/foo.exe" or "..\Yadda\bar.dll" + // turn it into an absolute path based at implicitIncludeDir + (System.IO.Path.Combine(implicitIncludeDir, file), baggage) + ) + let rooted, unrooted = references |> Array.partition (fun (file,_baggage) -> FileSystem.IsPathRootedShim(file)) + + let CallResolveCore(references, allowRawFileName) = + if Array.isEmpty references then + { + resolvedFiles = [| |] + referenceDependencyPaths = [| |] + relatedPaths = [| |] + referenceSatellitePaths = [| |] + referenceScatterPaths = [| |] + referenceCopyLocalPaths = [| |] + suggestedBindingRedirects = [| |] + } + else + // all the params are the same... + ResolveCore( + resolutionEnvironment, + references, // ... except this + targetFrameworkVersion, + targetFrameworkDirectories, + targetProcessorArchitecture, + outputDirectory, + fsharpCoreExplicitDirOrFSharpBinariesDir, + explicitIncludeDirs, + implicitIncludeDir, + frameworkRegistryBase, + assemblyFoldersSuffix, + assemblyFoldersConditions, + allowRawFileName, // ... and this + logmessage, + logwarning, + logerror) + + let rootedResults = CallResolveCore(rooted, true) + let unrootedResults = CallResolveCore(unrooted, false) + // now unify the two sets of results + { + resolvedFiles = Array.concat [| rootedResults.resolvedFiles; unrootedResults.resolvedFiles |] + referenceDependencyPaths = set rootedResults.referenceDependencyPaths |> Set.union (set unrootedResults.referenceDependencyPaths) |> Set.toArray + relatedPaths = set rootedResults.relatedPaths |> Set.union (set unrootedResults.relatedPaths) |> Set.toArray + referenceSatellitePaths = set rootedResults.referenceSatellitePaths |> Set.union (set unrootedResults.referenceSatellitePaths) |> Set.toArray + referenceScatterPaths = set rootedResults.referenceScatterPaths |> Set.union (set unrootedResults.referenceScatterPaths) |> Set.toArray + referenceCopyLocalPaths = set rootedResults.referenceCopyLocalPaths |> Set.union (set unrootedResults.referenceCopyLocalPaths) |> Set.toArray + suggestedBindingRedirects = set rootedResults.suggestedBindingRedirects |> Set.union (set unrootedResults.suggestedBindingRedirects) |> Set.toArray + } + +#endif diff --git a/src/fsharp/ReferenceResolution.fsi b/src/fsharp/ReferenceResolution.fsi new file mode 100644 index 0000000..58aea2b --- /dev/null +++ b/src/fsharp/ReferenceResolution.fsi @@ -0,0 +1,94 @@ +namespace Viz + +/// This type exists to have a concrete 'Target' type for a DebuggerVisualizerAttribute. +/// Ideally it would be out in its own assembly, but then the compiler would need to take a dependency on that assembly, so instead we +/// pragmatically just shove this into the compiler assembly itself. +type internal Visualizable = + new : obj -> Visualizable + member Data : obj + /// assuming this assembly is already in the debuggee process, then Viz.Visualiable.Make(foo) in the Watch window will make a visualizer for foo + static member Make : obj -> Visualizable + +namespace Microsoft.FSharp.Compiler + +module internal MSBuildResolver = + + exception ResolutionFailure + + /// Describes the location where the reference was found. + type ResolvedFrom = + | AssemblyFolders + | AssemblyFoldersEx + | TargetFrameworkDirectory + | RawFileName + | GlobalAssemblyCache + | Path of string + | Unknown + + /// Whether the resolve should follow compile-time rules or runtime rules. + type ResolutionEnvironment = + | CompileTimeLike + | RuntimeLike // Don't allow stubbed-out reference assemblies + | DesigntimeLike + +#if SILVERLIGHT +#else + + val DotNetFrameworkReferenceAssembliesRootDirectory : string + + /// Information about a resolved file. + type ResolvedFile = { + /// Item specification + itemSpec:string + /// Location that the assembly was resolved from + resolvedFrom:ResolvedFrom + /// The long fusion name of the assembly + fusionName:string + /// The version of the assembly (like 4.0.0.0) + version:string + /// The name of the redist the assembly was found in + redist:string + /// Round-tripped baggage string + baggage:string + } + + /// Reference resolution results. All paths are fully qualified. + type ResolutionResults = { + /// Paths to primary references + resolvedFiles:ResolvedFile array + /// Paths to dependencies + referenceDependencyPaths:string array + /// Paths to related files (like .xml and .pdb) + relatedPaths:string array + /// Paths to satellite assemblies used for localization. + referenceSatellitePaths:string array + /// Additional files required to support multi-file assemblies. + referenceScatterPaths:string array + /// Paths to files that reference resolution recommend be copied to the local directory + referenceCopyLocalPaths:string array + /// Binding redirects that reference resolution recommends for the app.config file. + suggestedBindingRedirects:string array + } + + /// Callback for errors and warnings. + type ErrorWarningCallbackSig = + ((*code:*)string->(*message*)string->unit) + + + val Resolve : + resolutionEnvironment: ResolutionEnvironment * + references:(string*(*baggage*)string)[] * + targetFrameworkVersion:string * + targetFrameworkDirectories:string list * + targetProcessorArchitecture:string * + outputDirectory:string * + fsharpBinariesDir:string * + explicitIncludeDirs:string list * + implicitIncludeDir:string * + frameworkRegistryBase:string * + assemblyFoldersSuffix:string * + assemblyFoldersConditions:string * + logmessage:(string->unit) * + logwarning:ErrorWarningCallbackSig * + logerror:ErrorWarningCallbackSig -> ResolutionResults +#endif diff --git a/src/fsharp/ccuthunk.fs b/src/fsharp/ccuthunk.fs new file mode 100644 index 0000000..94d3b65 --- /dev/null +++ b/src/fsharp/ccuthunk.fs @@ -0,0 +1,22 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +namespace Microsoft.FSharp.Compiler + +open Internal.Utilities +open Microsoft.FSharp.Compiler +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Diagnostics + +open Microsoft.FSharp.Compiler.Ast +open Microsoft.FSharp.Compiler.Lib + diff --git a/src/fsharp/fsc.fsi b/src/fsharp/fsc.fsi new file mode 100644 index 0000000..e450e19 --- /dev/null +++ b/src/fsharp/fsc.fsi @@ -0,0 +1,14 @@ +module internal Microsoft.FSharp.Compiler.Driver + +open Microsoft.FSharp.Compiler.ErrorLogger +open Microsoft.FSharp.Compiler.Build + +/// the F# project system calls this to pop up type provider security dialog if needed +val internal runFromCommandLineToImportingAssemblies : (string -> unit) * string[] * string * string * Exiter -> unit + +#if NO_COMPILER_BACKEND +#else +/// fsc.exe calls this +val mainCompile : argv : string[] * bannerAlreadyPrinted : bool * exiter : Exiter * createErrorLogger:(TcConfigBuilder -> ErrorLogger) -> unit + +#endif \ No newline at end of file diff --git a/src/fsharp/fscmain.fs b/src/fsharp/fscmain.fs new file mode 100644 index 0000000..bd472e8 --- /dev/null +++ b/src/fsharp/fscmain.fs @@ -0,0 +1,323 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + + +module internal Microsoft.FSharp.Compiler.CommandLineMain + +open System.IO +open System.Text +open System.Reflection +open Microsoft.FSharp.Compiler +open Microsoft.FSharp.Compiler.AbstractIL.IL +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library +open Microsoft.FSharp.Compiler.ErrorLogger +open Microsoft.FSharp.Compiler.Driver +open Internal.Utilities +open Microsoft.FSharp.Compiler.Lib +open Microsoft.FSharp.Compiler.Range +open Microsoft.FSharp.Compiler.Build +open System.Runtime.CompilerServices + +type TypeInThisAssembly() = member x.Dummy = 1 + +/// Collect the output from the stdout and stderr streams, character by character, +/// recording the console color used along the way. +type OutputCollector() = + let output = ResizeArray() + let outWriter isOut = + { new TextWriter() with + member x.Write(c:char) = + lock output (fun () -> + output.Add (isOut, (try Some System.Console.ForegroundColor with _ -> None) ,c)) + member x.Encoding = Encoding.UTF8 } + do ignore outWriter + do System.Console.SetOut (outWriter true) + do System.Console.SetError (outWriter false) + member x.GetTextAndClear() = lock output (fun () -> let res = output.ToArray() in output.Clear(); res) + +/// Implement the optional resident compilation service +module FSharpResidentCompiler = + + open System + open System.Diagnostics + open System.Runtime.Remoting.Channels + open System.Runtime.Remoting + open System.Runtime.Remoting.Lifetime + + /// The compilation server, which runs in the server process. Accessed by clients using .NET remoting. + type FSharpCompilationServer() = + inherit MarshalByRefObject() + + static let onWindows = + match System.Environment.OSVersion.Platform with + | PlatformID.Win32NT | PlatformID.Win32S | PlatformID.Win32Windows | PlatformID.WinCE -> true + | _ -> false + + // The channel/socket name is qualified by the user name (and domain on windows) + static let domainName = if onWindows then Environment.GetEnvironmentVariable "USERDOMAIN" else "" + static let userName = Environment.GetEnvironmentVariable (if onWindows then "USERNAME" else "USER") + // Use different base channel names on mono and CLR as a CLR remoting process can't talk + // to a mono server + static let baseChannelName = if runningOnMono then "FSCChannelMono" else "FSCChannel" + static let channelName = baseChannelName + "_" + domainName + "_" + userName + static let serverName = if runningOnMono then "FSCServerMono" else "FSCSever" + static let mutable serverExists = true + + let outputCollector = new OutputCollector() + + // This background agent ensures all compilation requests sent to the server are serialized + let agent = MailboxProcessor<_>.Start(fun inbox -> + async { + while true do + let! (pwd,argv, reply: AsyncReplyChannel<_>) = inbox.Receive() + if !progress then printfn "server agent: got compilation request, argv = %A" argv + let exitCode = + try + Environment.CurrentDirectory <- pwd + // Install the right exiter so we can catch "StopProcessing" without exiting the server + let exiter = { new Exiter with member x.Exit n = raise StopProcessing } + let createErrorLogger = (fun tcConfigB -> ErrorLoggerThatQuitsAfterMaxErrors(tcConfigB, exiter)) + mainCompile (argv, true, exiter,createErrorLogger); + if !progress then printfn "server: finished compilation request, argv = %A" argv + 0 + with e -> + if !progress then printfn "server: finished compilation request with errors, argv = %A, e = %s" argv (e.ToString()) + stopProcessingRecovery e range0 + 1 + let output = outputCollector.GetTextAndClear() + if !progress then printfn "ouput: %A" output + if !progress then printfn "sending reply..." + reply.Reply(output, exitCode) + if !progress then printfn "collecting..." + GC.Collect(3) + if !progress then printfn "considering exit..." + // Exit the server if there are no outstanding requests and the + // current memory usage after collection is over 200MB + if inbox.CurrentQueueLength = 0 && GC.GetTotalMemory(true) > 200L * 1024L * 1024L then + Environment.Exit 0 + }) + + member x.Run() = + while serverExists do + if !progress then printfn "server: startup thread sleeping..." + System.Threading.Thread.Sleep 1000 + + abstract Ping : unit -> string + abstract Compile : string * string[] -> (bool * System.ConsoleColor option * char) [] * int + default x.Ping() = "ping" + default x.Compile (pwd,argv) = + if !progress then printfn "server: got compilation request, (pwd, argv) = %A" (pwd, argv) + let res = agent.PostAndReply(fun reply -> (pwd,argv,reply)) + if !progress then printfn "server: got response, response = %A" res + res + + override x.Finalize() = + serverExists <- false + + // This is called on the server object by .NET remoting to initialize the lifetime characteristics + // of the server object. + override x.InitializeLifetimeService() = + let lease = (base.InitializeLifetimeService() :?> ILease) + if (lease.CurrentState = LeaseState.Initial) then + lease.InitialLeaseTime <- TimeSpan.FromDays(1.0); + lease.SponsorshipTimeout <- TimeSpan.FromMinutes(2.0); + lease.RenewOnCallTime <- TimeSpan.FromDays(1.0); + box lease + + static member RunServer() = + progress := !progress || condition "FSHARP_SERVER_PROGRESS" + if !progress then printfn "server: initializing server object" + let server = new FSharpCompilationServer() + let chan = new Ipc.IpcChannel(channelName) + ChannelServices.RegisterChannel(chan,false); + RemotingServices.Marshal(server,serverName) |> ignore + + // On Unix, the file permissions of the implicit socket need to be set correctly to make this + // private to the user. + if runningOnMono then + try + let monoPosix = System.Reflection.Assembly.Load("Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756") + let monoUnixFileInfo = monoPosix.GetType("Mono.Unix.UnixFileSystemInfo") + let socketName = Path.Combine(FileSystem.GetTempPathShim(), channelName) + let fileEntry = monoUnixFileInfo.InvokeMember("GetFileSystemEntry", (BindingFlags.InvokeMethod ||| BindingFlags.Static ||| BindingFlags.Public), null, null, [| box socketName |],System.Globalization.CultureInfo.InvariantCulture) + // Add 0x00000180 (UserReadWriteExecute) to the access permissions on Unix + monoUnixFileInfo.InvokeMember("set_FileAccessPermissions", (BindingFlags.InvokeMethod ||| BindingFlags.Instance ||| BindingFlags.Public), null, fileEntry, [| box 0x00000180 |],System.Globalization.CultureInfo.InvariantCulture) |> ignore +#if DEBUG + if !progress then printfn "server: good, set permissions on socket name '%s'" socketName + let fileEntry = monoUnixFileInfo.InvokeMember("GetFileSystemEntry", (BindingFlags.InvokeMethod ||| BindingFlags.Static ||| BindingFlags.Public), null, null, [| box socketName |],System.Globalization.CultureInfo.InvariantCulture) + let currPermissions = monoUnixFileInfo.InvokeMember("get_FileAccessPermissions", (BindingFlags.InvokeMethod ||| BindingFlags.Instance ||| BindingFlags.Public), null, fileEntry, [| |],System.Globalization.CultureInfo.InvariantCulture) |> unbox + if !progress then printfn "server: currPermissions = '%o' (octal)" currPermissions +#endif + with e -> +#if DEBUG + printfn "server: failed to set permissions on socket, perhaps on windows? Is is not needed there." +#endif + () + // Fail silently + server.Run() + + static member private ConnectToServer() = + Activator.GetObject(typeof,"ipc://" + channelName + "/" + serverName) + :?> FSharpCompilationServer + + static member TryCompileUsingServer(fscServerExe,argv) = + // Enable these lines to write a log file, e.g. when running under xbuild + //let os = System.IO.File.CreateText "/tmp/fsc-client-log" + //let printfn fmt = Printf.kfprintf (fun () -> fprintfn os ""; os.Flush()) os fmt + progress := !progress || condition "FSHARP_SERVER_PROGRESS" + let pwd = System.Environment.CurrentDirectory + let clientOpt = + if !progress then printfn "client: creating client" + // Detect the absence of the channel via the exception. Probably not the best way. + // Different exceptions get thrown here on Mono and Windows. + let client = FSharpCompilationServer.ConnectToServer() + try + if !progress then printfn "client: attempting to connect to existing service (1)" + client.Ping() |> ignore + if !progress then printfn "client: connected to existing service" + Some client + with _ -> + if !progress then printfn "client: error while creating client, starting client instead" + let procInfo = + if runningOnMono then + let shellName, useShellExecute = + match System.Environment.GetEnvironmentVariable("FSC_MONO") with + | null -> + if onWindows then + // e.g. "C:\Program Files\Mono-2.6.1\lib\mono\2.0\mscorlib.dll" --> "C:\Program Files\Mono-2.6.1\bin\mono.exe" + Path.Combine(Path.GetDirectoryName (typeof.Assembly.Location), @"..\..\..\bin\mono.exe"), false + else + "mono-sgen", true + | path -> path, true + + ProcessStartInfo(FileName = shellName, + Arguments = fscServerExe + " /server", + CreateNoWindow = true, + UseShellExecute = useShellExecute) + else + ProcessStartInfo(FileName=fscServerExe, + Arguments = "/server", + CreateNoWindow = true, + UseShellExecute = false) + + let cmdProcess = new Process(StartInfo=procInfo) + + //let exitE = cmdProcess.Exited |> Observable.map (fun x -> x) + + cmdProcess.Start() |> ignore + //exitE.Add(fun _ -> if !progress then eprintfn "client: the server has exited") + cmdProcess.EnableRaisingEvents <- true; + + // Create the client proxy and attempt to connect to the server + let rec tryAcccesServer nRemaining = + if !progress then printfn "client: trying to access server, nRemaining = '%d'" nRemaining + if nRemaining = 0 then + // Failed to connect to server, give up + None + else + try + if !progress then printfn "client: attempting to connect to existing service (2)" + client.Ping() |> ignore + if !progress then printfn "client: connected to existing service" + Some client + // Detect the absence of the channel via the exception. Probably not the best way. + // Different exceptions get thrown here on Mono and Windows. + with _ (* System.Runtime.Remoting.RemotingException *) -> + // Sleep a bit + System.Threading.Thread.Sleep 50 + tryAcccesServer (nRemaining - 1) + + tryAcccesServer 20 + + match clientOpt with + | Some client -> + if !progress then printfn "client: calling client.Compile(%A)" argv + // Install the global error logger and never remove it. This logger does have all command-line flags considered. + try + let (output, exitCode) = + try client.Compile (pwd, argv) + with e -> + printfn "server error: %s" (e.ToString()) + raise (Error (FSComp.SR.fscRemotingError(), rangeStartup)) + + if !progress then printfn "client: returned from client.Compile(%A), res = %d" argv exitCode + use holder = + try let originalConsoleColor = Console.ForegroundColor + { new System.IDisposable with member x.Dispose() = Console.ForegroundColor <- originalConsoleColor } + with _ -> null + let mutable prevConsoleColor = try Console.ForegroundColor with _ -> ConsoleColor.Black + for (isOut, consoleColorOpt, c:char) in output do + try match consoleColorOpt with + | Some consoleColor -> + if prevConsoleColor <> consoleColor then + Console.ForegroundColor <- consoleColor; + | None -> () + with _ -> () + c |> (if isOut then System.Console.Out.Write else System.Console.Error.Write) + Some exitCode + with err -> + let sb = System.Text.StringBuilder() + OutputErrorOrWarning (pwd,true,false,ErrorStyle.DefaultErrors,true) sb (PhasedError.Create(err,BuildPhase.Compile)) + eprintfn "%s" (sb.ToString()) + // We continue on and compile in-process - the server appears to have died half way through. + None + | None -> + None + +module Driver = + let main argv = + // Check for --pause as the very first step so that a compiler can be attached here. + if argv |> Array.exists (fun x -> x = "/pause" || x = "--pause") then + System.Console.WriteLine("Press any key to continue...") + System.Console.ReadKey() |> ignore + if argv |> Array.exists (fun x -> x = "/resident" || x = "--resident") then + let argv = argv |> Array.filter (fun x -> x <> "/resident" && x <> "--resident") + + if not (argv |> Array.exists (fun x -> x = "/nologo" || x = "--nologo")) then + printfn "%s" (FSComp.SR.buildProductName(FSharpEnvironment.DotNetBuildString)) + printfn "%s" (FSComp.SR.optsCopyright()) + + let fscServerExe = typeof.Assembly.Location + let exitCodeOpt = FSharpResidentCompiler.FSharpCompilationServer.TryCompileUsingServer(fscServerExe,argv) + match exitCodeOpt with + | Some exitCode -> exitCode + | None -> + let exiter = QuitProcessExiter + let createErrorLogger = (fun tcConfigB -> ErrorLoggerThatQuitsAfterMaxErrors(tcConfigB, exiter)) + mainCompile (argv, true, exiter, createErrorLogger) + 0 + + elif argv |> Array.exists (fun x -> x = "/server" || x = "--server") then + FSharpResidentCompiler.FSharpCompilationServer.RunServer() + 0 + + else + let exiter = QuitProcessExiter + let createErrorLogger = (fun tcConfigB -> ErrorLoggerThatQuitsAfterMaxErrors(tcConfigB, exiter)) + mainCompile (argv, false, QuitProcessExiter, createErrorLogger) + 0 + + +[] +do () + +[] +let main(argv) = + use unwindBuildPhase = PushThreadBuildPhaseUntilUnwind (BuildPhase.Parameter) + if not runningOnMono then Lib.UnmanagedProcessExecutionOptions.EnableHeapTerminationOnCorruption() (* SDL recommendation *) + + try + Driver.main(Array.append [| "fsc.exe" |] argv); + with e -> + errorRecovery e Microsoft.FSharp.Compiler.Range.range0; + 1 + diff --git a/src/fsharp/fsiattrs.fs b/src/fsharp/fsiattrs.fs new file mode 100644 index 0000000..7335831 --- /dev/null +++ b/src/fsharp/fsiattrs.fs @@ -0,0 +1,15 @@ +//---------------------------------------------------------------------------- +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +module Microsoft.FSharp.Compiler.Interactive.Attributes +[] +do() + diff --git a/src/fsharp/fsiaux.fs b/src/fsharp/fsiaux.fs new file mode 100644 index 0000000..d5d45f2 --- /dev/null +++ b/src/fsharp/fsiaux.fs @@ -0,0 +1,150 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + + +namespace Microsoft.FSharp.Compiler.Interactive + +open System +open System.Diagnostics +open System.Threading + +[] +[] +do() + +type IEventLoop = + abstract Run : unit -> bool + abstract Invoke : (unit -> 'T) -> 'T + abstract ScheduleRestart : unit -> unit + +// An implementation of IEventLoop suitable for the command-line console +[] +type internal SimpleEventLoop() = + let runSignal = new AutoResetEvent(false) + let exitSignal = new AutoResetEvent(false) + let doneSignal = new AutoResetEvent(false) + let queue = ref ([] : (unit -> obj) list) + let result = ref (None : obj option) + let setSignal(signal : AutoResetEvent) = while not (signal.Set()) do Thread.Sleep(1); done + let waitSignal signal = WaitHandle.WaitAll([| (signal :> WaitHandle) |]) |> ignore + let waitSignal2 signal1 signal2 = + WaitHandle.WaitAny([| (signal1 :> WaitHandle); (signal2 :> WaitHandle) |]) + let running = ref false + let restart = ref false + interface IEventLoop with + member x.Run() = + running := true; + let rec run() = + match waitSignal2 runSignal exitSignal with + | 0 -> + !queue |> List.iter (fun f -> result := try Some(f()) with _ -> None); + setSignal doneSignal; + run() + | 1 -> + running := false; + !restart + | _ -> run() + run(); + member x.Invoke(f : unit -> 'T) : 'T = + queue := [f >> box]; + setSignal runSignal; + waitSignal doneSignal + !result |> Option.get |> unbox + member x.ScheduleRestart() = + // nb. very minor race condition here on running here, but totally + // unproblematic as ScheduleRestart and Exit are almost never called. + if !running then + restart := true; + setSignal exitSignal + interface System.IDisposable with + member x.Dispose() = + runSignal.Close(); + exitSignal.Close(); + doneSignal.Close(); + + + +[] +type InteractiveSession() = + let mutable evLoop = (new SimpleEventLoop() :> IEventLoop) + let mutable showIDictionary = true + let mutable showDeclarationValues = true + let mutable args = +#if SILVERLIGHT + [|"fsi.exe"|] +#else + System.Environment.GetCommandLineArgs() +#endif + let mutable fpfmt = "g10" + let mutable fp = (System.Globalization.CultureInfo.InvariantCulture :> System.IFormatProvider) + let mutable printWidth = 78 + let mutable printDepth = 100 + let mutable printLength = 100 + let mutable printSize = 10000 + let mutable showIEnumerable = true + let mutable showProperties = true + let mutable addedPrinters = [] + + member self.FloatingPointFormat with get() = fpfmt and set v = fpfmt <- v + member self.FormatProvider with get() = fp and set v = fp <- v + member self.PrintWidth with get() = printWidth and set v = printWidth <- v + member self.PrintDepth with get() = printDepth and set v = printDepth <- v + member self.PrintLength with get() = printLength and set v = printLength <- v + member self.PrintSize with get() = printSize and set v = printSize <- v + member self.ShowDeclarationValues with get() = showDeclarationValues and set v = showDeclarationValues <- v + member self.ShowProperties with get() = showProperties and set v = showProperties <- v + member self.ShowIEnumerable with get() = showIEnumerable and set v = showIEnumerable <- v + member self.ShowIDictionary with get() = showIDictionary and set v = showIDictionary <- v + member self.AddedPrinters with get() = addedPrinters and set v = addedPrinters <- v + + [] + member self.CommandLineArgs + with get() = args + and set v = args <- v + + member self.AddPrinter(printer : 'T -> string) = + addedPrinters <- Choice1Of2 (typeof<'T>, (fun (x:obj) -> printer (unbox x))) :: addedPrinters + + member self.EventLoop + with get () = evLoop + and set (x:IEventLoop) = evLoop.ScheduleRestart(); evLoop <- x + + member self.AddPrintTransformer(printer : 'T -> obj) = + addedPrinters <- Choice2Of2 (typeof<'T>, (fun (x:obj) -> printer (unbox x))) :: addedPrinters + +#if SILVERLIGHT +#else +[] +do() +#endif + + +module Settings = + let fsi = new InteractiveSession() + +#if SILVERLIGHT +#else + [] + do() +#endif + +module RuntimeHelpers = + open System + open System.Reflection + + let internal savedIt = ref (typeof,box 0) + let SaveIt (x:'T) = (savedIt := (typeof<'T>, box x)) + let internal GetSavedIt () = snd !savedIt + let internal GetSavedItType () = fst !savedIt +#if SILVERLIGHT + let GetSimpleEventLoop() = new SimpleEventLoop() :> IEventLoop +#endif diff --git a/src/fsharp/fsiaux.fsi b/src/fsharp/fsiaux.fsi new file mode 100644 index 0000000..a805cb8 --- /dev/null +++ b/src/fsharp/fsiaux.fsi @@ -0,0 +1,72 @@ + +namespace Microsoft.FSharp.Compiler.Interactive + +/// An event loop used by the currently executing F# Interactive session to execute code +/// in the context of a GUI or another event-based system. +type IEventLoop = + /// Run the event loop. + /// True if the event loop was restarted; false otherwise. + abstract Run : unit -> bool + /// Request that the given operation be run synchronously on the event loop. + /// The result of the operation. + abstract Invoke : (unit -> 'T) -> 'T + /// Schedule a restart for the event loop. + abstract ScheduleRestart : unit -> unit + +[] +/// Operations supported by the currently executing F# Interactive session. +type InteractiveSession = + /// Get or set the floating point format used in the output of the interactive session. + member FloatingPointFormat: string with get,set + /// Get or set the format provider used in the output of the interactive session. + member FormatProvider: System.IFormatProvider with get,set + /// Get or set the print width of the interactive session. + member PrintWidth : int with get,set + /// Get or set the print depth of the interactive session. + member PrintDepth : int with get,set + /// Get or set the total print length of the interactive session. + member PrintLength : int with get,set + /// Get or set the total print size of the interactive session. + member PrintSize : int with get,set + /// When set to 'false', disables the display of properties of evaluated objects in the output of the interactive session. + member ShowProperties : bool with get,set + /// When set to 'false', disables the display of sequences in the output of the interactive session. + member ShowIEnumerable: bool with get,set + /// When set to 'false', disables the display of declaration values in the output of the interactive session. + member ShowDeclarationValues: bool with get,set + /// Register a printer that controls the output of the interactive session. + member AddPrinter: ('T -> string) -> unit + /// Register a print transformer that controls the output of the interactive session. + member AddPrintTransformer: ('T -> obj) -> unit + + member internal AddedPrinters : Choice<(System.Type * (obj -> string)), + (System.Type * (obj -> obj))> list + + + /// The command line arguments after ignoring the arguments relevant to the interactive + /// environment and replacing the first argument with the name of the last script file, + /// if any. Thus 'fsi.exe test1.fs test2.fs -- hello goodbye' will give arguments + /// 'test2.fs', 'hello', 'goodbye'. This value will normally be different to those + /// returned by System.Environment.GetCommandLineArgs. + member CommandLineArgs : string [] with get,set + + /// Gets or sets a the current event loop being used to process interactions. + member EventLoop: IEventLoop with get,set + + + +module Settings = + + /// The settings associated with the interactive session. + val fsi : InteractiveSession + +/// Hooks (internal use only, may change without notice). +module RuntimeHelpers = + val SaveIt : 'T -> unit + val internal GetSavedIt : unit -> obj + val internal GetSavedItType : unit -> System.Type +(* val openPaths : unit -> string[] *) + +#if SILVERLIGHT + val GetSimpleEventLoop : unit -> IEventLoop +#endif diff --git a/src/fsharp/lib.fs b/src/fsharp/lib.fs new file mode 100644 index 0000000..309adb4 --- /dev/null +++ b/src/fsharp/lib.fs @@ -0,0 +1,660 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + + +module internal Microsoft.FSharp.Compiler.Lib + +open System.IO +open System.Collections.Generic +open Internal.Utilities +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library + + +/// is this the developer-debug build? +let debug = false +let verbose = false +let progress = ref false +let tracking = ref false // intended to be a general hook to control diagnostic output when tracking down bugs + +let condition _s = +#if SILVERLIGHT + false +#else + try (System.Environment.GetEnvironmentVariable(_s) <> null) with _ -> false +#endif + +let dispose (x:System.IDisposable) = match x with null -> () | x -> x.Dispose() + +//------------------------------------------------------------------------- +// Library: bits +//------------------------------------------------------------------------ + +module Bits = + let b0 n = (n &&& 0xFF) + let b1 n = ((n >>> 8) &&& 0xFF) + let b2 n = ((n >>> 16) &&& 0xFF) + let b3 n = ((n >>> 24) &&& 0xFF) + + let rec pown32 n = if n = 0 then 0 else (pown32 (n-1) ||| (1 <<< (n-1))) + let rec pown64 n = if n = 0 then 0L else (pown64 (n-1) ||| (1L <<< (n-1))) + let mask32 m n = (pown32 n) <<< m + let mask64 m n = (pown64 n) <<< m + + +//------------------------------------------------------------------------- +// Library: files +//------------------------------------------------------------------------ + +module Filename = + let fullpath cwd nm = + let p = if FileSystem.IsPathRootedShim(nm) then nm else Path.Combine(cwd,nm) + try FileSystem.GetFullPathShim(p) with + | :? System.ArgumentException + | :? System.ArgumentNullException + | :? System.NotSupportedException + | :? System.IO.PathTooLongException + | :? System.Security.SecurityException -> p + + let hasSuffixCaseInsensitive suffix filename = (* case-insensitive *) + Filename.checkSuffix (String.lowercase filename) (String.lowercase suffix) + + let isDll file = hasSuffixCaseInsensitive ".dll" file + +//------------------------------------------------------------------------- +// Library: Orders +//------------------------------------------------------------------------ + +module Bool = + let order = LanguagePrimitives.FastGenericComparer + +module Int32 = + let order = LanguagePrimitives.FastGenericComparer + +module Int64 = + let order = LanguagePrimitives.FastGenericComparer + +module Pair = + let order (compare1: IComparer<'T1>, compare2: IComparer<'T2>) = + { new IComparer<'T1 * 'T2> with + member __.Compare((a1,a2),(aa1,aa2)) = + let res1 = compare1.Compare (a1, aa1) + if res1 <> 0 then res1 else compare2.Compare (a2, aa2) } + + +type NameSet = Zset +[] +module NameSet = + let ofList l : NameSet = List.foldBack Zset.add l (Zset.empty String.order) + +[] +module NameMap = + let domain m = Map.foldBack (fun x _ acc -> Zset.add x acc) m (Zset.empty String.order) + let domainL m = Zset.elements (domain m) + + +(* + +//------------------------------------------------------------------------- +// Library: Atoms +//------------------------------------------------------------------------ + +type AtomTable = + { LookupTable : Dictionary + EncodeTable : Dictionary } + member at.Encode(name:string) = + let mutable res = 0 + let idx = + if at.EncodeTable.TryGetValue(name, &res) then + res + else + let idx = at.EncodeTable.Count + at.LookupTable.[idx] <- name + at.EncodeTable.[name] <- idx + idx + Atom(res +#if DEBUG + ,at +#endif + ) + + +and Atom internal (idx:int32 +#if DEBUG + ,_provider:AtomTable +#endif + ) = + member __.Index = idx + member __.Deref(provider: AtomTable) = + +#if DEBUG + assert (provider = _provider) + assert (provider.LookupTable.ContainsKey idx) +#endif + provider.LookupTable.[idx] +*) + + + +//--------------------------------------------------------------------------- +// Library: Pre\Post checks +//------------------------------------------------------------------------- +module Check = + + /// Throw System.InvalidOperationException() if argument is None. + /// If there is a value (e.g. Some(value)) then value is returned. + let NotNone argname (arg:'T option) : 'T = + match arg with + | None -> raise (new System.InvalidOperationException(argname)) + | Some x -> x + + /// Throw System.ArgumentNullException() if argument is null. + let ArgumentNotNull arg argname = + match box(arg) with + | null -> raise (new System.ArgumentNullException(argname)) + | _ -> () + + + /// Throw System.ArgumentNullException() if array argument is null. + /// Throw System.ArgumentOutOfRangeException() is array argument is empty. + let ArrayArgumentNotNullOrEmpty (arr:'T[]) argname = + ArgumentNotNull arr argname + if (0 = arr.Length) then + raise (new System.ArgumentOutOfRangeException(argname)) + + /// Throw System.ArgumentNullException() if string argument is null. + /// Throw System.ArgumentOutOfRangeException() is string argument is empty. + let StringArgumentNotNullOrEmpty (s:string) argname = + ArgumentNotNull s argname + if s.Length = 0 then + raise (new System.ArgumentNullException(argname)) + +//------------------------------------------------------------------------- +// Library +//------------------------------------------------------------------------ + +type IntMap<'T> = Zmap +module IntMap = + let empty () = Zmap.empty Int32.order + + let add k v (t:IntMap<'T>) = Zmap.add k v t + let find k (t:IntMap<'T>) = Zmap.find k t + let tryFind k (t:IntMap<'T>) = Zmap.tryFind k t + let remove k (t:IntMap<'T>) = Zmap.remove k t + let mem k (t:IntMap<'T>) = Zmap.mem k t + let iter f (t:IntMap<'T>) = Zmap.iter f t + let map f (t:IntMap<'T>) = Zmap.map f t + let fold f (t:IntMap<'T>) z = Zmap.fold f t z + + +//------------------------------------------------------------------------- +// Library: generalized association lists +//------------------------------------------------------------------------ + +module ListAssoc = + + /// Treat a list of key-value pairs as a lookup collection. + /// This function looks up a value based on a match from the supplied + /// predicate function. + let rec find f x l = + match l with + | [] -> notFound() + | (x',y)::t -> if f x x' then y else find f x t + + /// Treat a list of key-value pairs as a lookup collection. + /// This function returns true if two keys are the same according to the predicate + /// function passed in. + let rec containsKey (f:'key->'key->bool) (x:'key) (l:('key*'value) list) : bool = + match l with + | [] -> false + | (x',_y)::t -> f x x' || containsKey f x t + +//------------------------------------------------------------------------- +// Library: lists as generalized sets +//------------------------------------------------------------------------ + +module ListSet = + (* NOTE: O(n)! *) + let rec contains f x l = + match l with + | [] -> false + | x'::t -> f x x' || contains f x t + + (* NOTE: O(n)! *) + let insert f x l = if contains f x l then l else x::l + let unionFavourRight f l1 l2 = + match l1, l2 with + | _, [] -> l1 + | [], _ -> l2 + | _ -> List.foldBack (insert f) l1 l2 (* nb. foldBack to preserve natural orders *) + + (* NOTE: O(n)! *) + let rec private findIndexAux eq x l n = + match l with + | [] -> notFound() + | (h::t) -> if eq h x then n else findIndexAux eq x t (n+1) + + let findIndex eq x l = findIndexAux eq x l 0 + + let rec remove f x l = + match l with + | (h::t) -> if f x h then t else h:: remove f x t + | [] -> [] + + (* NOTE: quadratic! *) + let rec subtract f l1 l2 = + match l2 with + | (h::t) -> subtract f (remove (fun y2 y1 -> f y1 y2) h l1) t + | [] -> l1 + + let isSubsetOf f l1 l2 = List.forall (fun x1 -> contains f x1 l2) l1 + (* nb. preserve orders here: f must be applied to elements of l1 then elements of l2*) + let isSupersetOf f l1 l2 = List.forall (fun x2 -> contains (fun y2 y1 -> f y1 y2) x2 l1) l2 + let equals f l1 l2 = isSubsetOf f l1 l2 && isSupersetOf f l1 l2 + + let unionFavourLeft f l1 l2 = + match l1,l2 with + | _,[] -> l1 + | [],_ -> l2 + | _ -> l1 @ (subtract f l2 l1) + + + (* NOTE: not tail recursive! *) + let rec intersect f l1 l2 = + match l2 with + | (h::t) -> if contains f h l1 then h::intersect f l1 t else intersect f l1 t + | [] -> [] + + (* NOTE: quadratic! *) + // Note: if duplicates appear, keep the ones toward the _front_ of the list + let setify f l = List.foldBack (insert f) (List.rev l) [] |> List.rev + + +module FlatListSet = + let remove f x l = FlatList.filter (fun y -> not (f x y)) l + +//------------------------------------------------------------------------- +// Library: pairs +//------------------------------------------------------------------------ + +let mapFoldFst f s (x,y) = let x',s = f s x in (x',y),s +let mapFoldSnd f s (x,y) = let y',s = f s y in (x,y'),s +let pair a b = a,b + +let p13 (x,_y,_z) = x +let p23 (_x,y,_z) = y +let p33 (_x,_y,z) = z + +let map1Of2 f (a1,a2) = (f a1,a2) +let map2Of2 f (a1,a2) = (a1,f a2) +let map1Of3 f (a1,a2,a3) = (f a1,a2,a3) +let map2Of3 f (a1,a2,a3) = (a1,f a2,a3) +let map3Of3 f (a1,a2,a3) = (a1,a2,f a3) +let map3Of4 f (a1,a2,a3,a4) = (a1,a2,f a3,a4) +let map4Of4 f (a1,a2,a3,a4) = (a1,a2,a3,f a4) +let map5Of5 f (a1,a2,a3,a4,a5) = (a1,a2,a3,a4,f a5) +let map6Of6 f (a1,a2,a3,a4,a5,a6) = (a1,a2,a3,a4,a5,f a6) +let foldPair (f1,f2) acc (a1,a2) = f2 (f1 acc a1) a2 +let fold1Of2 f1 acc (a1,_a2) = f1 acc a1 +let foldTriple (f1,f2,f3) acc (a1,a2,a3) = f3 (f2 (f1 acc a1) a2) a3 +let mapPair (f1,f2) (a1,a2) = (f1 a1, f2 a2) +let mapTriple (f1,f2,f3) (a1,a2,a3) = (f1 a1, f2 a2, f3 a3) +let fmap2Of2 f z (a1,a2) = let z,a2 = f z a2 in z,(a1,a2) + +module List = + let noRepeats xOrder xs = + let s = Zset.addList xs (Zset.empty xOrder) // build set + Zset.elements s // get elements... no repeats + + let groupBy f (xs:list<'T>) = xs |> Seq.groupBy f |> Seq.map (map2Of2 Seq.toList) |> Seq.toList + +//--------------------------------------------------------------------------- +// Zmap rebinds +//------------------------------------------------------------------------- + +module Zmap = + let force k mp = match Zmap.tryFind k mp with Some x -> x | None -> failwith "Zmap.force: lookup failed" + + let mapKey key f mp = + match f (Zmap.tryFind key mp) with + | Some fx -> Zmap.add key fx mp + | None -> Zmap.remove key mp + +//--------------------------------------------------------------------------- +// Zset +//------------------------------------------------------------------------- + +module Zset = + let ofList order xs = Zset.addList xs (Zset.empty order) + + // CLEANUP NOTE: move to Zset? + let rec fixpoint f (s as s0) = + let s = f s + if Zset.equal s s0 then s0 (* fixed *) + else fixpoint f s (* iterate *) + +//--------------------------------------------------------------------------- +// Misc +//------------------------------------------------------------------------- + +let equalOn f x y = (f x) = (f y) + + +//--------------------------------------------------------------------------- +// Buffer printing utilities +//--------------------------------------------------------------------------- + +let bufs f = + let buf = System.Text.StringBuilder 100 + f buf; + buf.ToString() + +let buff (os: TextWriter) f x = + let buf = System.Text.StringBuilder 100 + f buf x; + os.Write(buf.ToString()) + +// Converts "\n" into System.Environment.NewLine before writing to os. See lib.fs:buff +let writeViaBufferWithEnvironmentNewLines (os: TextWriter) f x = + let buf = System.Text.StringBuilder 100 + f buf x; + let text = buf.ToString() + let text = text.Replace("\n",System.Environment.NewLine) + os.Write text + +//--------------------------------------------------------------------------- +// Imperative Graphs +//--------------------------------------------------------------------------- + +type GraphNode<'Data, 'Id> = { nodeId: 'Id; nodeData: 'Data; mutable nodeNeighbours: GraphNode<'Data, 'Id> list } + +type Graph<'Data, 'Id when 'Id : comparison and 'Id : equality> + (nodeIdentity: ('Data -> 'Id), + nodes: 'Data list, + edges: ('Data * 'Data) list) = + + let edges = edges |> List.map (fun (v1,v2) -> nodeIdentity v1, nodeIdentity v2) + let nodes = nodes |> List.map (fun d -> nodeIdentity d, { nodeId = nodeIdentity d; nodeData=d; nodeNeighbours=[] }) + let tab = Map.ofList nodes + let nodes = List.map snd nodes + do for node in nodes do + node.nodeNeighbours <- edges |> List.filter (fun (x,_y) -> x = node.nodeId) |> List.map (fun (_,nodeId) -> tab.[nodeId]) + + member g.GetNodeData nodeId = tab.[nodeId].nodeData + + member g.IterateCycles f = + let rec trace path node = + if List.exists (nodeIdentity >> (=) node.nodeId) path then f (List.rev path) + else List.iter (trace (node.nodeData::path)) node.nodeNeighbours + List.iter (fun node -> trace [] node) nodes + +#if OLDCODE + + member g.DepthFirstSearch() = + let grey = ref Set.empty + let time = ref 0 + let forest = ref [] + let backEdges = ref [] + let discoveryTimes = ref Map.empty + let finishingTimes = ref Map.empty + nodes |> List.iter (fun n -> + // build a dfsTree for each node in turn + let treeEdges = ref [] + let rec visit n1 = + incr time; + grey := Set.add n1.nodeId !grey; + discoveryTimes := Map.add n1.nodeId !time !discoveryTimes; + for n2 in n1.nodeNeighbours do + if not ((!grey).Contains n2.nodeId) then + treeEdges := (n1.nodeId,n2.nodeId) :: !treeEdges; + visit(n2) + else + backEdges := (n1.nodeId,n2.nodeId) :: !backEdges + incr time; + finishingTimes := Map.add n1.nodeId !time !finishingTimes; + () + if not ((!grey).Contains n.nodeId) then + visit(n); + forest := (n.nodeId,!treeEdges) :: !forest); + + !forest, !backEdges, (fun n -> (!discoveryTimes).[n]), (fun n -> (!finishingTimes).[n]) + + + // Present strongly connected components, in dependency order + // Each node is assumed to have a self-edge + member g.GetTopologicalSortStronglyConnectedComponents() = + let forest, backEdges, discoveryTimes, finishingTimes = g.DepthFirstSearch() + let nodeIds = List.map (fun n -> n.nodeId) nodes + let nodesInDecreasingFinishingOrder = + List.sortWith (fun n1 n2 -> -(compare (finishingTimes n1) (finishingTimes n2))) nodeIds + let gT = Graph (nodeIdentity, List.map g.GetNodeData nodesInDecreasingFinishingOrder, List.map (fun (x,y) -> (g.GetNodeData y, g.GetNodeData x)) edges) + let forest, backEdges, discoveryTimes, finishingTimes = gT.DepthFirstSearch() + let scc (root,tree) = Set.add root (List.foldBack (fun (n1,n2) acc -> Set.add n1 (Set.add n2 acc)) tree Set.empty) + let sccs = List.rev (List.map scc forest) + List.map (Set.toList >> List.map g.GetNodeData) sccs +#endif + + +//--------------------------------------------------------------------------- +// In some cases we play games where we use 'null' as a more efficient representation +// in F#. The functions below are used to give initial values to mutable fields. +// This is an unsafe trick, as it relies on the fact that the type of values +// being placed into the slot never utilizes "null" as a representation. To be used with +// with care. +//---------------------------------------------------------------------------- + +// The following DEBUG code does not currently compile. +//#if DEBUG +//type 'T NonNullSlot = 'T option +//let nullableSlotEmpty() = None +//let nullableSlotFull(x) = Some x +//#else +type NonNullSlot<'T> = 'T +let nullableSlotEmpty() = Unchecked.defaultof<'T> +let nullableSlotFull x = x +//#endif + +//--------------------------------------------------------------------------- +// Caches, mainly for free variables +//--------------------------------------------------------------------------- + +type cache<'T> = { mutable cacheVal: 'T NonNullSlot; } +let newCache() = { cacheVal = nullableSlotEmpty() } + +let inline cached cache resf = + match box cache.cacheVal with + | null -> + let res = resf() + cache.cacheVal <- nullableSlotFull res; + res + | _ -> + cache.cacheVal + +let inline cacheOptRef cache f = + match !cache with + | Some v -> v + | None -> + let res = f() + cache := Some res; + res + + +// There is a bug in .NET Framework v2.0.52727 DD#153959 that very occasionally hits F# code. +// It is related to recursive class loading in multi-assembly NGEN scenarios. The bug has been fixed but +// not yet deployed. +// The bug manifests itself as an ExecutionEngine failure or fast-fail process exit which comes +// and goes depending on whether components are NGEN'd or not, e.g. 'ngen install FSharp.COmpiler.dll' +// One workaround for the bug is to break NGEN loading and fixups into smaller fragments. Roughly speaking, the NGEN +// loading process works by doing delayed fixups of references in NGEN code. This happens on a per-method +// basis. For example, one manifestation is that a "print" before calling a method like Lexfilter.create gets +// displayed but the corresponding "print" in the body of that function doesn't get displayed. In between, the NGEN +// image loader is performing a whole bunch of fixups of the NGEN code for the body of that method, and also for +// bodies of methods referred to by that method. That second bit is very important: the fixup causing the crash may +// be a couple of steps down the dependency chain. +// +// One way to break work into smaller chunks is to put delays in the call chains, i.e. insert extra stack frames. That's +// what the function 'delayInsertedToWorkaroundKnownNgenBug' is for. If you get this problem, try inserting +// delayInsertedToWorkaroundKnownNgenBug "Delay1" (fun () -> ...) +// at the top of the function that doesn't seem to be being called correctly. This will help you isolate out the problem +// and may make the problem go away altogher. Enable the 'print' commands in that function too. + +let delayInsertedToWorkaroundKnownNgenBug s f = + (* Some random code to prevent inlining of this function *) + let res = ref 10 + for i = 0 to 2 do + res := !res + String.length s; + done; + if verbose then printf "------------------------executing NGEN bug delay '%s', calling 'f' --------------\n" s; + let res = f() + if verbose then printf "------------------------exiting NGEN bug delay '%s' --------------\n" s; + res + + +#if DUMPER +type Dumper(x:obj) = + [] + member self.Dump = sprintf "%A" x +#endif + +//--------------------------------------------------------------------------- +// AsyncUtil +//--------------------------------------------------------------------------- + +module internal AsyncUtil = + open System + open System.Threading + open Microsoft.FSharp.Control + + /// Represents the reified result of an asynchronous computation + [] + type AsyncResult<'T> = + | AsyncOk of 'T + | AsyncException of exn + | AsyncCanceled of OperationCanceledException + + static member Commit(res:AsyncResult<'T>) = + Async.FromContinuations (fun (cont,econt,ccont) -> + match res with + | AsyncOk v -> cont v + | AsyncException exn -> econt exn + | AsyncCanceled exn -> ccont exn) + + /// When using .NET 4.0 you can replace this type by Task<'T> + [] + type AsyncResultCell<'T>() = + let mutable result = None + // The continuation for the result, if any + let mutable savedConts = [] + + let syncRoot = new obj() + + + // Record the result in the AsyncResultCell. + // Ignore subsequent sets of the result. This can happen, e.g. for a race between + // a cancellation and a success. + member x.RegisterResult (res:AsyncResult<'T>) = + let grabbedConts = + lock syncRoot (fun () -> + if result.IsSome then + [] + else + result <- Some res; + // Invoke continuations in FIFO order + // Continuations that Async.FromContinuations provide do QUWI/SynchContext.Post, + // so the order is not overly relevant but still. + List.rev savedConts) + let postOrQueue (sc:SynchronizationContext,cont) = + match sc with + | null -> ThreadPool.QueueUserWorkItem(fun _ -> cont res) |> ignore + | sc -> sc.Post((fun _ -> cont res), state=null) + + // Run continuations outside the lock + match grabbedConts with + | [] -> () + | [(sc,cont) as c] -> + if SynchronizationContext.Current = sc then + cont res + else + postOrQueue c + | _ -> + grabbedConts |> List.iter postOrQueue + + /// Get the reified result + member private x.AsyncPrimitiveResult = + Async.FromContinuations(fun (cont,_,_) -> + let grabbedResult = + lock syncRoot (fun () -> + match result with + | Some _ -> + result + | None -> + // Otherwise save the continuation and call it in RegisterResult + let sc = SynchronizationContext.Current + savedConts <- (sc,cont)::savedConts + None) + // Run the action outside the lock + match grabbedResult with + | None -> () + | Some res -> cont res) + + + /// Get the result and commit it + member x.AsyncResult = + async { let! res = x.AsyncPrimitiveResult + return! AsyncResult.Commit(res) } + +//--------------------------------------------------------------------------- +// EnableHeapTerminationOnCorruption() +//--------------------------------------------------------------------------- + +// USAGE: call UnmanagedProcessExecutionOptions.EnableHeapTerminationOnCorruption() from "main()". +// Note: This is not SDL required but recommended. +module UnmanagedProcessExecutionOptions = + open System + open System.Runtime.InteropServices + + [] + extern UIntPtr private GetProcessHeap() + + [] + extern bool private HeapSetInformation( + UIntPtr _HeapHandle, + UInt32 _HeapInformationClass, + UIntPtr _HeapInformation, + UIntPtr _HeapInformationLength) + + [] + extern UInt32 private GetLastError() + + // Translation of C# from http://swikb/v1/DisplayOnlineDoc.aspx?entryID=826 and copy in bug://5018 + [] + let EnableHeapTerminationOnCorruption() = + if (System.Environment.OSVersion.Version.Major >= 6 && // If OS is Vista or higher + System.Environment.Version.Major < 3) then // and CLR not 3.0 or higher + // "The flag HeapSetInformation sets is available in Windows XP SP3 and later. + // The data structure used for heap information is available on earlier versions of Windows. + // The call will either return TRUE (found and set the flag) or false (flag not found). + // Not a problem in native code, so the program will merrily continue running. + // In managed code, the call to HeapSetInformation is a p/invoke. + // If HeapSetInformation returns FALSE then an exception will be thrown. + // If we are not running an OS which supports this (XP SP3, Vista, Server 2008, and Win7) + // then the call should not be made." -- see bug://5018. + // See also: + // http://blogs.msdn.com/michael_howard/archive/2008/02/18/faq-about-heapsetinformation-in-windows-vista-and-heap-based-buffer-overruns.aspx + let HeapEnableTerminationOnCorruption = 1u : uint32 + if not (HeapSetInformation(GetProcessHeap(),HeapEnableTerminationOnCorruption,UIntPtr.Zero,UIntPtr.Zero)) then + raise (System.Security.SecurityException( + "Unable to enable unmanaged process execution option TerminationOnCorruption. " + + "HeapSetInformation() returned FALSE; LastError = 0x" + + GetLastError().ToString("X").PadLeft(8,'0') + ".")) + diff --git a/src/fsharp/msft.pubkey b/src/fsharp/msft.pubkey new file mode 100644 index 0000000..110b59c Binary files /dev/null and b/src/fsharp/msft.pubkey differ diff --git a/src/fsharp/range.fs b/src/fsharp/range.fs new file mode 100644 index 0000000..b5c5bfe --- /dev/null +++ b/src/fsharp/range.fs @@ -0,0 +1,254 @@ +//---------------------------------------------------------------------------- +// +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +/// Anything to do with special names of identifiers and other lexical rules +module (* internal *) Microsoft.FSharp.Compiler.Range + +open System.IO +open System.Collections.Generic +open Microsoft.FSharp.Core.Printf +open Internal.Utilities +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library +open Microsoft.FSharp.Compiler +open Microsoft.FSharp.Compiler.Lib +open Microsoft.FSharp.Compiler.Lib.Bits + +type FileIndex = int32 + +[] +let columnBitCount = 9 +[] +let lineBitCount = 16 + +let posBitCount = lineBitCount + columnBitCount +let _ = assert (posBitCount <= 32) +let posColumnMask = mask32 0 columnBitCount +let lineColumnMask = mask32 columnBitCount lineBitCount +let inline (lsr) (x:int) (y:int) = int32 (uint32 x >>> y) + +[] +[] +type pos(code:int32) = + new (l,c) = + let l = max 0 l + let c = max 0 c + let p = ( c &&& posColumnMask) + ||| ((l <<< columnBitCount) &&& lineColumnMask) + pos p + + member p.Line = (code lsr columnBitCount) + member p.Column = (code &&& posColumnMask) + + member r.Encoding = code + static member EncodingSize = posBitCount + static member Decode (code:int32) : pos = pos code + override p.Equals(obj) = match obj with :? pos as p2 -> code = p2.Encoding | _ -> false + override p.GetHashCode() = hash code + +[] +let fileIndexBitCount = 14 +[] +let startLineBitCount = lineBitCount +[] +let startColumnBitCount = columnBitCount +[] +let heightBitCount = 15 // If necessary, could probably deduct one or two bits here without ill effect. +[] +let endColumnBitCount = columnBitCount +[] +let isSyntheticBitCount = 1 +#if DEBUG +let _ = assert (fileIndexBitCount + startLineBitCount + startColumnBitCount + heightBitCount + endColumnBitCount + isSyntheticBitCount = 64) +#endif + +[] +let fileIndexShift = 0 +[] +let startLineShift = 14 +[] +let startColumnShift = 30 +[] +let heightShift = 39 +[] +let endColumnShift = 54 +[] +let isSyntheticShift = 63 + + +[] +let fileIndexMask = 0b0000000000000000000000000000000000000000000000000011111111111111L +[] +let startLineMask = 0b0000000000000000000000000000000000111111111111111100000000000000L +[] +let startColumnMask = 0b0000000000000000000000000111111111000000000000000000000000000000L +[] +let heightMask = 0b0000000000111111111111111000000000000000000000000000000000000000L +[] +let endColumnMask = 0b0111111111000000000000000000000000000000000000000000000000000000L +[] +let isSyntheticMask = 0b1000000000000000000000000000000000000000000000000000000000000000L + +#if DEBUG +let _ = assert (startLineShift = fileIndexShift + fileIndexBitCount) +let _ = assert (startColumnShift = startLineShift + startLineBitCount) +let _ = assert (heightShift = startColumnShift + startColumnBitCount) +let _ = assert (endColumnShift = heightShift + heightBitCount) +let _ = assert (isSyntheticShift = endColumnShift + endColumnBitCount) +let _ = assert (fileIndexMask = mask64 0 fileIndexBitCount) +let _ = assert (startLineMask = mask64 startLineShift startLineBitCount) +let _ = assert (startColumnMask = mask64 startColumnShift startColumnBitCount) +let _ = assert (heightMask = mask64 heightShift heightBitCount) +let _ = assert (endColumnMask = mask64 endColumnShift endColumnBitCount) +let _ = assert (isSyntheticMask = mask64 isSyntheticShift isSyntheticBitCount) +#endif + +// This is just a standard unique-index table +type FileIndexTable() = + let indexToFileTable = new ResizeArray<_>(11) + let fileToIndexTable = new Dictionary(11) + member t.FileToIndex f = + let mutable res = 0 + let ok = fileToIndexTable.TryGetValue(f,&res) + if ok then res + else + lock fileToIndexTable (fun () -> + let mutable res = 0 in + let ok = fileToIndexTable.TryGetValue(f,&res) in + if ok then res + else + let n = indexToFileTable.Count in + indexToFileTable.Add(f) + fileToIndexTable.[f] <- n + n) + + member t.IndexToFile n = + (if n < 0 then failwithf "fileOfFileIndex: negative argument: n = %d\n" n) + (if n >= indexToFileTable.Count then failwithf "fileOfFileIndex: invalid argument: n = %d\n" n) + indexToFileTable.[n] + +let maxFileIndex = pown32 fileIndexBitCount + +// ++GLOBAL MUTBALE STATE +// WARNING: Global Mutable State, holding a mapping between integers and filenames +let fileIndexTable = new FileIndexTable() + +// Note if we exceed the maximum number of files we'll start to report incorrect file names +let fileIndexOfFile f = fileIndexTable.FileToIndex(f) % maxFileIndex +let fileOfFileIndex n = fileIndexTable.IndexToFile(n) + +let mkPos l c = pos (l,c) + +[] +[] +type range(code:int64) = + static member Zero = range(0L) + new (fidx,bl,bc,el,ec) = + range( int64 fidx + ||| (int64 bl <<< startLineShift) + ||| (int64 bc <<< startColumnShift) + ||| (int64 (el-bl) <<< heightShift) + ||| (int64 ec <<< endColumnShift) ) + + new (fidx, b:pos, e:pos) = range(fidx,b.Line,b.Column,e.Line,e.Column) + + member r.StartLine = int32((code &&& startLineMask) >>> startLineShift) + member r.StartColumn = int32((code &&& startColumnMask) >>> startColumnShift) + member r.EndLine = int32((code &&& heightMask) >>> heightShift) + r.StartLine + member r.EndColumn = int32((code &&& endColumnMask) >>> endColumnShift) + member r.IsSynthetic = int32((code &&& isSyntheticMask) >>> isSyntheticShift) <> 0 + member r.Start = pos (r.StartLine, r.StartColumn) + member r.End = pos (r.EndLine, r.EndColumn) + member r.FileIndex = int32(code &&& fileIndexMask) + member m.StartRange = range (m.FileIndex, m.Start, m.Start) + member m.EndRange = range (m.FileIndex, m.End, m.End) + member r.FileName = fileOfFileIndex r.FileIndex + member r.MakeSynthetic() = range(code ||| isSyntheticMask) + override r.ToString() = sprintf "%s (%d,%d--%d,%d) IsSynthetic=%b" r.FileName r.StartLine r.StartColumn r.EndLine r.EndColumn r.IsSynthetic + member r.ToShortString() = sprintf "(%d,%d--%d,%d)" r.StartLine r.StartColumn r.EndLine r.EndColumn + member r.Code = code + override r.Equals(obj) = match obj with :? range as r2 -> code = r2.Code | _ -> false + override r.GetHashCode() = hash code + +let mkRange f b e = range (fileIndexOfFile f, b, e) +let mkFileIndexRange fi b e = range (fi, b, e) + +(* end representation, start derived ops *) + +let posOrder = Order.orderOn (fun (p:pos) -> p.Line, p.Column) (Pair.order (Int32.order,Int32.order)) +(* rangeOrder: not a total order, but enough to sort on ranges *) +let rangeOrder = Order.orderOn (fun (r:range) -> r.FileName, r.Start) (Pair.order (String.order,posOrder)) + +let outputPos (os:TextWriter) (m:pos) = fprintf os "(%d,%d)" m.Line m.Column +let outputRange (os:TextWriter) (m:range) = fprintf os "%s%a-%a" m.FileName outputPos m.Start outputPos m.End +let boutputPos os (m:pos) = bprintf os "(%d,%d)" m.Line m.Column +let boutputRange os (m:range) = bprintf os "%s%a-%a" m.FileName boutputPos m.Start boutputPos m.End + +let posGt (p1:pos) (p2:pos) = (p1.Line > p2.Line || (p1.Line = p2.Line && p1.Column > p2.Column)) +let posEq (p1:pos) (p2:pos) = (p1.Line = p2.Line && p1.Column = p2.Column) +let posGeq p1 p2 = posEq p1 p2 || posGt p1 p2 +let posLt p1 p2 = posGt p2 p1 + +// Note, this is deliberately written in an allocation-free way, i.e. m1.Start, m1.End etc. are not called +let unionRanges (m1:range) (m2:range) = + if m1.FileIndex <> m2.FileIndex then m2 else + let b = + if (m1.StartLine > m2.StartLine || (m1.StartLine = m2.StartLine && m1.StartColumn > m2.StartColumn)) then m2 + else m1 + let e = + if (m1.EndLine > m2.EndLine || (m1.EndLine = m2.EndLine && m1.EndColumn > m2.EndColumn)) then m1 + else m2 + range (m1.FileIndex, b.StartLine, b.StartColumn, e.EndLine, e.EndColumn) + +let rangeContainsRange (m1:range) (m2:range) = + m1.FileIndex = m2.FileIndex && + posGeq m2.Start m1.Start && + posGeq m1.End m2.End + +let rangeContainsPos (m1:range) p = + posGeq p m1.Start && + posGeq m1.End p + +let rangeBeforePos (m1:range) p = + posGeq p m1.End + +let rangeN filename line = mkRange filename (mkPos line 0) (mkPos line 80) +let pos0 = mkPos 1 0 +let range0 = rangeN "unknown" 1 +let rangeStartup = rangeN "startup" 1 +let rangeCmdArgs = rangeN "commandLineArgs" 0 + +let trimRangeToLine (r:range) = + let startL,startC = r.StartLine,r.StartColumn + let endL ,_endC = r.EndLine,r.EndColumn + if endL <= startL then + r + else + let endL,endC = startL+1,0 (* Trim to the start of the next line (we do not know the end of the current line) *) + range (r.FileIndex, startL, startC, endL, endC) + +(* For Diagnostics *) +let stringOfPos (pos:pos) = sprintf "(%d,%d)" pos.Line pos.Column +let stringOfRange (r:range) = sprintf "%s%s-%s" r.FileName (stringOfPos r.Start) (stringOfPos r.End) + + +module Pos = + // Visual Studio uses line counts starting at 0, F# uses them starting at 1 + let fromVS line idx = mkPos (line+1) idx + let toVS (p:pos) = (p.Line - 1, p.Column) + + +module Range = + let toVS (m:range) = Pos.toVS m.Start, Pos.toVS m.End + + diff --git a/src/fsharp/range.fsi b/src/fsharp/range.fsi new file mode 100644 index 0000000..a5881be --- /dev/null +++ b/src/fsharp/range.fsi @@ -0,0 +1,105 @@ +//---------------------------------------------------------------------------- +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +module (* internal *) Microsoft.FSharp.Compiler.Range + +open System.Text +open System.Collections.Generic +open Internal.Utilities +open Microsoft.FSharp.Compiler.AbstractIL +open Microsoft.FSharp.Compiler.AbstractIL.Internal +open Microsoft.FSharp.Compiler + + +(* we keep a global tables of filenames that we can reference by integers *) +type FileIndex = int32 +val fileIndexOfFile : string -> FileIndex +val fileOfFileIndex : FileIndex -> string + +[] +type pos = + member Line : int + member Column : int + + member Encoding : int32 + static member Decode : int32 -> pos + /// The maximum number of bits needed to store an encoded position + static member EncodingSize : int32 + +/// Create a position for the given line and column +val mkPos : line:int -> column:int -> pos + +val posOrder : IComparer + +[] +type range = + member StartLine : int + member StartColumn : int + member EndLine : int + member EndColumn : int + member Start : pos + member End : pos + member StartRange: range + member EndRange: range + member FileIndex : int + member FileName : string + /// Synthetic marks ranges which are produced by intermediate compilation phases. This + /// bit signifies that the range covers something that should not be visible to language + /// service operations like dot-completion. + member IsSynthetic : bool + member MakeSynthetic : unit -> range + member ToShortString : unit -> string + static member Zero : range + +/// This view of range marks uses file indexes explicitly +val mkFileIndexRange : FileIndex -> pos -> pos -> range + +/// This view hides the use of file indexes and just uses filenames +val mkRange : string -> pos -> pos -> range + +val trimRangeToLine : range -> range + +/// not a total order, but enough to sort on ranges +val rangeOrder : IComparer + +val outputPos : System.IO.TextWriter -> pos -> unit +val outputRange : System.IO.TextWriter -> range -> unit +val boutputPos : StringBuilder -> pos -> unit +val boutputRange : StringBuilder -> range -> unit + +val posLt : pos -> pos -> bool +val posGt : pos -> pos -> bool +val posEq : pos -> pos -> bool +val posGeq : pos -> pos -> bool + +val unionRanges : range -> range -> range +val rangeContainsRange : range -> range -> bool +val rangeContainsPos : range -> pos -> bool +val rangeBeforePos : range -> pos -> bool + +val rangeN : string -> int -> range +val pos0 : pos +val range0 : range +val rangeStartup : range +val rangeCmdArgs : range + +(* For diagnostics *) +val stringOfPos : pos -> string +val stringOfRange : range -> string + +module Pos = + // Visual Studio uses line counts starting at 0, F# uses them starting at 1 + val fromVS : line:int -> column:int -> pos + val toVS : pos -> (int * int) + + +module Range = + val toVS : range -> (int * int) * (int * int) diff --git a/src/fsharp/sr.fs b/src/fsharp/sr.fs new file mode 100644 index 0000000..fe48cd6 --- /dev/null +++ b/src/fsharp/sr.fs @@ -0,0 +1,172 @@ + +namespace Microsoft.FSharp.Compiler + open Microsoft.FSharp.Core + open Microsoft.FSharp.Core.Operators + open Microsoft.FSharp.Collections + open Microsoft.FSharp.Reflection + open System.Globalization + open System.IO + open System.Text + open System.Reflection + + module internal SR = + let private resources = lazy (new System.Resources.ResourceManager("fsstrings", System.Reflection.Assembly.GetExecutingAssembly())) + + let GetString(name:string) = + let s = resources.Force().GetString(name, System.Globalization.CultureInfo.CurrentUICulture) +#if DEBUG + if null = s then + System.Diagnostics.Debug.Assert(false, sprintf "**RESOURCE ERROR**: Resource token %s does not exist!" name) +#endif + s + + let GetObject(name:string) = + let o = resources.Force().GetObject(name, System.Globalization.CultureInfo.CurrentUICulture) +#if DEBUG + if null = o then + System.Diagnostics.Debug.Assert(false, sprintf "**RESOURCE ERROR**: Resource token %s does not exist!" name) +#endif + o + + + module internal DiagnosticMessage = + + open Microsoft.FSharp.Core.LanguagePrimitives.IntrinsicOperators + open Microsoft.FSharp.Reflection + open System.Reflection + + let staticInvokeFlags = BindingFlags.Public ||| BindingFlags.InvokeMethod ||| BindingFlags.Static + let mkFunctionValue (tys: System.Type[]) (impl:obj->obj) = + FSharpValue.MakeFunction(FSharpType.MakeFunctionType(tys.[0],tys.[1]), impl) + + let funTyC = typeof<(obj -> obj)>.GetGenericTypeDefinition() + let mkFunTy a b = funTyC.MakeGenericType([| a;b |]) + + let isNamedType(ty:System.Type) = not (ty.IsArray || ty.IsByRef || ty.IsPointer) + let isFunctionType (ty1:System.Type) = + isNamedType(ty1) && ty1.IsGenericType && (ty1.GetGenericTypeDefinition()).Equals(funTyC) + + let rec destFunTy (ty:System.Type) = + if isFunctionType ty then + ty, ty.GetGenericArguments() + else + match ty.BaseType with + | null -> failwith "destFunTy: not a function type" + | b -> destFunTy b + + let buildFunctionForOneArgPat (ty: System.Type) impl = + let _,tys = destFunTy ty + let rty = tys.[1] + // PERF: this technique is a bit slow (e.g. in simple cases, like 'sprintf "%x"') + mkFunctionValue tys (fun inp -> impl rty inp) + + let capture1 (fmt:string) i args ty (go : obj list -> System.Type -> int -> obj) : obj = + match fmt.[i] with + | '%' -> go args ty (i+1) + | 'd' + | 'f' + | 's' -> buildFunctionForOneArgPat ty (fun rty n -> go (n::args) rty (i+1)) + | _ -> failwith "bad format specifier" + + // newlines and tabs get converted to strings when read from a resource file + // this will preserve their original intention + let postProcessString (s : string) = + s.Replace("\\n","\n").Replace("\\t","\t") + + let createMessageString (messageString : string) (fmt : Printf.StringFormat<'T>) : 'T = + let fmt = fmt.Value // here, we use the actual error string, as opposed to the one stored as fmt + let len = fmt.Length + + /// Function to capture the arguments and then run. + let rec capture args ty i = + if i >= len || (fmt.[i] = '%' && i+1 >= len) then + let b = new System.Text.StringBuilder() + b.AppendFormat(messageString, (Array.ofList (List.rev args))) |> ignore + box(b.ToString()) + // REVIEW: For these purposes, this should be a nop, but I'm leaving it + // in incase we ever decide to support labels for the error format string + // E.g., "%s%d" + elif System.Char.IsSurrogatePair(fmt,i) then + capture args ty (i+2) + else + match fmt.[i] with + | '%' -> + let i = i+1 + capture1 fmt i args ty capture + | _ -> + capture args ty (i+1) + + (unbox (capture [] (typeof<'T>) 0) : 'T) + + type ResourceString<'T>(fmtString : string, fmt : Printf.StringFormat<'T>) = + member a.Format = + createMessageString fmtString fmt + + let DeclareResourceString ((messageID : string),(fmt : Printf.StringFormat<'T>)) = + let mutable messageString = SR.GetString(messageID) +#if DEBUG + // validate that the message string exists + let fmtString = fmt.Value + + if null = messageString then + System.Diagnostics.Debug.Assert(false, sprintf "**DECLARED MESSAGE ERROR** String resource %s does not exist" messageID) + messageString <- "" + + // validate the formatting specifiers + let countFormatHoles (s : string) = + // remove escaped format holes + let s = s.Replace("{{","").Replace("}}","") + let len = s.Length - 2 + let mutable pos = 0 + let mutable nHoles = 0 + let mutable order = Set.empty + + while pos < len do + if s.[pos] = '{' then + let mutable pos' = pos+1 + while System.Char.IsNumber(s.[pos']) do + pos' <- pos' + 1 + if pos' > pos+1 && s.[pos'] = '}' then + nHoles <- nHoles + 1 + let ordern = (int) (s.[(pos+1) .. (pos'-1)]) + order <- order.Add(ordern) + pos <- pos' + pos <- pos + 1 + // the sort should be unnecessary, but better safe than sorry + nHoles,Set.toList order |> List.sort |> List.rev + + let countFormatPlaceholders (s : string) = + // strip any escaped % characters - yes, this will fail if given %%%... + let s = s.Replace("%%","") + + if s = "" then + 0 + else + let len = s.Length - 1 + let mutable pos = 0 + let mutable nFmt = 0 + + while pos < len do + if s.[pos] = '%' && + (s.[pos+1] = 'd' || s.[pos+1] = 's' || s.[pos+1] = 'f') then + nFmt <- nFmt + 1 + pos <- pos + 2 ; + else + pos <- pos + 1 ; + nFmt + + let nHoles,holes = countFormatHoles messageString + let nPlaceholders = countFormatPlaceholders fmtString + + // first, verify that the number of holes in the message string does not exceed the + // largest hole reference + if holes <> [] && holes.[0] > nHoles - 1 then + System.Diagnostics.Debug.Assert(false, sprintf "**DECLARED MESSAGE ERROR** Message string %s contains %d holes, but references hole %d" messageID nHoles holes.[0]) + + // next, verify that the number of format placeholders is the same as the number of holes + if nHoles <> nPlaceholders then + System.Diagnostics.Debug.Assert(false, sprintf "**DECLARED MESSAGE ERROR** Message string %s contains %d holes, but its format specifier contains %d placeholders" messageID nHoles nPlaceholders) + + #endif + messageString <- postProcessString messageString + new ResourceString<'T>(messageString, fmt) diff --git a/src/fsharp/sr.fsi b/src/fsharp/sr.fsi new file mode 100644 index 0000000..3965f22 --- /dev/null +++ b/src/fsharp/sr.fsi @@ -0,0 +1,14 @@ + +namespace Microsoft.FSharp.Compiler + + module internal SR = + val GetString : string -> string + val GetObject : string -> System.Object + + + module internal DiagnosticMessage = + type ResourceString<'T> = + new : string * Printf.StringFormat<'T> -> ResourceString<'T> + member Format : 'T + + val DeclareResourceString : string * Printf.StringFormat<'T> -> ResourceString<'T> \ No newline at end of file diff --git a/src/fsharp/targets.make b/src/fsharp/targets.make new file mode 100644 index 0000000..c67c8fd --- /dev/null +++ b/src/fsharp/targets.make @@ -0,0 +1,209 @@ +SOURCES := $(patsubst $(srcdir)$(tmpdir)%,$(tmpdir)%,$(patsubst %,$(srcdir)%,$(sources))) + +.PHONY: install install-bin install-bin-2 install-bin-4 install-lib + +clean-2-0: TARGET := $(TARGET_2_0) +clean-2-0: + -rm -rf $(tmpdir) + -rm -rf $(objdir) + -rm -f $(outdir)$(ASSEMBLY) + -rm -f $(outdir)$(ASSEMBLY).mdb + -rm -f $(outdir)$(NAME).xml + -rm -f $(outdir)$(NAME).sigdata + -rm -f $(outdir)$(NAME).optdata + +clean-2-1: TARGET := $(TARGET_2_1) +clean-2-1: + -rm -rf $(tmpdir) + -rm -rf $(objdir) + -rm -f $(outdir)$(ASSEMBLY) + -rm -f $(outdir)$(ASSEMBLY).mdb + -rm -f $(outdir)$(NAME).xml + -rm -f $(outdir)$(NAME).sigdata + -rm -f $(outdir)$(NAME).optdata + +clean-4-0: TARGET := $(TARGET_4_0) +clean-4-0: + -rm -rf $(tmpdir) + -rm -rf $(objdir) + -rm -f $(outdir)$(ASSEMBLY) + -rm -f $(outdir)$(ASSEMBLY).mdb + -rm -f $(outdir)$(NAME).xml + -rm -f $(outdir)$(NAME).sigdata + -rm -f $(outdir)$(NAME).optdata + +do-2-0: DEFINES += $(DEFINES_2_0) +do-2-0: REFERENCES += $(REFERENCES_2_0) +do-2-0: FLAGS += $(FLAGS_2_0) +do-2-0: TARGET := $(TARGET_2_0) +do-2-0: VERSION := $(VERSION_2_0) +do-2-0: monolibdir = $(monolibdir2) +do-2-0: $(objdir) $(objdir)$(TARGET_2_0) $(objdir)$(TARGET_4_0) $(objdir)$(TARGET_2_0)/$(ASSEMBLY) + @mkdir -p $(outdir) + @cp $(objdir)$(ASSEMBLY) $(outdir) + @if test -e $(objdir)$(ASSEMBLY).xml; then \ + cp $(objdir)$(NAME).xml $(outdir); \ + fi + @if test -e $(objdir)$(ASSEMBLY).mdb; then \ + cp $(objdir)$(ASSEMBLY).mdb $(outdir); \ + fi + @if test -e $(objdir)$(NAME).sigdata; then \ + cp $(objdir)$(NAME).sigdata $(outdir); \ + fi + @if test -e $(objdir)$(NAME).optdata; then \ + cp $(objdir)$(NAME).optdata $(outdir); \ + fi + @if test "x$(DELAY_SIGN)" = "x1"; then \ + sn -q -R $(outdir)$(ASSEMBLY) $(srcdir)../../../mono.snk; \ + fi + @if test -e Microsoft.FSharp.Targets; then \ + cp Microsoft.FSharp.Targets $(outdir)Microsoft.FSharp.Targets; \ + fi + +do-2-1: DEFINES += $(DEFINES_2_1) +do-2-1: REFERENCES += $(REFERENCES_2_1) +do-2-1: FLAGS += $(FLAGS_2_1) +do-2-1: TARGET := $(TARGET_2_1) +do-2-1: VERSION := $(VERSION_2_1) +do-2-1: monolibdir = $(monolibdir2) +do-2-1: $(objdir) $(objdir)$(TARGET_2_1) $(objdir)$(TARGET_4_0) $(objdir)$(TARGET_2_1)/$(ASSEMBLY) + @mkdir -p $(outdir) + @cp $(objdir)$(ASSEMBLY) $(outdir) + @if test -e $(objdir)$(NAME).xml; then \ + cp $(objdir)$(NAME).xml $(outdir); \ + fi + @if test -e $(objdir)$(ASSEMBLY).mdb; then \ + cp $(objdir)$(ASSEMBLY).mdb $(outdir); \ + fi + @if test -e $(objdir)$(NAME).sigdata; then \ + cp $(objdir)$(NAME).sigdata $(outdir); \ + fi + @if test -e $(objdir)$(NAME).optdata; then \ + cp $(objdir)$(NAME).optdata $(outdir); \ + fi + @if test "x$(DELAY_SIGN)" = "x1"; then \ + sn -q -R $(outdir)$(ASSEMBLY) $(srcdir)../../../mono.snk; \ + fi + @if test -e Microsoft.FSharp.Targets; then \ + cp Microsoft.FSharp.Targets $(outdir)Microsoft.FSharp.Targets; \ + fi + +do-4-0: DEFINES += $(DEFINES_4_0) +do-4-0: REFERENCES += $(REFERENCES_4_0) +do-4-0: FLAGS += $(FLAGS_4_0) +do-4-0: TARGET := $(TARGET_4_0) +do-4-0: VERSION := $(VERSION_4_0) +do-4-0: monolibdir = $(monolibdir4) +do-4-0: $(objdir) $(objdir)$(TARGET_2_0) $(objdir)$(TARGET_4_0) $(objdir)$(TARGET_4_0)/$(ASSEMBLY) + @mkdir -p $(outdir) + @cp $(objdir)$(ASSEMBLY) $(outdir) + @if test -e $(objdir)$(NAME).xml; then \ + cp $(objdir)$(NAME).xml $(outdir); \ + fi + @if test -e $(objdir)$(ASSEMBLY).mdb; then \ + cp $(objdir)$(ASSEMBLY).mdb $(outdir); \ + fi + @if test -e $(objdir)$(NAME).sigdata; then \ + cp $(objdir)$(NAME).sigdata $(outdir); \ + fi + @if test -e $(objdir)$(NAME).optdata; then \ + cp $(objdir)$(NAME).optdata $(outdir); \ + fi + @if test "x$(DELAY_SIGN)" = "x1"; then \ + sn -q -R $(outdir)$(ASSEMBLY) $(srcdir)../../../mono.snk; \ + fi + @if test -e Microsoft.FSharp.Targets; then \ + cp Microsoft.FSharp.Targets $(outdir)Microsoft.FSharp.Targets; \ + fi + +install-lib-2: TARGET := $(TARGET_2_0) +install-lib-2: VERSION := $(VERSION_2_0) + +install-lib-2-1: TARGET := $(TARGET_2_1) +install-lib-2-1: VERSION := $(VERSION_2_1) + +install-lib-4: TARGET := $(TARGET_4_0) +install-lib-4: VERSION := $(VERSION_4_0) + +install-bin-2: TARGET := $(TARGET_2_0) +install-bin-2: VERSION := 2 + +install-bin-2-1: TARGET := $(TARGET_2_1) +install-bin-2-1: VERSION := 2.1 + +install-bin-4: TARGET := $(TARGET_4_0) + + +# Install the library binaries in the GAC and the framework directory, +# Install .optdata/.sigdata if they exist (they go alongside FSharp.Core) +# Install the .Targets file. The XBuild targets file gets installed into the place(s) expected for standard F# project +# files. For F# 2.0 project files this is +# .../Microsoft F#/v4.0/Microsoft.FSharp.Targets +# For F# 3.0 project files this is +# .../Microsoft SDKs/F#/3.0/Framework/v4.0/Microsoft.FSharp.Targets +# +install-lib-2 install-lib-2-1 install-lib-4: + @echo "Installing $(ASSEMBLY)" + @mkdir -p $(DESTDIR)$(monodir)/$(TARGET) + gacutil -i $(outdir)$(ASSEMBLY) -root $(DESTDIR)$(monorootdir) -package $(TARGET) + @if test -e $(outdir)Microsoft.FSharp.Targets; then \ + mkdir -p $(DESTDIR)$(monodir)/Microsoft\ F#/v$(TARGET)/; \ + mkdir -p $(DESTDIR)$(monodir)/Microsoft\ SDKs/F#/3.0/Framework/v$(TARGET)/; \ + ln -fs ../../$(TARGET)/$(ASSEMBLY) $(DESTDIR)$(monodir)/Microsoft\ F#/v$(TARGET)/$(ASSEMBLY); \ + ln -fs ../../../../../$(TARGET)/$(ASSEMBLY) $(DESTDIR)$(monodir)/Microsoft\ SDKs/F#/3.0/Framework/v$(TARGET)/$(ASSEMBLY); \ + $(INSTALL_LIB) $(outdir)Microsoft.FSharp.Targets $(DESTDIR)$(monodir)/$(TARGET)/; \ + ln -fs ../../$(TARGET)/Microsoft.FSharp.Targets $(DESTDIR)$(monodir)/Microsoft\ F#/v$(TARGET)/Microsoft.FSharp.Targets; \ + ln -fs ../../../../../$(TARGET)/Microsoft.FSharp.Targets $(DESTDIR)$(monodir)/Microsoft\ SDKs/F#/3.0/Framework/v$(TARGET)/Microsoft.FSharp.Targets; \ + fi + @if test -e $(outdir)$(NAME).xml; then \ + $(INSTALL_LIB) $(outdir)$(NAME).xml $(DESTDIR)$(monodir)/gac/$(NAME)/$(VERSION)__$(TOKEN); \ + ln -fs ../gac/$(NAME)/$(VERSION)__$(TOKEN)/$(NAME).xml $(DESTDIR)$(monodir)/$(TARGET)/$(NAME).xml; \ + fi + @if test -e $(outdir)$(NAME).sigdata; then \ + $(INSTALL_LIB) $(outdir)$(NAME).sigdata $(DESTDIR)$(monodir)/gac/$(NAME)/$(VERSION)__$(TOKEN); \ + ln -fs ../gac/$(NAME)/$(VERSION)__$(TOKEN)/$(NAME).sigdata $(DESTDIR)$(monodir)/$(TARGET)/$(NAME).sigdata; \ + fi + @if test -e $(outdir)$(NAME).optdata; then \ + $(INSTALL_LIB) $(outdir)$(NAME).optdata $(DESTDIR)$(monodir)/gac/$(NAME)/$(VERSION)__$(TOKEN); \ + ln -fs ../gac/$(NAME)/$(VERSION)__$(TOKEN)/$(NAME).optdata $(DESTDIR)$(monodir)/$(TARGET)/$(NAME).optdata; \ + fi + +install-lib-4-5: install-lib-4 + @if test -e $(DESTDIR)$(monodir)/4.5/; then \ + ln -fs ../4.0/$(ASSEMBLY) $(DESTDIR)$(monodir)/4.5/$(ASSEMBLY); \ + if test -e $(DESTDIR)$(monodir)/4.0/$(ASSEMBLY).config; then \ + ln -fs ../4.0/$(ASSEMBLY).config $(DESTDIR)$(monodir)/4.5/$(ASSEMBLY).config; \ + fi; \ + if test -e $(DESTDIR)$(monodir)/4.0/$(NAME).sigdata; then \ + ln -fs ../4.0/$(NAME).sigdata $(DESTDIR)$(monodir)/4.5/$(NAME).sigdata; \ + fi; \ + if test -e $(DESTDIR)$(monodir)/4.0/$(NAME).xml; then \ + ln -fs ../4.0/$(NAME).xml $(DESTDIR)$(monodir)/4.5/$(NAME).xml; \ + fi; \ + if test -e $(DESTDIR)$(monodir)/4.0/$(NAME).optdata; then \ + ln -fs ../4.0/$(NAME).optdata $(DESTDIR)$(monodir)/4.5/$(NAME).optdata; \ + fi; \ + fi + +# The binaries fsc.exe and fsi.exe only get installed for Mono 4.0 profile +# This also installs 'fsharpc' and 'fsharpi' +install-bin-4: + sed -e 's,[@]DIR[@],$(monodir)/$(TARGET),g' -e 's,[@]TOOL[@],$(ASSEMBLY),g' < $(topdir)launcher > $(outdir)$(subst fs,fsharp,$(NAME))$(VERSION) + chmod +x $(outdir)$(subst fs,fsharp,$(NAME))$(VERSION) + @mkdir -p $(DESTDIR)$(monodir)/$(TARGET) + @mkdir -p $(DESTDIR)$(bindir) + $(INSTALL_LIB) $(outdir)$(ASSEMBLY) $(DESTDIR)$(monodir)/$(TARGET) + $(INSTALL_BIN) $(outdir)$(subst fs,fsharp,$(NAME))$(VERSION) $(DESTDIR)$(bindir) + + +$(objdir) $(objdir)$(TARGET_2_0) $(objdir)$(TARGET_2_1) $(objdir)$(TARGET_4_0): + mkdir -p $@ + +$(objdir)$(TARGET_2_0)/$(ASSEMBLY): $(RESOURCES) $(SOURCES) + mono $(MONO_OPTIONS) $(FSC) -o:$(objdir)$(ASSEMBLY) $(REFERENCES) $(DEFINES) $(FLAGS) $(patsubst %,--resource:%,$(RESOURCES)) $(SOURCES) + +$(objdir)$(TARGET_2_1)/$(ASSEMBLY): $(RESOURCES) $(SOURCES) + mono $(MONO_OPTIONS) $(FSC) -o:$(objdir)$(ASSEMBLY) $(REFERENCES) $(DEFINES) $(FLAGS) $(patsubst %,--resource:%,$(RESOURCES)) $(SOURCES) + +$(objdir)$(TARGET_4_0)/$(ASSEMBLY): $(RESOURCES) $(SOURCES) + mono $(MONO_OPTIONS) $(FSC) -o:$(objdir)$(ASSEMBLY) $(REFERENCES) $(DEFINES) $(FLAGS) $(patsubst %,--resource:%,$(RESOURCES)) $(SOURCES) diff --git a/src/fsharp/test.pub b/src/fsharp/test.pub new file mode 100644 index 0000000..e54aece Binary files /dev/null and b/src/fsharp/test.pub differ diff --git a/src/fsharp/test.snk b/src/fsharp/test.snk new file mode 100644 index 0000000..c16543b Binary files /dev/null and b/src/fsharp/test.snk differ diff --git a/src/utils/HashMultiMap.fs b/src/utils/HashMultiMap.fs new file mode 100644 index 0000000..792a918 --- /dev/null +++ b/src/utils/HashMultiMap.fs @@ -0,0 +1,167 @@ +//---------------------------------------------------------------------------- +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + + + +namespace Internal.Utilities.Collections + +open System +open System.Collections.Generic +open Microsoft.FSharp.Collections + +// Each entry in the HashMultiMap dictionary has at least one entry. Under normal usage each entry has _only_ +// one entry. So use two hash tables: one for the main entries and one for the overflow. +[] +type internal HashMultiMap<'Key,'Value>(n: int, hasheq: IEqualityComparer<'Key>) = + let firstEntries = new Dictionary<_,_>(n,hasheq); + let rest = new Dictionary<_,_>(3,hasheq); + + new (hasheq : IEqualityComparer<'Key>) = new HashMultiMap<'Key,'Value>(11, hasheq) + new (seq : seq<'Key * 'Value>, hasheq : IEqualityComparer<'Key>) as x = + new HashMultiMap<'Key,'Value>(11, hasheq) + then seq |> Seq.iter (fun (k,v) -> x.Add(k,v)) + + member x.GetRest(k) = + let mutable res = [] + let ok = rest.TryGetValue(k,&res) + if ok then res else [] + + member x.Add(y,z) = + let mutable res = Unchecked.defaultof<'Value> + let ok = firstEntries.TryGetValue(y,&res) + if ok then + rest.[y] <- res :: x.GetRest(y) + firstEntries.[y] <- z + + member x.Clear() = + firstEntries.Clear() + rest.Clear() + + member x.FirstEntries = firstEntries + member x.Rest = rest + member x.Copy() = + let res = new HashMultiMap<'Key,'Value>(firstEntries.Count,firstEntries.Comparer) + for kvp in firstEntries do + res.FirstEntries.Add(kvp.Key,kvp.Value) + for kvp in rest do + res.Rest.Add(kvp.Key,kvp.Value) + res + + member x.Item + with get(y : 'Key) = + let mutable res = Unchecked.defaultof<'Value> + let ok = firstEntries.TryGetValue(y,&res) + if ok then res else raise (new System.Collections.Generic.KeyNotFoundException("The item was not found in collection")) + and set (y:'Key) (z:'Value) = + x.Replace(y,z) + + member x.FindAll(y) = + let mutable res = Unchecked.defaultof<'Value> + let ok = firstEntries.TryGetValue(y,&res) + if ok then res :: x.GetRest(y) else [] + + member x.Fold f acc = + let mutable res = acc + for kvp in firstEntries do + res <- f kvp.Key kvp.Value res + match x.GetRest(kvp.Key) with + | [] -> () + | rest -> + for z in rest do + res <- f kvp.Key z res + res + + member x.Iterate(f) = + for kvp in firstEntries do + f kvp.Key kvp.Value + match x.GetRest(kvp.Key) with + | [] -> () + | rest -> + for z in rest do + f kvp.Key z + + member x.Contains(y) = firstEntries.ContainsKey(y) + + member x.ContainsKey(y) = firstEntries.ContainsKey(y) + + member x.Remove(y) = + let mutable res = Unchecked.defaultof<'Value> + let ok = firstEntries.TryGetValue(y,&res) + // Note, if not ok then nothing to remove - nop + if ok then + // We drop the FirstEntry. Here we compute the new FirstEntry and residue MoreEntries + let mutable res = [] + let ok = rest.TryGetValue(y,&res) + if ok then + match res with + | [h] -> + firstEntries.[y] <- h; + rest.Remove(y) |> ignore + | (h::t) -> + firstEntries.[y] <- h + rest.[y] <- t + | _ -> + // note: broken invariant + () + else + firstEntries.Remove(y) |> ignore + + member x.Replace(y,z) = + firstEntries.[y] <- z + + member x.TryFind(y) = + let mutable res = Unchecked.defaultof<'Value> + let ok = firstEntries.TryGetValue(y,&res) + if ok then Some(res) else None + + member x.Count = firstEntries.Count + + interface IEnumerable> with + member s.GetEnumerator() = + let elems = new System.Collections.Generic.List<_>(firstEntries.Count + rest.Count) + for kvp in firstEntries do + elems.Add(kvp) + for z in s.GetRest(kvp.Key) do + elems.Add(KeyValuePair(kvp.Key, z)) + (elems.GetEnumerator() :> IEnumerator<_>) + + interface System.Collections.IEnumerable with + member s.GetEnumerator() = ((s :> seq<_>).GetEnumerator() :> System.Collections.IEnumerator) + + interface IDictionary<'Key, 'Value> with + member s.Item + with get x = s.[x] + and set x v = s.[x] <- v + + member s.Keys = ([| for kvp in s -> kvp.Key |] :> ICollection<'Key>) + member s.Values = ([| for kvp in s -> kvp.Value |] :> ICollection<'Value>) + member s.Add(k,v) = s.[k] <- v + member s.ContainsKey(k) = s.ContainsKey(k) + member s.TryGetValue(k,r) = if s.ContainsKey(k) then (r <- s.[k]; true) else false + member s.Remove(k:'Key) = + let res = s.ContainsKey(k) in + s.Remove(k); res + + interface ICollection> with + member s.Add(x) = s.[x.Key] <- x.Value + member s.Clear() = s.Clear() + member s.Remove(x) = + let res = s.ContainsKey(x.Key) + if res && Unchecked.equals s.[x.Key] x.Value then + s.Remove(x.Key); + res + member s.Contains(x) = + s.ContainsKey(x.Key) && + Unchecked.equals s.[x.Key] x.Value + member s.CopyTo(arr,arrIndex) = s |> Seq.iteri (fun j x -> arr.[arrIndex+j] <- x) + member s.IsReadOnly = false + member s.Count = s.Count + diff --git a/src/utils/HashMultiMap.fsi b/src/utils/HashMultiMap.fsi new file mode 100644 index 0000000..92132ae --- /dev/null +++ b/src/utils/HashMultiMap.fsi @@ -0,0 +1,75 @@ +//---------------------------------------------------------------------------- +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + + +namespace Internal.Utilities.Collections + +open System +open System.Collections.Generic + + +/// Hash tables, by default based on F# structural "hash" and (=) functions. +/// The table may map a single key to multiple bindings. +[] +type internal HashMultiMap<'Key,'Value> = + /// Create a new empty mutable HashMultiMap with the given key hash/equality functions + new : comparer:IEqualityComparer<'Key> -> HashMultiMap<'Key,'Value> + + /// Create a new empty mutable HashMultiMap with an internal bucket array of the given approximate size + /// and with the given key hash/equality functions + new : size:int * comparer:IEqualityComparer<'Key> -> HashMultiMap<'Key,'Value> + + /// Build a map that contains the bindings of the given IEnumerable + new : entries:seq<'Key * 'Value> * comparer:IEqualityComparer<'Key> -> HashMultiMap<'Key,'Value> + + /// Make a shallow copy of the collection + member Copy : unit -> HashMultiMap<'Key,'Value> + + /// Add a binding for the element to the table + member Add : 'Key * 'Value -> unit + + /// Clear all elements from the collection + member Clear : unit -> unit + + /// Test if the collection contains any bindings for the given element + member ContainsKey: 'Key -> bool + + /// Remove the latest binding (if any) for the given element from the table + member Remove : 'Key -> unit + + /// Replace the latest binding (if any) for the given element. + member Replace : 'Key * 'Value -> unit + + /// Lookup or set the given element in the table. Set replaces all existing bindings for a value with a single + /// bindings. Raise KeyNotFoundException if the element is not found. + member Item : 'Key -> 'Value with get,set + + /// Lookup the given element in the table, returning the result as an Option + member TryFind : 'Key -> 'Value option + + /// Find all bindings for the given element in the table, if any + member FindAll : 'Key -> 'Value list + + /// Apply the given function to each element in the collection threading the accumulating parameter + /// through the sequence of function applications + member Fold : ('Key -> 'Value -> 'State -> 'State) -> 'State -> 'State + + /// The total number of keys in the hash table + member Count : int + + ///Apply the given function to each binding in the hash table + member Iterate : ('Key -> 'Value -> unit) -> unit + + interface IDictionary<'Key, 'Value> + interface ICollection> + interface IEnumerable> + interface System.Collections.IEnumerable + diff --git a/src/utils/TaggedCollections.fs b/src/utils/TaggedCollections.fs new file mode 100644 index 0000000..e5c8a0f --- /dev/null +++ b/src/utils/TaggedCollections.fs @@ -0,0 +1,1192 @@ +//---------------------------------------------------------------------------- +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + + + +namespace Internal.Utilities.Collections.Tagged + + #nowarn "51" + #nowarn "69" // interface implementations in augmentations + #nowarn "60" // override implementations in augmentations + + open Microsoft.FSharp.Core + open Microsoft.FSharp.Core.Operators + open Microsoft.FSharp.Core.LanguagePrimitives.IntrinsicOperators + open System + open System.Collections.Generic + open Internal.Utilities + open Internal.Utilities.Collections + + + [] + [] + type SetTree<'T> = + | SetEmpty // height = 0 + | SetNode of 'T * SetTree<'T> * SetTree<'T> * int // height = int +#if ONE + | SetOne of 'T // height = 1 +#endif + // OPTIMIZATION: store SetNode(k,SetEmpty,SetEmpty,1) ---> SetOne(k) + + + // CONSIDER: SetTree<'T> = SetEmpty | SetNode of 'T * SetTree<'T> * SetTree<'T> * int + // with SetOne = SetNode of (x,null,null,1) + + [] + module SetTree = + let empty = SetEmpty + + let height t = + match t with + | SetEmpty -> 0 +#if ONE + | SetOne _ -> 1 +#endif + | SetNode (_,_,_,h) -> h + +#if CHECKED + let rec checkInvariant t = + // A good sanity check, loss of balance can hit perf + match t with + | SetEmpty -> true + | SetOne _ -> true + | SetNode (k,t1,t2,h) -> + let h1 = height t1 in + let h2 = height t2 in + (-2 <= (h1 - h2) && (h1 - h2) <= 2) && checkInvariant t1 && checkInvariant t2 +#else + let inline SetOne(x) = SetNode(x,SetEmpty,SetEmpty,1) +#endif + + let tolerance = 2 + + let mk l hl k r hr = +#if ONE + if hl = 0 && hr = 0 then SetOne (k) + else +#endif + let m = if hl < hr then hr else hl + SetNode(k,l,r,m+1) + + let rebalance t1 k t2 = + let t1h = height t1 + let t2h = height t2 + if t2h > t1h + tolerance then // right is heavier than left + match t2 with + | SetNode(t2k,t2l,t2r,_) -> + // one of the nodes must have height > height t1 + 1 + let t2lh = height t2l + if t2lh > t1h + 1 then // balance left: combination + match t2l with + | SetNode(t2lk,t2ll,t2lr,_) -> + let l = mk t1 t1h k t2ll (height t2ll) + let r = mk t2lr (height t2lr) t2k t2r (height t2r) + mk l (height l) t2lk r (height r) + | _ -> failwith "rebalance" + else // rotate left + let l = mk t1 t1h k t2l t2lh + mk l (height l) t2k t2r (height t2r) + | _ -> failwith "rebalance" + else + if t1h > t2h + tolerance then // left is heavier than right + match t1 with + | SetNode(t1k,t1l,t1r,_) -> + // one of the nodes must have height > height t2 + 1 + let t1rh = height t1r + if t1rh > t2h + 1 then + // balance right: combination + match t1r with + | SetNode(t1rk,t1rl,t1rr,_) -> + let l = mk t1l (height t1l) t1k t1rl (height t1rl) + let r = mk t1rr (height t1rr) k t2 t2h + mk l (height l) t1rk r (height r) + | _ -> failwith "rebalance" + else + let r = mk t1r t1rh k t2 t2h + mk t1l (height t1l) t1k r (height r) + | _ -> failwith "rebalance" + else mk t1 t1h k t2 t2h + + let rec add (comparer: IComparer<'T>) k t = + match t with + | SetNode (k2,l,r,_) -> + let c = comparer.Compare(k,k2) + if c < 0 then rebalance (add comparer k l) k2 r + elif c = 0 then t + else rebalance l k2 (add comparer k r) +#if ONE + | SetOne(k2) -> + // nb. no check for rebalance needed for small trees, also be sure to reuse node already allocated + let c = comparer.Compare(k,k2) + if c < 0 then SetNode (k,SetEmpty,t,2) + elif c = 0 then t + else SetNode (k,t,SetEmpty,2) +#endif + | SetEmpty -> SetOne(k) + + let rec balance comparer t1 k t2 = + // Given t1 < k < t2 where t1 and t2 are "balanced", + // return a balanced tree for . + // Recall: balance means subtrees heights differ by at most "tolerance" + match t1,t2 with + | SetEmpty,t2 -> add comparer k t2 // drop t1 = empty + | t1,SetEmpty -> add comparer k t1 // drop t2 = empty +#if ONE + | SetOne k1,t2 -> add comparer k (add comparer k1 t2) + | t1,SetOne k2 -> add comparer k (add comparer k2 t1) +#endif + | SetNode(k1,t11,t12,t1h),SetNode(k2,t21,t22,t2h) -> + // Have: (t11 < k1 < t12) < k < (t21 < k2 < t22) + // Either (a) h1,h2 differ by at most 2 - no rebalance needed. + // (b) h1 too small, i.e. h1+2 < h2 + // (c) h2 too small, i.e. h2+2 < h1 + if t1h+tolerance < t2h then + // case: b, h1 too small + // push t1 into low side of t2, may increase height by 1 so rebalance + rebalance (balance comparer t1 k t21) k2 t22 + elif t2h+tolerance < t1h then + // case: c, h2 too small + // push t2 into high side of t1, may increase height by 1 so rebalance + rebalance t11 k1 (balance comparer t12 k t2) + else + // case: a, h1 and h2 meet balance requirement + mk t1 t1h k t2 t2h + + let rec split (comparer : IComparer<'T>) pivot t = + // Given a pivot and a set t + // Return { x in t s.t. x < pivot }, pivot in t? , { x in t s.t. x > pivot } + match t with + | SetNode(k1,t11,t12,_) -> + let c = comparer.Compare(pivot,k1) + if c < 0 then // pivot t1 + let t11_lo,havePivot,t11_hi = split comparer pivot t11 + t11_lo,havePivot,balance comparer t11_hi k1 t12 + elif c = 0 then // pivot is k1 + t11,true,t12 + else // pivot t2 + let t12_lo,havePivot,t12_hi = split comparer pivot t12 + balance comparer t11 k1 t12_lo,havePivot,t12_hi +#if ONE + | SetOne k1 -> + let c = comparer.Compare(k1,pivot) + if c < 0 then t ,false,SetEmpty // singleton under pivot + elif c = 0 then SetEmpty,true ,SetEmpty // singleton is pivot + else SetEmpty,false,t // singleton over pivot +#endif + | SetEmpty -> + SetEmpty,false,SetEmpty + + let rec spliceOutSuccessor t = + match t with + | SetEmpty -> failwith "internal error: Map.splice_out_succ_or_pred" +#if ONE + | SetOne (k2) -> k2,empty +#endif + | SetNode (k2,l,r,_) -> + match l with + | SetEmpty -> k2,r + | _ -> let k3,l' = spliceOutSuccessor l in k3,mk l' (height l') k2 r (height r) + + let rec remove (comparer: IComparer<'T>) k t = + match t with + | SetEmpty -> t +#if ONE + | SetOne (k2) -> + let c = comparer.Compare(k,k2) + if c = 0 then empty + else t +#endif + | SetNode (k2,l,r,_) -> + let c = comparer.Compare(k,k2) + if c < 0 then rebalance (remove comparer k l) k2 r + elif c = 0 then + match l,r with + | SetEmpty,_ -> r + | _,SetEmpty -> l + | _ -> + let sk,r' = spliceOutSuccessor r + mk l (height l) sk r' (height r') + else rebalance l k2 (remove comparer k r) + + let rec contains (comparer: IComparer<'T>) k t = + match t with + | SetNode(k2,l,r,_) -> + let c = comparer.Compare(k,k2) + if c < 0 then contains comparer k l + elif c = 0 then true + else contains comparer k r +#if ONE + | SetOne(k2) -> (comparer.Compare(k,k2) = 0) +#endif + | SetEmpty -> false + + let rec iter f t = + match t with + | SetNode(k2,l,r,_) -> iter f l; f k2; iter f r +#if ONE + | SetOne(k2) -> f k2 +#endif + | SetEmpty -> () + + // Fold, left-to-right. + // + // NOTE: This differs from the behaviour of Map.fold which folds right-to-left. + let rec fold f m x = + match m with + | SetNode(k,l,r,_) -> fold f r (f k (fold f l x)) +#if ONE + | SetOne(k) -> f k x +#endif + | SetEmpty -> x + + let rec forAll f m = + match m with + | SetNode(k2,l,r,_) -> f k2 && forAll f l && forAll f r +#if ONE + | SetOne(k2) -> f k2 +#endif + | SetEmpty -> true + + let rec exists f m = + match m with + | SetNode(k2,l,r,_) -> f k2 || exists f l || exists f r +#if ONE + | SetOne(k2) -> f k2 +#endif + | SetEmpty -> false + + let isEmpty m = match m with | SetEmpty -> true | _ -> false + + let subset comparer a b = forAll (fun x -> contains comparer x b) a + + let rec elementsAux m acc = + match m with + | SetNode(k2,l,r,_) -> k2 :: (elementsAux l (elementsAux r acc)) +#if ONE + | SetOne(k2) -> k2 :: acc +#endif + | SetEmpty -> acc + + let elements a = elementsAux a [] + + let rec filterAux comparer f s acc = + match s with + | SetNode(k,l,r,_) -> + let acc = if f k then add comparer k acc else acc + filterAux comparer f l (filterAux comparer f r acc) +#if ONE + | SetOne(k) -> if f k then add comparer k acc else acc +#endif + | SetEmpty -> acc + + let filter comparer f s = filterAux comparer f s empty + + let rec diffAux comparer m acc = + match m with + | SetNode(k,l,r,_) -> diffAux comparer l (diffAux comparer r (remove comparer k acc)) +#if ONE + | SetOne(k) -> remove comparer k acc +#endif + | SetEmpty -> acc + + let diff comparer a b = diffAux comparer b a + + let rec countAux s acc = + match s with + | SetNode(_,l,r,_) -> countAux l (countAux r (acc+1)) +#if ONE + | SetOne(k) -> acc+1 +#endif + | SetEmpty -> acc + + let count s = countAux s 0 + + let rec union comparer t1 t2 = + // Perf: tried bruteForce for low heights, but nothing significant + match t1,t2 with + | SetNode(k1,t11,t12,h1),SetNode(k2,t21,t22,h2) -> // (t11 < k < t12) AND (t21 < k2 < t22) + // Divide and Quonquer: + // Suppose t1 is largest. + // Split t2 using pivot k1 into lo and hi. + // Union disjoint subproblems and then combine. + if h1 > h2 then + let lo,_,hi = split comparer k1 t2 in + balance comparer (union comparer t11 lo) k1 (union comparer t12 hi) + else + let lo,_,hi = split comparer k2 t1 in + balance comparer (union comparer t21 lo) k2 (union comparer t22 hi) + | SetEmpty,t -> t + | t,SetEmpty -> t +#if ONE + | SetOne k1,t2 -> add comparer k1 t2 + | t1,SetOne k2 -> add comparer k2 t1 +#endif + + let rec intersectionAux comparer b m acc = + match m with + | SetNode(k,l,r,_) -> + let acc = intersectionAux comparer b r acc + let acc = if contains comparer k b then add comparer k acc else acc + intersectionAux comparer b l acc +#if ONE + | SetOne(k) -> + if contains comparer k b then add comparer k acc else acc +#endif + | SetEmpty -> acc + + let intersection comparer a b = intersectionAux comparer b a empty + + let partition1 comparer f k (acc1,acc2) = + if f k then (add comparer k acc1,acc2) + else (acc1,add comparer k acc2) + + let rec partitionAux comparer f s acc = + match s with + | SetNode(k,l,r,_) -> + let acc = partitionAux comparer f r acc + let acc = partition1 comparer f k acc + partitionAux comparer f l acc +#if ONE + | SetOne(k) -> partition1 comparer f k acc +#endif + | SetEmpty -> acc + + let partition comparer f s = partitionAux comparer f s (empty,empty) + + // It's easier to get many less-important algorithms right using this active pattern + let (|MatchSetNode|MatchSetEmpty|) s = + match s with + | SetNode(k2,l,r,_) -> MatchSetNode(k2,l,r) +#if ONE + | SetOne(k2) -> MatchSetNode(k2,SetEmpty,SetEmpty) +#endif + | SetEmpty -> MatchSetEmpty + + let rec nextElemCont (comparer: IComparer<'T>) k s cont = + match s with + | MatchSetNode(k2,l,r) -> + let c = comparer.Compare(k,k2) + if c < 0 then nextElemCont comparer k l (function None -> cont(Some(k2)) | res -> res) + elif c = 0 then cont(minimumElementOpt r) + else nextElemCont comparer k r cont + | MatchSetEmpty -> cont(None) + + and nextElem comparer k s = nextElemCont comparer k s (fun res -> res) + + and prevElemCont (comparer: IComparer<'T>) k s cont = + match s with + | MatchSetNode(k2,l,r) -> + let c = comparer.Compare(k,k2) + if c > 0 then prevElemCont comparer k r (function None -> cont(Some(k2)) | res -> res) + elif c = 0 then cont(maximumElementOpt r) + else prevElemCont comparer k l cont + | MatchSetEmpty -> cont(None) + + and prevElem comparer k s = prevElemCont comparer k s (fun res -> res) + + and minimumElementAux s n = + match s with + | SetNode(k,l,_,_) -> minimumElementAux l k +#if ONE + | SetOne(k) -> k +#endif + | SetEmpty -> n + + and minimumElementOpt s = + match s with + | SetNode(k,l,_,_) -> Some(minimumElementAux l k) +#if ONE + | SetOne(k) -> Some k +#endif + | SetEmpty -> None + + and maximumElementAux s n = + match s with + | SetNode(k,_,r,_) -> maximumElementAux r k +#if ONE + | SetOne(k) -> k +#endif + | SetEmpty -> n + + and maximumElementOpt s = + match s with + | SetNode(k,_,r,_) -> Some(maximumElementAux r k) +#if ONE + | SetOne(k) -> Some(k) +#endif + | SetEmpty -> None + + let minimumElement s = + match minimumElementOpt s with + | Some(k) -> k + | None -> failwith "minimumElement" + + let maximumElement s = + match maximumElementOpt s with + | Some(k) -> k + | None -> failwith "maximumElement" + + + //-------------------------------------------------------------------------- + // Imperative left-to-right iterators. + //-------------------------------------------------------------------------- + + type SetIterator<'T>(s:SetTree<'T>) = + + // collapseLHS: + // a) Always returns either [] or a list starting with SetOne. + // b) The "fringe" of the set stack is unchanged. + let rec collapseLHS stack = + match stack with + | [] -> [] + | SetEmpty :: rest -> collapseLHS rest +#if ONE + | SetOne k :: rest -> stack +#else + | SetNode(_,SetEmpty,SetEmpty,_) :: _ -> stack +#endif + | SetNode(k,l,r,_) :: rest -> collapseLHS (l :: SetOne k :: r :: rest) + + // invariant: always collapseLHS result + let mutable stack = collapseLHS [s] + // true when MoveNext has been called + let mutable started = false + + let notStarted() = raise (new System.InvalidOperationException("Enumeration has not started. Call MoveNext.")) + let alreadyFinished() = raise (new System.InvalidOperationException("Enumeration already finished.")) + + member i.Current = + if started then + match stack with +#if ONE + | SetOne k :: _ -> k +#else + | SetNode( k,_,_,_) :: _ -> k +#endif + | [] -> alreadyFinished() + | _ -> failwith "Please report error: Set iterator, unexpected stack for current" + else + notStarted() + + member i.MoveNext() = + if started then + match stack with +#if ONE + | SetOne _ :: rest -> +#else + | SetNode _ :: rest -> +#endif + stack <- collapseLHS rest; + not stack.IsEmpty + | [] -> false + | _ -> failwith "Please report error: Set iterator, unexpected stack for moveNext" + else + started <- true; // The first call to MoveNext "starts" the enumeration. + not stack.IsEmpty + + let toSeq s = + let i = ref (SetIterator s) + { new IEnumerator<_> with + member __.Current = (!i).Current + interface System.Collections.IEnumerator with + member __.Current = box (!i).Current + member __.MoveNext() = (!i).MoveNext() + member __.Reset() = i := SetIterator s + interface System.IDisposable with + member __.Dispose() = () } + + //-------------------------------------------------------------------------- + // Set comparison. This can be expensive. + //-------------------------------------------------------------------------- + + let rec compareStacks (comparer: IComparer<'T>) l1 l2 = + match l1,l2 with + | [],[] -> 0 + | [],_ -> -1 + | _ ,[] -> 1 + | (SetEmpty _ :: t1),(SetEmpty :: t2) -> compareStacks comparer t1 t2 +#if ONE + | (SetOne(n1k) :: t1),(SetOne(n2k) :: t2) -> + let c = comparer.Compare(n1k,n2k) + if c <> 0 then c else compareStacks comparer t1 t2 + | (SetOne(n1k) :: t1),(SetNode(n2k,SetEmpty,n2r,_) :: t2) -> + let c = comparer.Compare(n1k,n2k) + if c <> 0 then c else compareStacks comparer (empty :: t1) (n2r :: t2) + | (SetNode(n1k,(SetEmpty as emp),n1r,_) :: t1),(SetOne(n2k) :: t2) -> + let c = comparer.Compare(n1k,n2k) + if c <> 0 then c else compareStacks comparer (n1r :: t1) (emp :: t2) +#endif + | (SetNode(n1k,SetEmpty,n1r,_) :: t1),(SetNode(n2k,SetEmpty,n2r,_) :: t2) -> + let c = comparer.Compare(n1k,n2k) + if c <> 0 then c else compareStacks comparer (n1r :: t1) (n2r :: t2) +#if ONE + | (SetOne(n1k) :: t1),_ -> + compareStacks comparer (empty :: SetOne(n1k) :: t1) l2 +#endif + | (SetNode(n1k,n1l,n1r,_) :: t1),_ -> + compareStacks comparer (n1l :: SetNode(n1k,empty,n1r,0) :: t1) l2 +#if ONE + | _,(SetOne(n2k) :: t2) -> + compareStacks comparer l1 (empty :: SetOne(n2k) :: t2) +#endif + | _,(SetNode(n2k,n2l,n2r,_) :: t2) -> + compareStacks comparer l1 (n2l :: SetNode(n2k,empty,n2r,0) :: t2) + + let compare comparer s1 s2 = + match s1,s2 with + | SetEmpty,SetEmpty -> 0 + | SetEmpty,_ -> -1 + | _,SetEmpty -> 1 + | _ -> compareStacks comparer [s1] [s2] + + let choose s = minimumElement s + + let toList s = + let rec loop m x = + match m with + | SetNode(k,l,r,_) -> loop l (k :: (loop r x)) +#if ONE + | SetOne(k) -> k :: x +#endif + | SetEmpty -> x + loop s [] + + let copyToArray s (arr: _[]) i = + let j = ref i + iter (fun x -> arr.[!j] <- x; j := !j + 1) s + + let toArray s = + let n = (count s) + let res = Array.zeroCreate n + copyToArray s res 0; + res + + let rec mkFromEnumerator comparer acc (e : IEnumerator<_>) = + if e.MoveNext() then + mkFromEnumerator comparer (add comparer e.Current acc) e + else acc + + let ofSeq comparer (c : IEnumerable<_>) = + use ie = c.GetEnumerator() + mkFromEnumerator comparer empty ie + + let ofArray comparer l = Array.fold (fun acc k -> add comparer k acc) empty l + + +#if FX_NO_DEBUG_DISPLAYS +#else + [] +#endif + [] + type internal Set<'T,'ComparerTag> when 'ComparerTag :> IComparer<'T>(comparer: IComparer<'T>, tree: SetTree<'T>) = + + static let refresh (s:Set<_,_>) t = Set<_,_>(comparer=s.Comparer, tree=t) + + member s.Tree = tree + member s.Comparer : IComparer<'T> = comparer + + static member Empty(comparer: 'ComparerTag) : Set<'T,'ComparerTag> = + Set<_,_>(comparer=comparer, tree=SetTree.empty) + + + member s.Add(x) : Set<'T,'ComparerTag> = refresh s (SetTree.add comparer x tree) + member s.Remove(x) : Set<'T,'ComparerTag> = refresh s (SetTree.remove comparer x tree) + member s.Count = SetTree.count tree + member s.Contains(x) = SetTree.contains comparer x tree + member s.Iterate(x) = SetTree.iter x tree + member s.Fold f x = SetTree.fold f tree x + +#if CHECKED + member s.CheckBalanceInvariant = checkInvariant tree // diagnostics... +#endif + member s.IsEmpty = SetTree.isEmpty tree + + member s.Partition f : Set<'T,'ComparerTag> * Set<'T,'ComparerTag> = + match tree with + | SetEmpty -> s,s + | _ -> + let t1,t2 = SetTree.partition comparer f tree + refresh s t1, refresh s t2 + + member s.Filter f : Set<'T,'ComparerTag> = + match tree with + | SetEmpty -> s + | _ -> SetTree.filter comparer f tree |> refresh s + + member s.Exists f = SetTree.exists f tree + + member s.ForAll f = SetTree.forAll f tree + + static member (-) ((a: Set<'T,'ComparerTag>),(b: Set<'T,'ComparerTag>)) = Set<_,_>.Difference(a,b) + + static member (+) ((a: Set<'T,'ComparerTag>),(b: Set<'T,'ComparerTag>)) = Set<_,_>.Union(a,b) + + static member Intersection((a: Set<'T,'ComparerTag>),(b: Set<'T,'ComparerTag>)) : Set<'T,'ComparerTag> = + match b.Tree with + | SetEmpty -> b (* A INTER 0 = 0 *) + | _ -> + match a.Tree with + | SetEmpty -> a (* 0 INTER B = 0 *) + | _ -> SetTree.intersection a.Comparer a.Tree b.Tree |> refresh a + + static member Union(a: Set<'T,'ComparerTag>,b: Set<'T,'ComparerTag>) : Set<'T,'ComparerTag> = + match b.Tree with + | SetEmpty -> a (* A U 0 = A *) + | _ -> + match a.Tree with + | SetEmpty -> b (* 0 U B = B *) + | _ -> SetTree.union a.Comparer a.Tree b.Tree |> refresh a + + static member Difference(a: Set<'T,'ComparerTag>,b: Set<'T,'ComparerTag>) : Set<'T,'ComparerTag> = + match a.Tree with + | SetEmpty -> a (* 0 - B = 0 *) + | _ -> + match b.Tree with + | SetEmpty -> a (* A - 0 = A *) + | _ -> SetTree.diff a.Comparer a.Tree b.Tree |> refresh a + + static member Equality(a: Set<'T,'ComparerTag>,b: Set<'T,'ComparerTag>) = + (SetTree.compare a.Comparer a.Tree b.Tree = 0) + + static member Compare(a: Set<'T,'ComparerTag>,b: Set<'T,'ComparerTag>) = + SetTree.compare a.Comparer a.Tree b.Tree + + member s.Choose = SetTree.choose tree + + member s.MinimumElement = SetTree.minimumElement tree + + member s.MaximumElement = SetTree.maximumElement tree + + member s.IsSubsetOf((y: Set<'T,'ComparerTag>)) = SetTree.subset comparer tree y.Tree + + member s.IsSupersetOf((y: Set<'T,'ComparerTag>)) = SetTree.subset comparer y.Tree tree + + member s.ToList () = SetTree.toList tree + + member s.ToArray () = SetTree.toArray tree + + override this.Equals(that) = + match that with + // Cast to the exact same type as this, otherwise not equal. + | :? Set<'T,'ComparerTag> as that -> ((this :> System.IComparable).CompareTo(that) = 0) + | _ -> false + + interface System.IComparable with + // Cast s2 to the exact same type as s1, see 4884. + // It is not OK to cast s2 to seq<'T>, since different compares could permute the elements. + member s1.CompareTo(s2: obj) = SetTree.compare s1.Comparer s1.Tree ((s2 :?> Set<'T,'ComparerTag>).Tree) + + member this.ComputeHashCode() = + let combineHash x y = (x <<< 1) + y + 631 + let mutable res = 0 + for x in this do + res <- combineHash res (Unchecked.hash x) + abs res + + override this.GetHashCode() = this.ComputeHashCode() + + interface ICollection<'T> with + member s.Add(_) = raise (new System.NotSupportedException("ReadOnlyCollection")) + member s.Clear() = raise (new System.NotSupportedException("ReadOnlyCollection")) + member s.Remove(_) = raise (new System.NotSupportedException("ReadOnlyCollection")) + member s.Contains(x) = SetTree.contains comparer x tree + member s.CopyTo(arr,i) = SetTree.copyToArray tree arr i + member s.IsReadOnly = true + member s.Count = SetTree.count tree + + interface IEnumerable<'T> with + member s.GetEnumerator() = SetTree.toSeq tree + + interface System.Collections.IEnumerable with + override s.GetEnumerator() = (SetTree.toSeq tree :> System.Collections.IEnumerator) + + static member Singleton(comparer,x) : Set<'T,'ComparerTag> = + Set<_,_>.Empty(comparer).Add(x) + + static member Create(comparer : 'ComparerTag,l : seq<'T>) : Set<'T,'ComparerTag> = + Set<_,_>(comparer=comparer, tree=SetTree.ofSeq comparer l) + + + [] + [] + type MapTree<'Key,'T> = + | MapEmpty +#if ONE + | MapOne of 'Key * 'T +#endif + // Note: performance rumour has it that the data held in this node should be + // exactly one cache line. It is currently ~7 words. Thus it might be better to + // move to a n-way tree. + | MapNode of 'Key * 'T * MapTree<'Key,'T> * MapTree<'Key,'T> * int + + + [] + module MapTree = + + let empty = MapEmpty + + let inline height x = + match x with + | MapEmpty -> 0 +#if ONE + | MapOne _ -> 1 +#endif + | MapNode(_,_,_,_,h) -> h + + let isEmpty m = + match m with + | MapEmpty -> true + | _ -> false + + let mk l k v r = +#if ONE + match l,r with + | MapEmpty,MapEmpty -> MapOne(k,v) + | _ -> +#endif + let hl = height l + let hr = height r + let m = if hl < hr then hr else hl + MapNode(k,v,l,r,m+1) + + let rebalance t1 k v t2 = + let t1h = height t1 + if height t2 > t1h + 2 then (* right is heavier than left *) + match t2 with + | MapNode(t2k,t2v,t2l,t2r,_) -> + (* one of the nodes must have height > height t1 + 1 *) + if height t2l > t1h + 1 then (* balance left: combination *) + match t2l with + | MapNode(t2lk,t2lv,t2ll,t2lr,_) -> + mk (mk t1 k v t2ll) t2lk t2lv (mk t2lr t2k t2v t2r) + | _ -> failwith "rebalance" + else (* rotate left *) + mk (mk t1 k v t2l) t2k t2v t2r + | _ -> failwith "rebalance" + else + let t2h = height t2 + if t1h > t2h + 2 then (* left is heavier than right *) + match t1 with + | MapNode(t1k,t1v,t1l,t1r,_) -> + (* one of the nodes must have height > height t2 + 1 *) + if height t1r > t2h + 1 then + (* balance right: combination *) + match t1r with + | MapNode(t1rk,t1rv,t1rl,t1rr,_) -> + mk (mk t1l t1k t1v t1rl) t1rk t1rv (mk t1rr k v t2) + | _ -> failwith "rebalance" + else + mk t1l t1k t1v (mk t1r k v t2) + | _ -> failwith "rebalance" + else mk t1 k v t2 + + let rec sizeAux acc m = + match m with + | MapEmpty -> acc +#if ONE + | MapOne _ -> acc + 1 +#endif + | MapNode(_,_,l,r,_) -> sizeAux (sizeAux (acc+1) l) r + +#if ONE +#else + let MapOne(k,v) = MapNode(k,v,MapEmpty,MapEmpty,1) +#endif + + let count x = sizeAux 0 x + + let rec add (comparer: IComparer<'T>) k v m = + match m with + | MapEmpty -> MapOne(k,v) +#if ONE + | MapOne(k2,v2) -> + let c = comparer.Compare(k,k2) + if c < 0 then MapNode (k,v,MapEmpty,m,2) + elif c = 0 then MapOne(k,v) + else MapNode (k,v,m,MapEmpty,2) +#endif + | MapNode(k2,v2,l,r,h) -> + let c = comparer.Compare(k,k2) + if c < 0 then rebalance (add comparer k v l) k2 v2 r + elif c = 0 then MapNode(k,v,l,r,h) + else rebalance l k2 v2 (add comparer k v r) + + let indexNotFound() = raise (new System.Collections.Generic.KeyNotFoundException("An index satisfying the predicate was not found in the collection")) + + let rec find (comparer: IComparer<'T>) k m = + match m with + | MapEmpty -> indexNotFound() +#if ONE + | MapOne(k2,v2) -> + let c = comparer.Compare(k,k2) + if c = 0 then v2 + else indexNotFound() +#endif + | MapNode(k2,v2,l,r,_) -> + let c = comparer.Compare(k,k2) + if c < 0 then find comparer k l + elif c = 0 then v2 + else find comparer k r + + let rec tryFind (comparer: IComparer<'T>) k m = + match m with + | MapEmpty -> None +#if ONE + | MapOne(k2,v2) -> + let c = comparer.Compare(k,k2) + if c = 0 then Some v2 + else None +#endif + | MapNode(k2,v2,l,r,_) -> + let c = comparer.Compare(k,k2) + if c < 0 then tryFind comparer k l + elif c = 0 then Some v2 + else tryFind comparer k r + + let partition1 (comparer: IComparer<'T>) f k v (acc1,acc2) = + if f k v then (add comparer k v acc1,acc2) else (acc1,add comparer k v acc2) + + let rec partitionAux (comparer: IComparer<'T>) f s acc = + match s with + | MapEmpty -> acc +#if ONE + | MapOne(k,v) -> partition1 comparer f k v acc +#endif + | MapNode(k,v,l,r,_) -> + let acc = partitionAux comparer f r acc + let acc = partition1 comparer f k v acc + partitionAux comparer f l acc + + let partition (comparer: IComparer<'T>) f s = partitionAux comparer f s (empty,empty) + + let filter1 (comparer: IComparer<'T>) f k v acc = if f k v then add comparer k v acc else acc + + let rec filterAux (comparer: IComparer<'T>) f s acc = + match s with + | MapEmpty -> acc +#if ONE + | MapOne(k,v) -> filter1 comparer f k v acc +#endif + | MapNode(k,v,l,r,_) -> + let acc = filterAux comparer f l acc + let acc = filter1 comparer f k v acc + filterAux comparer f r acc + + let filter (comparer: IComparer<'T>) f s = filterAux comparer f s empty + + let rec spliceOutSuccessor m = + match m with + | MapEmpty -> failwith "internal error: Map.splice_out_succ_or_pred" +#if ONE + | MapOne(k2,v2) -> k2,v2,MapEmpty +#endif + | MapNode(k2,v2,l,r,_) -> + match l with + | MapEmpty -> k2,v2,r + | _ -> let k3,v3,l' = spliceOutSuccessor l in k3,v3,mk l' k2 v2 r + + let rec remove (comparer: IComparer<'T>) k m = + match m with + | MapEmpty -> empty +#if ONE + | MapOne(k2,v2) -> + let c = comparer.Compare(k,k2) + if c = 0 then MapEmpty else m +#endif + | MapNode(k2,v2,l,r,_) -> + let c = comparer.Compare(k,k2) + if c < 0 then rebalance (remove comparer k l) k2 v2 r + elif c = 0 then + match l,r with + | MapEmpty,_ -> r + | _,MapEmpty -> l + | _ -> + let sk,sv,r' = spliceOutSuccessor r + mk l sk sv r' + else rebalance l k2 v2 (remove comparer k r) + + let rec containsKey (comparer: IComparer<'T>) k m = + match m with + | MapEmpty -> false +#if ONE + | MapOne(k2,v2) -> (comparer.Compare(k,k2) = 0) +#endif + | MapNode(k2,_,l,r,_) -> + let c = comparer.Compare(k,k2) + if c < 0 then containsKey comparer k l + else (c = 0 || containsKey comparer k r) + + let rec iter f m = + match m with + | MapEmpty -> () +#if ONE + | MapOne(k2,v2) -> f k2 v2 +#endif + | MapNode(k2,v2,l,r,_) -> iter f l; f k2 v2; iter f r + + let rec first f m = + match m with + | MapEmpty -> None +#if ONE + | MapOne(k2,v2) -> f k2 v2 +#endif + | MapNode(k2,v2,l,r,_) -> + match first f l with + | Some _ as res -> res + | None -> + match f k2 v2 with + | Some _ as res -> res + | None -> first f r + + let rec exists f m = + match m with + | MapEmpty -> false +#if ONE + | MapOne(k2,v2) -> f k2 v2 +#endif + | MapNode(k2,v2,l,r,_) -> f k2 v2 || exists f l || exists f r + + let rec forAll f m = + match m with + | MapEmpty -> true +#if ONE + | MapOne(k2,v2) -> f k2 v2 +#endif + | MapNode(k2,v2,l,r,_) -> f k2 v2 && forAll f l && forAll f r + + let rec map f m = + match m with + | MapEmpty -> empty +#if ONE + | MapOne(k,v) -> MapOne(k,f v) +#endif + | MapNode(k,v,l,r,h) -> let v2 = f v in MapNode(k,v2,map f l, map f r,h) + + let rec mapi f m = + match m with + | MapEmpty -> empty +#if ONE + | MapOne(k,v) -> MapOne(k,f k v) +#endif + | MapNode(k,v,l,r,h) -> let v2 = f k v in MapNode(k,v2, mapi f l, mapi f r,h) + + // Fold, right-to-left. + // + // NOTE: This differs from the behaviour of Set.fold which folds left-to-right. + let rec fold f m x = + match m with + | MapEmpty -> x +#if ONE + | MapOne(k,v) -> f k v x +#endif + | MapNode(k,v,l,r,_) -> fold f l (f k v (fold f r x)) + + let foldSection (comparer: IComparer<'T>) lo hi f m x = + let rec fold_from_to f m x = + match m with + | MapEmpty -> x +#if ONE + | MapOne(k,v) -> + let clo_k = comparer.Compare(lo,k) + let ck_hi = comparer.Compare(k,hi) + let x = if clo_k <= 0 && ck_hi <= 0 then f k v x else x + x +#endif + | MapNode(k,v,l,r,_) -> + let clo_k = comparer.Compare(lo,k) + let ck_hi = comparer.Compare(k,hi) + let x = if clo_k < 0 then fold_from_to f l x else x + let x = if clo_k <= 0 && ck_hi <= 0 then f k v x else x + let x = if ck_hi < 0 then fold_from_to f r x else x + x + + if comparer.Compare(lo,hi) = 1 then x else fold_from_to f m x + + let rec foldMap (comparer: IComparer<'T>) f m z acc = + match m with + | MapEmpty -> acc,z +#if ONE + | MapOne(k,v) -> + let v',z = f k v z + add comparer k v' acc,z +#endif + | MapNode(k,v,l,r,_) -> + let acc,z = foldMap comparer f r z acc + let v',z = f k v z + let acc = add comparer k v' acc + foldMap comparer f l z acc + + let toList m = fold (fun k v acc -> (k,v) :: acc) m [] + let toArray m = m |> toList |> Array.ofList + let ofList comparer l = List.fold (fun acc (k,v) -> add comparer k v acc) empty l + + + let rec mkFromEnumerator comparer acc (e : IEnumerator<_>) = + if e.MoveNext() then + let (x,y) = e.Current + mkFromEnumerator comparer (add comparer x y acc) e + else acc + + let ofSeq comparer (c : seq<_>) = + use ie = c.GetEnumerator() + mkFromEnumerator comparer empty ie + + let copyToArray s (arr: _[]) i = + let j = ref i + s |> iter (fun x y -> arr.[!j] <- KeyValuePair(x,y); j := !j + 1) + + + /// Imperative left-to-right iterators. + type MapIterator<'Key,'T>(s:MapTree<'Key,'T>) = + // collapseLHS: + // a) Always returns either [] or a list starting with SetOne. + // b) The "fringe" of the set stack is unchanged. + let rec collapseLHS stack = + match stack with + | [] -> [] + | MapEmpty :: rest -> collapseLHS rest +#if ONE + | MapOne _ :: _ -> stack +#else + | (MapNode(_,_,MapEmpty,MapEmpty,_)) :: _ -> stack +#endif + | (MapNode(k,v,l,r,_)) :: rest -> collapseLHS (l :: MapOne (k,v) :: r :: rest) + + /// invariant: always collapseLHS result + let mutable stack = collapseLHS [s] + /// true when MoveNext has been called + let mutable started = false + + let notStarted() = raise (new System.InvalidOperationException("Enumeration has not started. Call MoveNext.")) + let alreadyFinished() = raise (new System.InvalidOperationException("Enumeration already finished.")) + + member i.Current = + if started then + match stack with +#if ONE + | MapOne (k,v) :: _ -> new KeyValuePair<_,_>(k,v) +#else + | (MapNode(k,v,MapEmpty,MapEmpty,_)) :: _ -> new KeyValuePair<_,_>(k,v) +#endif + | [] -> alreadyFinished() + | _ -> failwith "Please report error: Map iterator, unexpected stack for current" + else + notStarted() + + member i.MoveNext() = + if started then + match stack with +#if ONE + | MapOne _ :: rest -> +#else + | (MapNode(_,_,MapEmpty,MapEmpty,_)) :: rest -> +#endif + stack <- collapseLHS rest; + not stack.IsEmpty + | [] -> false + | _ -> failwith "Please report error: Map iterator, unexpected stack for moveNext" + else + // The first call to MoveNext "starts" the enumeration. + started <- true; + not stack.IsEmpty + + let toSeq s = + let i = ref (MapIterator(s)) + { new IEnumerator<_> with + member self.Current = (!i).Current + interface System.Collections.IEnumerator with + member self.Current = box (!i).Current + member self.MoveNext() = (!i).MoveNext() + member self.Reset() = i := MapIterator(s) + interface System.IDisposable with + member self.Dispose() = ()} + + +#if FX_NO_DEBUG_DISPLAYS +#else + [] +#endif + [] + type internal Map<'Key,'T,'ComparerTag> when 'ComparerTag :> IComparer<'Key>( comparer: IComparer<'Key>, tree: MapTree<'Key,'T>) = + + static let refresh (m:Map<_,_,'ComparerTag>) t = Map<_,_,'ComparerTag>(comparer=m.Comparer, tree=t) + + member s.Tree = tree + member s.Comparer : IComparer<'Key> = comparer + + static member Empty(comparer : 'ComparerTag) = Map<'Key,'T,'ComparerTag>(comparer=comparer, tree=MapTree.empty) + member m.Add(k,v) = refresh m (MapTree.add comparer k v tree) + member m.IsEmpty = MapTree.isEmpty tree + member m.Item with get(k : 'Key) = MapTree.find comparer k tree + member m.First(f) = MapTree.first f tree + member m.Exists(f) = MapTree.exists f tree + member m.Filter(f) = MapTree.filter comparer f tree |> refresh m + member m.ForAll(f) = MapTree.forAll f tree + member m.Fold f acc = MapTree.fold f tree acc + member m.FoldSection lo hi f acc = MapTree.foldSection comparer lo hi f tree acc + member m.FoldAndMap f z = + let tree,z = MapTree.foldMap comparer f tree z MapTree.empty + refresh m tree, z + member m.Iterate f = MapTree.iter f tree + member m.MapRange f = refresh m (MapTree.map f tree) + member m.Map f = refresh m (MapTree.mapi f tree) + member m.Partition(f) = + let r1,r2 = MapTree.partition comparer f tree + refresh m r1, refresh m r2 + member m.Count = MapTree.count tree + member m.ContainsKey(k) = MapTree.containsKey comparer k tree + member m.Remove(k) = refresh m (MapTree.remove comparer k tree) + member m.TryFind(k) = MapTree.tryFind comparer k tree + member m.ToList() = MapTree.toList tree + member m.ToArray() = MapTree.toArray tree + + static member FromList(comparer : 'ComparerTag,l) : Map<'Key,'T,'ComparerTag> = + Map<_,_,_>(comparer=comparer, tree=MapTree.ofList comparer l) + + static member Create(comparer : 'ComparerTag, ie : seq<_>) : Map<'Key,'T,'ComparerTag> = + Map<_,_,_>(comparer=comparer, tree=MapTree.ofSeq comparer ie) + + interface IEnumerable> with + member s.GetEnumerator() = MapTree.toSeq tree + + interface System.Collections.IEnumerable with + override s.GetEnumerator() = (MapTree.toSeq tree :> System.Collections.IEnumerator) + + override this.Equals(that) = + match that with + // Cast to the exact same type as this, otherwise not equal. + | :? Map<'Key,'T,'ComparerTag> as that -> ((this :> System.IComparable).CompareTo(that) = 0) + | _ -> false + + interface System.IComparable with + member m1.CompareTo(m2: obj) = + Seq.compareWith + (fun (kvp1 : KeyValuePair<_,_>) (kvp2 : KeyValuePair<_,_>)-> + let c = m1.Comparer.Compare(kvp1.Key,kvp2.Key) in + if c <> 0 then c else Unchecked.compare kvp1.Value kvp2.Value) + // Cast m2 to the exact same type as m1, see 4884. + // It is not OK to cast m2 to seq>, since different compares could permute the KVPs. + m1 (m2 :?> Map<'Key,'T,'ComparerTag>) + + member this.ComputeHashCode() = + let combineHash x y = (x <<< 1) + y + 631 + let mutable res = 0 + for KeyValue(x,y) in this do + res <- combineHash res (Unchecked.hash x) + res <- combineHash res (Unchecked.hash y) + abs res + + override this.GetHashCode() = this.ComputeHashCode() + + + type Map<'Key,'T> = Map<'Key, 'T, IComparer<'Key>> + type Set<'T> = Set<'T, IComparer<'T>> + diff --git a/src/utils/TaggedCollections.fsi b/src/utils/TaggedCollections.fsi new file mode 100644 index 0000000..7457f0a --- /dev/null +++ b/src/utils/TaggedCollections.fsi @@ -0,0 +1,230 @@ +//---------------------------------------------------------------------------- +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + + +/// This namespace contains FSharp.PowerPack extensions for the F# collection types +namespace Internal.Utilities.Collections.Tagged + + open System + open System.Collections.Generic + + /// Immutable sets based on binary trees, default tag + + /// Immutable sets where a constraint tag carries information about the class of key-comparer being used. + [] + type internal Set<'T,'ComparerTag> when 'ComparerTag :> IComparer<'T> = + + /// A useful shortcut for Set.add. Note this operation prodcues a new set + /// and does not mutate the original set. The new set will share many storage + /// nodes with the original. See the Set module for further operations on sets. + member Add : 'T -> Set<'T,'ComparerTag> + + /// A useful shortcut for Set.remove. Note this operation produces a new set + /// and does not mutate the original set. The new set will share many storage + /// nodes with the original. See the Set module for further operations on sets. + member Remove : 'T -> Set<'T,'ComparerTag> + + /// Return the number of elements in the set + member Count : int + + /// A useful shortcut for Set.contains. See the Set module for further operations on sets. + member Contains : 'T -> bool + + /// A useful shortcut for Set.isEmpty. See the Set module for further operations on sets. + member IsEmpty : bool + + /// Apply the given function to each binding in the collection + member Iterate : ('T -> unit) -> unit + + /// Apply the given accumulating function to all the elements of the set + member Fold : ('T -> 'State -> 'State) -> 'State -> 'State + + /// Build two new sets, one containing the elements for which the given predicate returns 'true', + /// and the other the remaining elements. + member Partition: predicate:('T -> bool) -> Set<'T,'ComparerTag> * Set<'T,'ComparerTag> + + /// Return a new collection containing only the elements of the collection + /// for which the given predicate returns "true" + member Filter: predicate:('T -> bool) -> Set<'T,'ComparerTag> + + /// Test if any element of the collection satisfies the given predicate. + /// If the input function is f and the elements are i0...iN then computes + /// p i0 or ... or p iN. + member Exists: predicate:('T -> bool) -> bool + + /// Test if all elements of the collection satisfy the given predicate. + /// If the input function is f and the elements are i0...iN and j0...jN then + /// computes p i0 && ... && p iN. + member ForAll: predicate:('T -> bool) -> bool + + /// A set based on the given comparer containing the given initial elements + static member Create: 'ComparerTag * seq<'T> -> Set<'T,'ComparerTag> + + /// The empty set based on the given comparer + static member Empty: 'ComparerTag -> Set<'T,'ComparerTag> + + /// A singleton set based on the given comparison operator + static member Singleton: 'ComparerTag * 'T -> Set<'T,'ComparerTag> + + /// Compares two sets and returns true if they are equal or false otherwise + static member Equality : Set<'T,'ComparerTag> * Set<'T,'ComparerTag> -> bool + + /// Compares a and b and returns 1 if a > b, -1 if b < a and 0 if a = b + static member Compare : a:Set<'T,'ComparerTag> * b:Set<'T,'ComparerTag> -> int + + /// Return a new set with the elements of the second set removed from the first. + static member (-) : Set<'T,'ComparerTag> * Set<'T,'ComparerTag> -> Set<'T,'ComparerTag> + + /// Compute the union of the two sets. + static member (+) : Set<'T,'ComparerTag> * Set<'T,'ComparerTag> -> Set<'T,'ComparerTag> + + /// Compute the intersection of the two sets. + static member Intersection : Set<'T,'ComparerTag> * Set<'T,'ComparerTag> -> Set<'T,'ComparerTag> + + /// Compute the union of the two sets. + static member Union : Set<'T,'ComparerTag> * Set<'T,'ComparerTag> -> Set<'T,'ComparerTag> + + /// Return a new set with the elements of the second set removed from the first. + static member Difference: Set<'T,'ComparerTag> * Set<'T,'ComparerTag> -> Set<'T,'ComparerTag> + + /// The number of elements in the set + member Choose : 'T + + /// Returns the lowest element in the set according to the ordering being used for the set + member MinimumElement: 'T + + /// Returns the highest element in the set according to the ordering being used for the set + member MaximumElement: 'T + + /// Evaluates to "true" if all elements of the second set are in the first + member IsSubsetOf: Set<'T,'ComparerTag> -> bool + + /// Evaluates to "true" if all elements of the first set are in the second + member IsSupersetOf: Set<'T,'ComparerTag> -> bool + + /// The elements of the set as a list. + member ToList : unit -> 'T list + + /// The elements of the set as an array. + member ToArray: unit -> 'T array + + interface ICollection<'T> + interface IEnumerable<'T> + interface System.Collections.IEnumerable + + interface System.IComparable + override Equals : obj -> bool + + type internal Set<'T> = Set<'T, IComparer<'T>> + + /// Immutable maps. Keys are ordered by construction function specified + /// when creating empty maps or by F# structural comparison if no + /// construction function is specified. + /// + /// + /// Maps based on structural comparison are + /// efficient for small keys. They are not a suitable choice if keys are recursive data structures + /// or require non-structural comparison semantics. + /// + + /// Immutable maps. A constraint tag carries information about the class of key-comparers being used. + [] + type internal Map<'Key,'Value,'ComparerTag> when 'ComparerTag :> IComparer<'Key> = + /// Return a new map with the binding added to the given map. + member Add: 'Key * 'Value -> Map<'Key,'Value,'ComparerTag> + + /// Return true if there are no bindings in the map. + member IsEmpty: bool + + //member Comparer : 'ComparerTag + + /// The empty map, and use the given comparer comparison function for all operations associated + /// with any maps built from this map. + static member Empty: 'ComparerTag -> Map<'Key,'Value,'ComparerTag> + + static member FromList : 'ComparerTag * ('Key * 'Value) list -> Map<'Key,'Value,'ComparerTag> + + /// Build a map that contains the bindings of the given IEnumerable + /// and where comparison of elements is based on the given comparison function + static member Create: 'ComparerTag * seq<'Key * 'Value> -> Map<'Key,'Value,'ComparerTag> + + /// Test is an element is in the domain of the map + member ContainsKey: 'Key -> bool + + /// The number of bindings in the map + member Count: int + + /// Lookup an element in the map. Raise KeyNotFoundException if no binding + /// exists in the map. + member Item : 'Key -> 'Value with get + + /// Search the map looking for the first element where the given function returns a Some value + member First: ('Key -> 'Value -> 'T option) -> 'T option + + /// Return true if the given predicate returns true for all of the + /// bindings in the map. Always returns true if the map is empty. + member ForAll: ('Key -> 'Value -> bool) -> bool + + /// Return true if the given predicate returns true for one of the + /// bindings in the map. Always returns false if the map is empty. + member Exists: ('Key -> 'Value -> bool) -> bool + + /// Build a new map containing the bindings for which the given predicate returns 'true'. + member Filter: ('Key -> 'Value -> bool) -> Map<'Key,'Value,'ComparerTag> + + /// Fold over the bindings in the map. + member Fold: folder:('Key -> 'Value -> 'State -> 'State) -> 'State -> 'State + + /// Given the start and end points of a key range, + /// Fold over the bindings in the map that are in the range, + /// and the end points are included if present (the range is considered a closed interval). + member FoldSection: 'Key -> 'Key -> ('Key -> 'Value -> 'State -> 'State) -> 'State -> 'State + + /// Fold over the bindings in the map. + member FoldAndMap: ('Key -> 'Value -> 'State -> 'T * 'State) -> 'State -> Map<'Key,'T,'ComparerTag> * 'State + + /// Apply the given function to each binding in the dictionary + member Iterate: action:('Key -> 'Value -> unit) -> unit + + /// Build a new collection whose elements are the results of applying the given function + /// to each of the elements of the collection. The index passed to the + /// function indicates the index of element being transformed. + member Map: mapping:('Key -> 'Value -> 'T) -> Map<'Key,'T,'ComparerTag> + + /// Build a new collection whose elements are the results of applying the given function + /// to each of the elements of the collection. + member MapRange: mapping:('Value -> 'T) -> Map<'Key,'T,'ComparerTag> + + /// Build two new maps, one containing the bindings for which the given predicate returns 'true', + /// and the other the remaining bindings. + member Partition: ('Key -> 'Value -> bool) -> Map<'Key,'Value,'ComparerTag> * Map<'Key,'Value,'ComparerTag> + + /// Remove an element from the domain of the map. No exception is raised if the element is not present. + member Remove: 'Key -> Map<'Key,'Value,'ComparerTag> + + /// Lookup an element in the map, returning a Some value if the element is in the domain + /// of the map and None if not. + member TryFind: 'Key -> 'Value option + + /// The elements of the set as a list. + member ToList : unit -> ('Key * 'Value) list + + /// The elements of the set as an array + member ToArray: unit -> ('Key * 'Value) array + + interface IEnumerable> + + interface System.Collections.IEnumerable + interface System.IComparable + override Equals : obj -> bool + + type internal Map<'Key,'Value> = Map<'Key, 'Value, IComparer<'Key>> + diff --git a/src/utils/ThreeList.fs b/src/utils/ThreeList.fs new file mode 100644 index 0000000..6ddd6a5 --- /dev/null +++ b/src/utils/ThreeList.fs @@ -0,0 +1,542 @@ +//---------------------------------------------------------------------------- +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + + +/// A working implementation of vectors that chunks the vector in groups of 3 giving 7 words per allocation (a 3/7 = 42% maximum utilization rate instead of 1/4 = 25%) +/// No cons, head, tail or other access-from-the-left operations (apart from nth) are supported +namespace Internal.Utilities + +open System.Collections +open System.Collections.Generic + +(* +[] +type ThreeList<'T> = + member Length : int + interface IEnumerable<'T> + interface System.Collections.IEnumerable + interface System.IComparable +[] +module ThreeList = + val map : ('T -> 'U) -> ThreeList<'T> -> ThreeList<'U> + val mapi : (int -> 'T -> 'U) -> ThreeList<'T> -> ThreeList<'U> + val isEmpty : ThreeList<'T> -> bool + val toList : ThreeList<'T> -> 'T list + val ofList : 'T list -> ThreeList<'T> + val lengthsEqAndForall2 : ('T -> 'U -> bool) -> ThreeList<'T> -> ThreeList<'U> -> bool + val init : int -> (int -> 'T) -> ThreeList<'T> + val empty<'T> : ThreeList<'T> + val toArray : ThreeList<'T> -> 'T[] + val ofArray : 'T[] -> ThreeList<'T> + val nth : ThreeList<'T> -> int -> 'T + val iter : ('T -> unit) -> ThreeList<'T> -> unit + val iteri : (int -> 'T -> unit) -> ThreeList<'T> -> unit + val foldBack : ('T -> 'State -> 'State) -> ThreeList<'T> -> 'State -> 'State + val exists : ('T -> bool) -> ThreeList<'T> -> bool +*) + +[] +type ThreeList<[] 'T> = + {n:int;x1: 'T;x2: 'T;x3: 'T; mutable t: ThreeList<'T>} + interface IEnumerable<'T> with + member x.GetEnumerator() : IEnumerator<'T> = (new ThreeListEnumerator<'T>(x) :> IEnumerator<'T>) + interface IEnumerable with + member x.GetEnumerator() : IEnumerator = ((x :> IEnumerable<'T>).GetEnumerator() :> IEnumerator) + interface System.IComparable with + member x.CompareTo(yobj:obj) = + match yobj with + | :? ThreeList<'T> as y -> + let rec loop x y = + let c = compare x.n y.n + if c <> 0 then c else + if x.n = 0 then 0 else + let c = Unchecked.compare x.x1 y.x1 + if c <> 0 then c else + if x.n = 1 then 0 else + let c = Unchecked.compare x.x2 y.x2 + if c <> 0 then c else + if x.n = 2 then 0 else + let c = Unchecked.compare x.x2 y.x2 + if c <> 0 then c else + let c = Unchecked.compare x.x3 y.x3 + if c <> 0 then c else + loop x.t y.t + loop x y + | _ -> invalidArg "yobj" "incorrect type" + + override x.Equals(yobj:obj) = + match yobj with + | :? ThreeList<'T> as y -> + let rec loop x y = + x.n = y.n && + match x.n with + | 0 -> true + | 1 -> Unchecked.equals x.x1 y.x1 + | 2 -> Unchecked.equals x.x1 y.x1 && Unchecked.equals x.x2 y.x2 + | _ -> Unchecked.equals x.x1 y.x1 && Unchecked.equals x.x2 y.x2 && Unchecked.equals x.x3 y.x3 && Unchecked.equals x.x1 y.x1 && loop x.t y.t + loop x y + | _ -> false + override x.GetHashCode() = + let rec loop acc x = + let acc = acc <<< 1 + Unchecked.hash x.x1 + 3 + if x.n = 0 then acc else + let acc = acc <<< 1 + Unchecked.hash x.x1 + 7 + if x.n = 1 then acc else + let acc = acc <<< 1 + Unchecked.hash x.x2 + 17 + if x.n = 2 then acc else + loop (acc <<< 1 + Unchecked.hash x.x3 + 31) x.t + loop 0 x + +and ThreeListEnumerator<'T>(tl:ThreeList<'T>) = + let mutable tl = tl + let mutable p = -1 + interface IEnumerator with + member x.Current = box (x :> IEnumerator<'T>).Current + member x.MoveNext() = + if p = tl.n - 1 then + if tl.n < 3 || tl.t.n = 0 then false else tl <- tl.t; p <- 0; true + else p <- p + 1; true + member x.Reset() = invalidOp "reset not permitted" + interface IEnumerator<'T> with + member x.Current = match p with 0 -> tl.x1 | 1 -> tl.x2 | _ -> tl.x3 + member x.Dispose() = () + +type ThreeListStatics<'T>() = + static let emptyTL = {n=0;x1=Unchecked.defaultof<'T>;x2=Unchecked.defaultof<'T>;x3=Unchecked.defaultof<'T>;t=Unchecked.defaultof<_>} + static member Empty : ThreeList<'T> = emptyTL + +[] +module ThreeList = + let inline TL(n,x1,x2,x3,t) = {n=n;x1=x1;x2=x2;x3=x3;t=t} + let inline e<'T> = Unchecked.defaultof<'T> + + let rec mapToFreshConsTail f r prev {n=n;x1=x1;x2=x2;x3=x3;t=t} = + let c = + match n with + | 0 -> ThreeListStatics.Empty + | 1 -> TL(1, f x1, e, e, e) + | 2 -> TL(2, f x1, f x2, e, e) + | _ -> TL(3, f x1, f x2, f x3, e) + prev.t <- c + if n = 3 then mapToFreshConsTail f r c t else r + + let map f {n=n;x1=x1;x2=x2;x3=x3;t=t} = + match n with + | 0 -> ThreeListStatics.Empty + | 1 -> TL(1, f x1, e, e, e) + | 2 -> TL(2, f x1, f x2, e, e) + | _ -> let r = TL(3, f x1, f x2, f x3, e) in mapToFreshConsTail f r r t + + let rec mapiToFreshConsTail f i r prev {n=n;x1=x1;x2=x2;x3=x3;t=t} = + let c = + match n with + | 0 -> ThreeListStatics.Empty + | 1 -> TL(1, f i x1, e, e, e) + | 2 -> TL(2, f i x1, f (i + 1) x2, e, e) + | _ -> TL(3, f i x1, f (i + 1) x2, f (i + 2) x3, e) + prev.t <- c + if n = 3 then mapiToFreshConsTail f (i+3) r c t else r + + let mapi f {n=n;x1=x1;x2=x2;x3=x3;t=t} = + match n with + | 0 -> ThreeListStatics.Empty + | 1 -> TL(1, f 0 x1, e, e, e) + | 2 -> TL(2, f 0 x1, f 1 x2, e, e) + | _ -> let r = (TL(3, f 0 x1, f 1 x2, f 2 x3, e)) in mapiToFreshConsTail f 3 r r t + + let iteri f xs = + let rec loop i {n=n;x1=x1;x2=x2;x3=x3;t=t} = + match n with + | 0 -> () + | 1 -> f i x1 + | 2 -> f i x1; f (i+1) x2; + | _ -> f i x1; f (i+1) x2; f (i+2) x3; loop (i+3) t + loop 0 xs + + let rec nth {n=n;x1=x1;x2=x2;x3=x3;t=t} i = + if i < 0 then invalidArg "k" "must be non-negative" + elif i >= n then invalidArg "k" "too big for list" + match i with + | 0 -> x1 + | 1 -> x2 + | 2 -> x3 + | _ -> nth t (i-3) + + let rec iter f {n=n;x1=x1;x2=x2;x3=x3;t=t} = + match n with + | 0 -> () + | 1 -> f x1 + | 2 -> f x1; f x2; + | _ -> f x1; f x2; f x3; iter f t + + let isEmpty t = (t.n = 0) + + let length x = + if x.n < 3 then x.n else + let rec loop acc t = if t.n = 3 then loop (acc + t.n) t.t else acc + t.n + loop 3 x.t + + let toArray xs = + let res = Array.zeroCreate (length xs) + let rec loop i {n=n;x1=x1;x2=x2;x3=x3;t=t} = + match n with + | 0 -> () + | 1 -> res.[i] <- x1 + | 2 -> res.[i] <- x1; res.[i+1] <- x2 + | _ -> res.[i] <- x1; res.[i+1] <- x2; res.[i+2] <- x3; loop (i+3) t + loop 0 xs + res + + let ofArray (arr:'T[]) = + let n = arr.Length + let acc = + match n % 3 with + | 0 -> ThreeListStatics.Empty + | 1 -> TL(1, arr.[n-1], e, e, e) + | _ -> TL(2, arr.[n-2], arr.[n-1], e, e) + let rec loop acc i = if i = 0 then acc else loop (TL(3, arr.[i-3], arr.[i-2], arr.[i-1], acc)) (i-3) + loop acc (n-n%3) + + let toList {n=n;x1=x1;x2=x2;x3=x3;t=t} = + match n with + | 0 -> [] + | 1 -> [x1] + | 2 -> [x1; x2] + | _ -> x1::x2::x3::Array.toList (toArray t) + + let rec ofList (x:'T list) = + match x with + | [] -> ThreeListStatics.Empty + | [x1] -> TL(1, x1, e, e, e) + | [x1;x2] -> TL(2, x1, x2, e, e) + | x1::x2::x3::t -> + let rec loop r prev x = + match x with + | [] -> prev.t <- ThreeListStatics.Empty; r + | [x1] -> prev.t <- TL(1, x1, e, e, e); r + | [x1;x2] -> prev.t <- TL(2, x1, x2, e, e); r + | x1::x2::x3::t -> let c = TL(3, x1, x2, x3, e) in prev.t <- c; loop r c t + + let r = TL(3, x1, x2, x3, e) + loop r r t + + let lengthsEqAndForall2 f (x: ThreeList<'T>) (y: ThreeList<'U>) = + length x = length y && + let rec loop x y = + let {n=xn;x1=x1;x2=x2;x3=x3;t=xt} = x + let {n=_;x1=y1;x2=y2;x3=y3;t=yt} = y + match xn with + | 0 -> true + | 1 -> f x1 y1 + | 2 -> f x1 y1 && f x2 y2 + | _ -> f x1 y1 && f x2 y2 && f x3 y3 && loop xt yt + loop x y + + let empty<'T> = ThreeListStatics<'T>.Empty + + let init n f = + let acc = + match n % 3 with + | 0 -> ThreeListStatics.Empty + | 1 -> TL(1, f (n-1), e, e, e) + | _ -> TL(2, f (n-2), f (n-1), e, e) + let rec loop acc i = if i = 0 then acc else loop (TL(3, f (i-3), f (i-2), f (i-1), acc)) (i-3) + loop acc (n-n%3) + + let rec exists f {n=n;x1=x1;x2=x2;x3=x3;t=t} = + match n with + | 0 -> false + | 1 -> f x1 + | 2 -> f x1 || f x2 + | _ -> f x1 || f x2 || f x3 || exists f t + + let rec foldBack f {n=n;x1=x1;x2=x2;x3=x3;t=t} z = + match n with + | 0 -> z + | 1 -> f x1 z + | 2 -> f x1 (f x2 z) + | _ -> f x1 (f x2 (f x3 (Array.foldBack f (toArray t) z))) + +type ThreeList<'T> with + member x.Length = ThreeList.length x + +(* +#time "on" + +let check s v1 v2 = if (v1 <> v2) then printfn "FAIL: %s" s +for i in 0 .. 100 do + check ("3lkcewoeiwvX" + string i) ([1..i] |> ThreeList.ofList |> ThreeList.toList) [1..i] + check ("3lkcewoeiwvA" + string i) ([1..i] |> ThreeList.ofList |> ThreeList.map (fun i -> i + 1) |> ThreeList.toList) [2..i+1] + check ("3lkcewoeiwvA" + string i) ([1..i] |> ThreeList.ofList |> Seq.map (fun i -> i + 1) |> Seq.toList) [2..i+1] + check ("3lkcewoeiwvT" + string i) ([1..i] |> ThreeList.ofList |> ThreeList.mapi (fun i j -> (i, j)) |> ThreeList.toList) [ for i in 0..i-1 -> (i,i+1) ] + check ("3lkcewoeiwvF" + string i) ([1..i] |> ThreeList.ofList |> ThreeList.toArray) [| 1..i |] + check ("3lkcewoeiwvQ" + string i) (ThreeList.init i (fun i -> i + 1) |> ThreeList.toArray) [| 1..i |] + check ("3lkcewoeiwvW" + string i) ([| 1..i |] |> ThreeList.ofArray |> ThreeList.toArray) [| 1..i |] + check ("3lkcewoeiwvG" + string i) ([| 1..i |] |> ThreeList.ofArray |> ThreeList.exists (fun i -> i = 10)) (i >= 10) + check ("3lkcewoeiwvH" + string i) (let x = ref 0 in [| 1..i |] |> ThreeList.ofArray |> ThreeList.iter (fun i -> x := !x + i); !x) (List.sum [ 1 .. i]) + check ("3lkcewoeiwvJ" + string i) (let x = ref 0 in [| 1..i |] |> ThreeList.ofArray |> ThreeList.iteri (fun j i -> x := !x + i); !x) (List.sum [ 1 .. i]) + check ("3lkcewoeiwvK" + string i) (let x = ref 0 in [| 1..i |] |> ThreeList.ofArray |> ThreeList.iteri (fun j i -> x := !x + j); !x) (List.sum [ 0 .. i-1]) + check ("3lkcewoeiwvK" + string i) (compare (ThreeList.ofList [0..i]) (ThreeList.ofList [0..i])) 0 + check ("3lkcewoeiwvK" + string i) (compare (ThreeList.ofList [0..i]) (ThreeList.ofList [0..i+1])) -1 + check ("3lkcewoeiwvK" + string i) (compare (ThreeList.ofList [0..i]) (ThreeList.ofList [0..i-1])) 1 + check ("3lkcewoeiwvK" + string i) (compare (ThreeList.ofList [0..i]) (ThreeList.ofList [1..i+1])) -1 + check ("3lkcewoeiwvK" + string i) (compare (ThreeList.ofList [0..i]) (ThreeList.ofList ([0..i-1] @ [i+1]))) -1 + + check ("3lkcewoeiwvK" + string i) ((ThreeList.ofList [0..i]) = (ThreeList.ofList [0..i])) true + check ("3lkcewoeiwvK" + string i) ((ThreeList.ofList [0..i]) = (ThreeList.ofList ([0..i-1] @ [i+1]))) false + +module SpeedTestMapBigLIntist = + let fl1 = FourList.init 100000 (fun i -> i + 1) + let tl1 = ThreeList.init 100000 (fun i -> i + 1) + let l1 = List.init 100000 (fun i -> i + 1) + let al1 = Array.init 100000 (fun i -> i + 1) + + + //Real: 00:00:01.028, CPU: 00:00:00.982, GC gen0: 145, gen1: 67, gen2: 0 + //Real: 00:00:00.986, CPU: 00:00:00.967, GC gen0: 142, gen1: 65, gen2: 0 + for i in 0 .. 1000 do + fl1 |> FourList.map (fun i -> i + 1) |> ignore + + //Real: 00:00:01.157, CPU: 00:00:01.138, GC gen0: 165, gen1: 83, gen2: 0 + //Real: 00:00:01.115, CPU: 00:00:01.092, GC gen0: 163, gen1: 106, gen2: 0 + for i in 0 .. 1000 do + tl1 |> ThreeList.map (fun i -> i + 1) |> ignore + + + // Real: 00:00:02.740, CPU: 00:00:02.714, GC gen0: 268, gen1: 136, gen2: 0 + // Real: 00:00:02.344, CPU: 00:00:02.324, GC gen0: 266, gen1: 266, gen2: 0 + for i in 0 .. 1000 do + l1 |> List.map (fun i -> i + 1) |> ignore + + // Real: 00:00:01.420, CPU: 00:00:01.575, GC gen0: 22, gen1: 22, gen2: 22 + // Real: 00:00:00.553, CPU: 00:00:00.655, GC gen0: 7, gen1: 6, gen2: 5 + // Real: 00:00:00.918, CPU: 00:00:01.092, GC gen0: 14, gen1: 13, gen2: 13 + // Real: 00:00:02.431, CPU: 00:00:02.636, GC gen0: 57, gen1: 57, gen2: 57 + // Real: 00:00:04.541, CPU: 00:00:04.773, GC gen0: 111, gen1: 111, gen2: 111 + // Real: 00:00:00.965, CPU: 00:00:01.107, GC gen0: 21, gen1: 17, gen2: 17 + // Real: 00:00:00.878, CPU: 00:00:00.998, GC gen0: 17, gen1: 16, gen2: 16 + for i in 0 .. 1000 do + al1 |> Array.map (fun i -> i + 1) |> ignore + +module SpeedTestMapSmallIntList = + let fl1 = FourList.init 2 (fun i -> i + 1) + let tl1 = ThreeList.init 2 (fun i -> i + 1) + let l1 = List.init 2 (fun i -> i + 1) + let al1 = Array.init 2 (fun i -> i + 1) + let N = 20000000 + + // Real: 00:00:00.579, CPU: 00:00:00.561, GC gen0: 279, gen1: 0, gen2: 0 + // Real: 00:00:00.599, CPU: 00:00:00.592, GC gen0: 279, gen1: 0, gen2: 0 + for i in 0 .. N do + fl1 |> FourList.map (fun i -> i + 1) |> ignore + + + // Real: 00:00:00.475, CPU: 00:00:00.483, GC gen0: 255, gen1: 0, gen2: 0 + // Real: 00:00:00.475, CPU: 00:00:00.468, GC gen0: 254, gen1: 0, gen2: 0 + for i in 0 .. N do + tl1 |> ThreeList.map (fun i -> i + 1) |> ignore + + // Real: 00:00:00.893, CPU: 00:00:00.889, GC gen0: 280, gen1: 0, gen2: 0 + // Real: 00:00:00.896, CPU: 00:00:00.904, GC gen0: 280, gen1: 1, gen2: 0 + for i in 0 .. N do + l1 |> List.map (fun i -> i + 1) |> ignore + + // Real: 00:00:00.248, CPU: 00:00:00.249, GC gen0: 127, gen1: 0, gen2: 0 + // Real: 00:00:00.248, CPU: 00:00:00.249, GC gen0: 127, gen1: 0, gen2: 0 + for i in 0 .. N do + al1 |> Array.map (fun i -> i + 1) |> ignore + +module SpeedTestMapSmallStringList = + let fl1 = FourList.init 2 (fun i -> string i) + let tl1 = ThreeList.init 2 (fun i -> string i) + let l1 = List.init 2 (fun i -> string i) + let al1 = Array.init 2 (fun i -> string i ) + let N = 10000000 + + // Real: 00:00:00.311, CPU: 00:00:00.312, GC gen0: 140, gen1: 0, gen2: 0 + // Real: 00:00:00.313, CPU: 00:00:00.312, GC gen0: 139, gen1: 0, gen2: 0 + for i in 0 .. N do + fl1 |> FourList.map (fun i -> i) |> ignore + + // Real: 00:00:00.285, CPU: 00:00:00.280, GC gen0: 127, gen1: 0, gen2: 0 + for i in 0 .. N do + tl1 |> ThreeList.map (fun i -> i) |> ignore + + // Real: 00:00:00.699, CPU: 00:00:00.686, GC gen0: 141, gen1: 1, gen2: 1 + for i in 0 .. N do + l1 |> List.map (fun i -> i) |> ignore + + // Real: 00:00:00.225, CPU: 00:00:00.218, GC gen0: 76, gen1: 0, gen2: 0 + for i in 0 .. N do + al1 |> Array.map (fun i -> i) |> ignore + + +module SpeedTestMapSmallRefListSize2 = + type X = A of int | B of int + let fl1 = FourList.init 2 (fun i -> A i) + let tl1 = ThreeList.init 2 (fun i -> A i) + let l1 = List.init 2 (fun i -> A i) + let al1 = Array.init 2 (fun i -> A i ) + let N = 10000000 + + //Real: 00:00:00.528, CPU: 00:00:00.530, GC gen0: 216, gen1: 1, gen2: 0 + //Real: 00:00:00.538, CPU: 00:00:00.530, GC gen0: 216, gen1: 0, gen2: 0 + for i in 0 .. N do + fl1 |> FourList.map (function A i -> B i | B i -> A i) |> ignore + + // Real: 00:00:00.615, CPU: 00:00:00.624, GC gen0: 204, gen1: 0, gen2: 0 + //Real: 00:00:00.528, CPU: 00:00:00.514, GC gen0: 204, gen1: 1, gen2: 0 + for i in 0 .. N do + tl1 |> ThreeList.map (function A i -> B i | B i -> A i) |> ignore + + // Real: 00:00:00.932, CPU: 00:00:00.904, GC gen0: 216, gen1: 0, gen2: 0 + for i in 0 .. N do + l1 |> List.map (function A i -> B i | B i -> A i) |> ignore + + // Real: 00:00:00.807, CPU: 00:00:00.811, GC gen0: 153, gen1: 0, gen2: 0 + // Real: 00:00:00.812, CPU: 00:00:00.811, GC gen0: 153, gen1: 0, gen2: 0 + for i in 0 .. N do + al1 |> Array.map (function A i -> B i | B i -> A i) |> ignore + +module SpeedTestMapSmallRefListSize10 = + type X = A of int | B of int + let size = 10 + let tl1 = ThreeList.init size (fun i -> A i) + let l1 = List.init size (fun i -> A i) + let al1 = Array.init size (fun i -> A i ) + let N = 10000000 + + // Real: 00:00:02.562, CPU: 00:00:02.527, GC gen0: 775, gen1: 0, gen2: 0 + for i in 0 .. N do + tl1 |> ThreeList.map (function A i -> B i | B i -> A i) |> ignore + + // Real: 00:00:03.372, CPU: 00:00:03.385, GC gen0: 928, gen1: 0, gen2: 0 + for i in 0 .. N do + l1 |> List.map (function A i -> B i | B i -> A i) |> ignore + + // Real: 00:00:03.524, CPU: 00:00:03.510, GC gen0: 559, gen1: 0, gen2: 0 + for i in 0 .. N do + al1 |> Array.map (function A i -> B i | B i -> A i) |> ignore + +module SpeedTestMapSmallRefListSize1 = + type X = A of int | B of int + let size = 1 + let fl1 = FourList.init size (fun i -> A i) + let tl1 = ThreeList.init size (fun i -> A i) + let l1 = List.init size (fun i -> A i) + let al1 = Array.init size (fun i -> A i ) + let N = 100000000 + + //Real: 00:00:04.161, CPU: 00:00:04.087, GC gen0: 1780, gen1: 1, gen2: 0 + //Real: 00:00:04.202, CPU: 00:00:04.165, GC gen0: 1780, gen1: 0, gen2: 0 + for i in 0 .. N do + fl1 |> FourList.map (function A i -> B i | B i -> A i) |> ignore + + // Real: 00:00:03.944, CPU: 00:00:03.915, GC gen0: 1653, gen1: 1, gen2: 0 + // Real: 00:00:03.983, CPU: 00:00:03.900, GC gen0: 1653, gen1: 1, gen2: 0 + for i in 0 .. N do + tl1 |> ThreeList.map (function A i -> B i | B i -> A i) |> ignore + + // Real: 00:00:04.629, CPU: 00:00:04.586, GC gen0: 1272, gen1: 1, gen2: 0 + // Real: 00:00:04.725, CPU: 00:00:04.664, GC gen0: 1271, gen1: 0, gen2: 0 + for i in 0 .. N do + l1 |> List.map (function A i -> B i | B i -> A i) |> ignore + + // Real: 00:00:04.500, CPU: 00:00:04.430, GC gen0: 1018, gen1: 1, gen2: 0 + for i in 0 .. N do + al1 |> Array.map (function A i -> B i | B i -> A i) |> ignore + +module SpeedTestOfListSmallRefListSize2 = + type X = A of int | B of int + let fl1 = FourList.init 2 (fun i -> A i) + let tl1 = ThreeList.init 2 (fun i -> A i) + let l1 = List.init 2 (fun i -> A i) + let al1 = Array.init 2 (fun i -> A i ) + let N = 20000000 + + //Real: 00:00:00.465, CPU: 00:00:00.468, GC gen0: 204, gen1: 204, gen2: 0 + for i in 0 .. N do + l1 |> FourList.ofList |> ignore + + // Real: 00:00:00.407, CPU: 00:00:00.390, GC gen0: 178, gen1: 178, gen2: 0 + for i in 0 .. N do + l1 |> ThreeList.ofList |> ignore + + // Real: 00:00:01.652, CPU: 00:00:01.591, GC gen0: 153, gen1: 153, gen2: 0 + for i in 0 .. N do + l1 |> Array.ofList |> ignore + +module SpeedTestToListSmallRefListSize2 = + type X = A of int | B of int + let fl1 = FourList.init 2 (fun i -> A i) + let tl1 = ThreeList.init 2 (fun i -> A i) + let l1 = List.init 2 (fun i -> A i) + let al1 = Array.init 2 (fun i -> A i ) + let N = 20000000 + + //Real: 00:00:00.895, CPU: 00:00:00.889, GC gen0: 202, gen1: 0, gen2: 0 + for i in 0 .. N do + fl1 |> FourList.toList |> ignore + + // Real: 00:00:00.868, CPU: 00:00:00.873, GC gen0: 203, gen1: 1, gen2: 0 + // Real: 00:00:00.895, CPU: 00:00:00.889, GC gen0: 204, gen1: 1, gen2: 0 + for i in 0 .. N do + tl1 |> ThreeList.toList |> ignore + + // Real: 00:00:01.043, CPU: 00:00:01.045, GC gen0: 204, gen1: 0, gen2: 0 + // Real: 00:00:01.071, CPU: 00:00:01.060, GC gen0: 203, gen1: 1, gen2: 0 + for i in 0 .. N do + al1 |> Array.toList |> ignore + + +module SpeedTestToListSmallRefListSize0 = + type X = A of int | B of int + let size = 0 + let fl1 = FourList.init size (fun i -> A i) + let tl1 = ThreeList.init size (fun i -> A i) + let l1 = List.init size (fun i -> A i) + let al1 = Array.init size (fun i -> A i ) + let N = 30000000 + + //Real: 00:00:00.530, CPU: 00:00:00.530, GC gen0: 0, gen1: 0, gen2: 0 + for i in 0 .. N do + fl1 |> FourList.toList |> ignore + + // Real: 00:00:00.528, CPU: 00:00:00.514, GC gen0: 0, gen1: 0, gen2: 0 + for i in 0 .. N do + tl1 |> ThreeList.toList |> ignore + + // Real: 00:00:00.635, CPU: 00:00:00.624, GC gen0: 0, gen1: 0, gen2: 0 + for i in 0 .. N do + al1 |> Array.toList |> ignore + +module SpeedTestToArraySmallRefListSize2 = + type X = A of int | B of int + let size = 2 + let fl1 = FourList.init size (fun i -> A i) + let tl1 = ThreeList.init size (fun i -> A i) + let l1 = List.init size (fun i -> A i) + let al1 = Array.init size (fun i -> A i ) + let N = 30000000 + + // Real: 00:00:01.970, CPU: 00:00:01.950, GC gen0: 229, gen1: 1, gen2: 0 + for i in 0 .. N do + fl1 |> FourList.toArray |> ignore + + // Real: 00:00:02.043, CPU: 00:00:02.043, GC gen0: 229, gen1: 1, gen2: 0 + for i in 0 .. N do + tl1 |> ThreeList.toArray |> ignore + + // Real: 00:00:02.199, CPU: 00:00:02.106, GC gen0: 230, gen1: 1, gen2: 1 + for i in 0 .. N do + l1 |> List.toArray |> ignore + +*) diff --git a/src/utils/filename.fs b/src/utils/filename.fs new file mode 100644 index 0000000..dc021d0 --- /dev/null +++ b/src/utils/filename.fs @@ -0,0 +1,56 @@ +//---------------------------------------------------------------------------- +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + + +module internal Internal.Utilities.Filename + +open System.IO +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library + +exception IllegalFileNameChar of string * char + +let illegalPathChars = Path.GetInvalidPathChars() + +let checkPathForIllegalChars (path:string) = + for c in path do + if illegalPathChars |> Array.exists(fun c1->c1=c) then + raise(IllegalFileNameChar(path,c)) + +// Case sensitive (original behaviour preserved). +let checkSuffix (x:string) (y:string) = x.EndsWith(y,System.StringComparison.Ordinal) + +let hasExtension (s:string) = + checkPathForIllegalChars s + (s.Length >= 1 && s.[s.Length - 1] = '.' && s <> ".." && s <> ".") + || Path.HasExtension(s) + +let chopExtension (s:string) = + checkPathForIllegalChars s + if s = "." then "" else // for OCaml compatibility + if not (hasExtension s) then + raise (System.ArgumentException("chopExtension")) // message has to be precisely this, for OCaml compatibility, and no argument name can be set + Path.Combine (Path.GetDirectoryName s,Path.GetFileNameWithoutExtension(s)) + +let directoryName (s:string) = + checkPathForIllegalChars s + if s = "" then "." + else + match Path.GetDirectoryName(s) with + | null -> if FileSystem.IsPathRootedShim(s) then s else "." + | res -> if res = "" then "." else res + +let fileNameOfPath s = + checkPathForIllegalChars s + Path.GetFileName(s) + +let fileNameWithoutExtension s = + checkPathForIllegalChars s + Path.GetFileNameWithoutExtension(s) diff --git a/src/utils/filename.fsi b/src/utils/filename.fsi new file mode 100644 index 0000000..dbd052f --- /dev/null +++ b/src/utils/filename.fsi @@ -0,0 +1,26 @@ +/// Some filename operations. +module internal Internal.Utilities.Filename + +exception IllegalFileNameChar of string * char + +/// "checkSuffix f s" returns true if filename "f" ends in suffix "s", +/// e.g. checkSuffix "abc.fs" ".fs" returns true. +val checkSuffix: string -> string -> bool + +/// "chopExtension f" removes the extension from the given +/// filename. Raises ArgumentException if no extension is present. +val chopExtension: string -> string + +/// "directoryName" " decomposes a filename into a directory name +val directoryName: string -> string + +/// Return true if the filename has a "." extension +val hasExtension: string -> bool + +/// Get the filename of the given path +val fileNameOfPath: string -> string + +/// Get the filename without extenstion of the given path +val fileNameWithoutExtension: string -> string + + diff --git a/src/utils/prim-lexing.fs b/src/utils/prim-lexing.fs new file mode 100644 index 0000000..b34b199 --- /dev/null +++ b/src/utils/prim-lexing.fs @@ -0,0 +1,266 @@ +//---------------------------------------------------------------------------- +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + + +#nowarn "47" // recursive initialization of LexBuffer + + +namespace Internal.Utilities.Text.Lexing + + open Microsoft.FSharp.Core + open Microsoft.FSharp.Collections + open System.Collections.Generic + + // REVIEW: This type showed up on a parsing-intensive performance measurement. + // REVIEW: Consider whether it can be smaller or can be a struct. + type (* internal *) Position = + { /// The file name index for the position, use fileOfFileIndex in range.fs to decode + posFileIndex: int; + /// The line number for the position + posLineNum: int; + /// The line number for the position in the original source file + posOriginalLineNum : int; + /// The absolute offset of the beginning of the line + posStartOfLineOffset: int; + /// The absolute offset of the column for the position + posColumnOffset: int; } + member x.FileIndex = x.posFileIndex + member x.Line = x.posLineNum + member x.OriginalLine = x.posOriginalLineNum + member x.AbsoluteOffset = x.posColumnOffset + member x.StartOfLine = x.posStartOfLineOffset + member x.StartOfLineAbsoluteOffset = x.posStartOfLineOffset + member x.Column = x.posColumnOffset - x.posStartOfLineOffset + member pos.NextLine = + { pos with + posOriginalLineNum = pos.OriginalLine + 1; + posLineNum = pos.Line+1; + posStartOfLineOffset = pos.AbsoluteOffset } + member pos.EndOfToken n = {pos with posColumnOffset=pos.posColumnOffset + n } + member pos.ShiftColumnBy by = {pos with posColumnOffset = pos.posColumnOffset + by} + member pos.ColumnMinusOne = { pos with posColumnOffset = pos.posStartOfLineOffset-1 } + + member pos.ApplyLineDirective (fileIdx, line) = + {pos with posFileIndex = fileIdx; + posStartOfLineOffset= pos.posColumnOffset; + posLineNum=line }; + + static member Empty = + { posFileIndex=0; + posLineNum= 0; + posOriginalLineNum = 0; + posStartOfLineOffset= 0; + posColumnOffset=0 } + + static member FirstLine fileIdx = + { posFileIndex= fileIdx; + posStartOfLineOffset=0; + posColumnOffset=0; + posOriginalLineNum = 0; + posLineNum=1 } + + type internal LexBufferFiller<'Char> = (LexBuffer<'Char> -> unit) + + and [] + (* internal *) LexBuffer<'Char>(filler: LexBufferFiller<'Char>) = + let context = new Dictionary(1) + let mutable buffer=[||]; + /// number of valid charactes beyond bufferScanStart + let mutable bufferMaxScanLength=0; + /// count into the buffer when scanning + let mutable bufferScanStart=0; + /// number of characters scanned so far + let mutable bufferScanLength=0; + /// length of the scan at the last accepting state + let mutable lexemeLength=0; + /// action related to the last accepting state + let mutable bufferAcceptAction=0; + let mutable eof = false; + let mutable startPos = Position.Empty ; + let mutable endPos = Position.Empty + + // Throw away all the input besides the lexeme + + let discardInput () = + let keep = Array.sub buffer bufferScanStart bufferScanLength + let nkeep = keep.Length + Array.blit keep 0 buffer 0 nkeep; + bufferScanStart <- 0; + bufferMaxScanLength <- nkeep + + + member lexbuf.EndOfScan () : int = + // Printf.eprintf "endOfScan, lexBuffer.lexemeLength = %d\n" lexBuffer.lexemeLength; + if bufferAcceptAction < 0 then + failwith "unrecognized input" + + // printf "endOfScan %d state %d on unconsumed input '%c' (%d)\n" a s (Char.chr inp) inp; + // Printf.eprintf "accept, lexeme = %s\n" (lexeme lexBuffer); + lexbuf.StartPos <- endPos; + lexbuf.EndPos <- endPos.EndOfToken(lexbuf.LexemeLength); + bufferAcceptAction + + member lexbuf.StartPos + with get() = startPos + and set b = startPos <- b + + member lexbuf.EndPos + with get() = endPos + and set b = endPos <- b + + member lexbuf.Lexeme = Array.sub buffer bufferScanStart lexemeLength + + member lexbuf.BufferLocalStore = (context :> IDictionary<_,_>) + member lexbuf.LexemeLength with get() : int = lexemeLength and set v = lexemeLength <- v + member lexbuf.Buffer with get() : 'Char[] = buffer and set v = buffer <- v + member lexbuf.BufferMaxScanLength with get() = bufferMaxScanLength and set v = bufferMaxScanLength <- v + member lexbuf.BufferScanLength with get() = bufferScanLength and set v = bufferScanLength <- v + member lexbuf.BufferScanStart with get() : int = bufferScanStart and set v = bufferScanStart <- v + member lexbuf.BufferAcceptAction with get() = bufferAcceptAction and set v = bufferAcceptAction <- v + member lexbuf.RefillBuffer () = filler lexbuf + static member LexemeString(lexbuf:LexBuffer) = + new System.String(lexbuf.Buffer,lexbuf.BufferScanStart,lexbuf.LexemeLength) + + member lexbuf.IsPastEndOfStream + with get() = eof + and set(b) = eof <- b + + member lexbuf.DiscardInput () = discardInput () + + member x.BufferScanPos = bufferScanStart + bufferScanLength + + member lexbuf.EnsureBufferSize n = + if lexbuf.BufferScanPos + n >= buffer.Length then + let repl = Array.zeroCreate (lexbuf.BufferScanPos + n) + Array.blit buffer bufferScanStart repl bufferScanStart bufferScanLength; + buffer <- repl + + + // A full type signature is required on this method because it is used at more specific types within its own scope + static member FromFunction (f : 'Char[] * int * int -> int) : LexBuffer<'Char> = + let extension= Array.zeroCreate 4096 + let filler (lexBuffer: LexBuffer<'Char>) = + let n = f (extension,0,extension.Length) + lexBuffer.EnsureBufferSize n; + Array.blit extension 0 lexBuffer.Buffer lexBuffer.BufferScanPos n; + lexBuffer.BufferMaxScanLength <- lexBuffer.BufferScanLength + n + new LexBuffer<'Char>(filler) + + // A full type signature is required on this method because it is used at more specific types within its own scope + static member FromArray (s: 'Char[]) : LexBuffer<'Char> = + let lexBuffer = new LexBuffer<'Char>(fun _ -> ()) + let buffer = Array.copy s + lexBuffer.Buffer <- buffer; + lexBuffer.BufferMaxScanLength <- buffer.Length; + lexBuffer + + static member FromChars (arr:char[]) = LexBuffer.FromArray arr + + module GenericImplFragments = + let startInterpret(lexBuffer:LexBuffer)= + lexBuffer.BufferScanStart <- lexBuffer.BufferScanStart + lexBuffer.LexemeLength; + lexBuffer.BufferMaxScanLength <- lexBuffer.BufferMaxScanLength - lexBuffer.LexemeLength; + lexBuffer.BufferScanLength <- 0; + lexBuffer.LexemeLength <- 0; + lexBuffer.BufferAcceptAction <- -1; + + let afterRefill (trans: uint16[][],sentinel,lexBuffer:LexBuffer,scanUntilSentinel,endOfScan,state,eofPos) = + // end of file occurs if we couldn't extend the buffer + if lexBuffer.BufferScanLength = lexBuffer.BufferMaxScanLength then + let snew = int trans.[state].[eofPos] // == EOF + if snew = sentinel then + endOfScan() + else + if lexBuffer.IsPastEndOfStream then failwith "End of file on lexing stream"; + lexBuffer.IsPastEndOfStream <- true; + // printf "state %d --> %d on eof\n" state snew; + scanUntilSentinel(lexBuffer,snew) + else + scanUntilSentinel(lexBuffer, state) + + let onAccept (lexBuffer:LexBuffer,a) = + lexBuffer.LexemeLength <- lexBuffer.BufferScanLength; + lexBuffer.BufferAcceptAction <- a; + + open GenericImplFragments + + + [] + type internal UnicodeTables(trans: uint16[] array, accept: uint16[]) = + let sentinel = 255 * 256 + 255 + let numUnicodeCategories = 30 + let numLowUnicodeChars = 128 + let numSpecificUnicodeChars = (trans.[0].Length - 1 - numLowUnicodeChars - numUnicodeCategories)/2 + let lookupUnicodeCharacters (state,inp) = + let inpAsInt = int inp + // Is it a fast ASCII character? + if inpAsInt < numLowUnicodeChars then + int trans.[state].[inpAsInt] + else + // Search for a specific unicode character + let baseForSpecificUnicodeChars = numLowUnicodeChars + let rec loop i = + if i >= numSpecificUnicodeChars then + // OK, if we failed then read the 'others' entry in the alphabet, + // which covers all Unicode characters not covered in other + // ways + let baseForUnicodeCategories = numLowUnicodeChars+numSpecificUnicodeChars*2 + let unicodeCategory = System.Char.GetUnicodeCategory(inp) + //System.Console.WriteLine("inp = {0}, unicodeCategory = {1}", [| box inp; box unicodeCategory |]); + int trans.[state].[baseForUnicodeCategories + int32 unicodeCategory] + else + // This is the specific unicode character + let c = char (int trans.[state].[baseForSpecificUnicodeChars+i*2]) + //System.Console.WriteLine("c = {0}, inp = {1}, i = {2}", [| box c; box inp; box i |]); + // OK, have we found the entry for a specific unicode character? + if c = inp + then int trans.[state].[baseForSpecificUnicodeChars+i*2+1] + else loop(i+1) + + loop 0 + let eofPos = numLowUnicodeChars + 2*numSpecificUnicodeChars + numUnicodeCategories + + let rec scanUntilSentinel(lexBuffer,state) = + // Return an endOfScan after consuming the input + let a = int accept.[state] + if a <> sentinel then + onAccept(lexBuffer,a) + + if lexBuffer.BufferScanLength = lexBuffer.BufferMaxScanLength then + lexBuffer.DiscardInput(); + lexBuffer.RefillBuffer (); + // end of file occurs if we couldn't extend the buffer + afterRefill (trans,sentinel,lexBuffer,scanUntilSentinel,lexBuffer.EndOfScan,state,eofPos) + else + // read a character - end the scan if there are no further transitions + let inp = lexBuffer.Buffer.[lexBuffer.BufferScanPos] + + // Find the new state + let snew = lookupUnicodeCharacters (state,inp) + + if snew = sentinel then + lexBuffer.EndOfScan() + else + lexBuffer.BufferScanLength <- lexBuffer.BufferScanLength + 1; + // printf "state %d --> %d on '%c' (%d)\n" s snew (char inp) inp; + scanUntilSentinel(lexBuffer,snew) + + // Each row for the Unicode table has format + // 128 entries for ASCII characters + // A variable number of 2*UInt16 entries for SpecificUnicodeChars + // 30 entries, one for each UnicodeCategory + // 1 entry for EOF + + member tables.Interpret(initialState,lexBuffer : LexBuffer) = + startInterpret(lexBuffer) + scanUntilSentinel(lexBuffer, initialState) + + static member Create(trans,accept) = new UnicodeTables(trans,accept) diff --git a/src/utils/prim-lexing.fsi b/src/utils/prim-lexing.fsi new file mode 100644 index 0000000..2d0782b --- /dev/null +++ b/src/utils/prim-lexing.fsi @@ -0,0 +1,87 @@ +//---------------------------------------------------------------------------- +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +// LexBuffers are for use with automatically generated lexical analyzers, +// in particular those produced by 'fslex'. + +namespace Internal.Utilities.Text.Lexing + +open System.Collections.Generic +open Microsoft.FSharp.Core +open Microsoft.FSharp.Control + +/// Position information stored for lexing tokens +[] +type (* internal *) Position = + interface System.IComparable + /// The file index for the file associated with the input stream, use fileOfFileIndex in range.fs to decode + member FileIndex : int + /// The line number in the input stream, assuming fresh positions have been updated + /// for the new line by modifying the EndPos property of the LexBuffer. + member Line : int + /// The line number for the position in the input stream, assuming fresh positions have been updated + /// using for the new line + member OriginalLine : int + /// The character number in the input stream + member AbsoluteOffset : int + /// Return absolute offset of the start of the line marked by the position + member StartOfLineAbsoluteOffset : int + /// Return the column number marked by the position, i.e. the difference between the AbsoluteOffset and the StartOfLineAbsoluteOffset + member Column : int + // Given a position just beyond the end of a line, return a position at the start of the next line + member NextLine : Position + + /// Given a position at the start of a token of length n, return a position just beyond the end of the token + member EndOfToken: n:int -> Position + /// Gives a position shifted by specified number of characters + member ShiftColumnBy: by:int -> Position + // Same line, column -1 + member ColumnMinusOne : Position + + /// Apply a #line directive + member ApplyLineDirective : fileIdx:int * line:int -> Position + + /// Get an arbitrary position, with the empty string as filename, and + static member Empty : Position + + static member FirstLine : fileIdx:int -> Position + +[] +/// Input buffers consumed by lexers generated by fslex.exe +type (* internal *) LexBuffer<'Char> = + /// The start position for the lexeme + member StartPos: Position with get,set + /// The end position for the lexeme + member EndPos: Position with get,set + /// The matched string + member Lexeme: 'Char [] + + /// Fast helper to turn the matched characters into a string, avoiding an intermediate array + static member LexemeString : LexBuffer -> string + + /// Dynamically typed, non-lexically scoped parameter table + member BufferLocalStore : IDictionary + + /// True if the refill of the buffer ever failed , or if explicitly set to true. + member IsPastEndOfStream: bool with get,set + + /// Create a lex buffer suitable for Unicode lexing that reads characters from the given array + static member FromChars: char[] -> LexBuffer + /// Create a lex buffer that reads character or byte inputs by using the given function + static member FromFunction: ('Char[] * int * int -> int) -> LexBuffer<'Char> + +/// The type of tables for an unicode lexer generated by fslex. +[] +type internal UnicodeTables = + static member Create : uint16[][] * uint16[] -> UnicodeTables + /// Interpret tables for a unicode lexer generated by fslex. + member Interpret: initialState:int * LexBuffer -> int + diff --git a/src/utils/prim-parsing.fs b/src/utils/prim-parsing.fs new file mode 100644 index 0000000..a542980 --- /dev/null +++ b/src/utils/prim-parsing.fs @@ -0,0 +1,502 @@ +//---------------------------------------------------------------------------- +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + + + +namespace Internal.Utilities.Text.Parsing +open Internal.Utilities +open Internal.Utilities.Text.Lexing + +open System +open System.Collections.Generic + +exception RecoverableParseError +exception Accept of obj + +[] +type internal IParseState(ruleStartPoss:Position[],ruleEndPoss:Position[],lhsPos:Position[],ruleValues:obj[],lexbuf:LexBuffer) = + member p.LexBuffer = lexbuf + member p.InputRange n = ruleStartPoss.[n-1], ruleEndPoss.[n-1]; + member p.InputStartPosition n = ruleStartPoss.[n-1] + member p.InputEndPosition n = ruleEndPoss.[n-1]; + member p.ResultStartPosition = lhsPos.[0] + member p.ResultEndPosition = lhsPos.[1]; + member p.GetInput n = ruleValues.[n-1]; + member p.ResultRange = (lhsPos.[0], lhsPos.[1]); + member p.RaiseError() = raise RecoverableParseError (* NOTE: this binding tests the fairly complex logic associated with an object expression implementing a generic abstract method *) + +//------------------------------------------------------------------------- +// This context is passed to the error reporter when a syntax error occurs + +[] +type internal ParseErrorContext<'tok> + (//lexbuf: LexBuffer<_>, + stateStack:int list, + parseState: IParseState, + reduceTokens: int list, + currentToken: 'tok option, + reducibleProductions: int list list, + shiftableTokens: int list , + message : string) = + //member x.LexBuffer = lexbuf + member x.StateStack = stateStack + member x.ReduceTokens = reduceTokens + member x.CurrentToken = currentToken + member x.ParseState = parseState + member x.ReducibleProductions = reducibleProductions + member x.ShiftTokens = shiftableTokens + member x.Message = message + + +//------------------------------------------------------------------------- +// This is the data structure emitted as code by FSYACC. + +type internal Tables<'tok> = + { reductions: (IParseState -> obj)[]; + endOfInputTag: int; + tagOfToken: 'tok -> int; + dataOfToken: 'tok -> obj; + actionTableElements: uint16[]; + actionTableRowOffsets: uint16[]; + reductionSymbolCounts: uint16[]; + immediateActions: uint16[]; + gotos: uint16[]; + sparseGotoTableRowOffsets: uint16[]; + stateToProdIdxsTableElements: uint16[]; + stateToProdIdxsTableRowOffsets: uint16[]; + productionToNonTerminalTable: uint16[]; + /// For fsyacc.exe, this entry is filled in by context from the generated parser file. If no 'parse_error' function + /// is defined by the user then ParseHelpers.parse_error is used by default (ParseHelpers is opened + /// at the top of the generated parser file) + parseError: ParseErrorContext<'tok> -> unit; + numTerminals: int; + tagOfErrorTerminal: int } + +//------------------------------------------------------------------------- +// An implementation of stacks. + +// This type is in System.dll so for the moment we can't use it in FSharp.Core.dll +//type Stack<'a> = System.Collections.Generic.Stack<'a> + +type Stack<'a>(n) = + let mutable contents = Array.zeroCreate<'a>(n) + let mutable count = 0 + + member buf.Ensure newSize = + let oldSize = contents.Length + if newSize > oldSize then + let old = contents + contents <- Array.zeroCreate (max newSize (oldSize * 2)); + Array.blit old 0 contents 0 count; + + member buf.Count = count + member buf.Pop() = count <- count - 1 + member buf.Peep() = contents.[count - 1] + member buf.Top(n) = [ for x in contents.[max 0 (count-n)..count - 1] -> x ] |> List.rev + member buf.Push(x) = + buf.Ensure(count + 1); + contents.[count] <- x; + count <- count + 1 + + member buf.IsEmpty = (count = 0) + member buf.PrintStack() = + for i = 0 to (count - 1) do + System.Console.Write("{0}{1}",(contents.[i]),if i=count-1 then ":" else "-") + + +#if DEBUG +module Flags = + let mutable debug = false +#endif + +module internal Implementation = + + // Definitions shared with fsyacc + let anyMarker = 0xffff + let shiftFlag = 0x0000 + let reduceFlag = 0x4000 + let errorFlag = 0x8000 + let acceptFlag = 0xc000 + let actionMask = 0xc000 + + let actionValue action = action &&& (~~~ actionMask) + let actionKind action = action &&& actionMask + + //------------------------------------------------------------------------- + // Read the tables written by FSYACC. + + type AssocTable(elemTab:uint16[], offsetTab:uint16[]) = +#if OLD_CACHE + let cache = new Dictionary(2000) +#else + let cacheSize = 7919 // the 1000'th prime + // Use a simpler hash table with faster lookup, but only one + // hash bucket per key. + let cache = Array.zeroCreate (cacheSize * 2) +#endif + + member t.ReadAssoc (minElemNum,maxElemNum,defaultValueOfAssoc,keyToFind) = + // do a binary chop on the table + let elemNumber : int = (minElemNum+maxElemNum)/2 + if elemNumber = maxElemNum + then defaultValueOfAssoc + else + let x = int elemTab.[elemNumber*2] + if keyToFind = x then int elemTab.[elemNumber*2+1] + elif keyToFind < x then t.ReadAssoc (minElemNum ,elemNumber,defaultValueOfAssoc,keyToFind) + else t.ReadAssoc (elemNumber+1,maxElemNum,defaultValueOfAssoc,keyToFind) + + member t.Read(rowNumber,keyToFind) = + + // First check the sparse lookaside table + // Performance note: without this lookaside table the binary chop in ReadAssoc + // takes up around 10% of of parsing time + // for parsing intensive samples such as the bootstrapped F# compiler. + // + // Note: using a .NET Dictionary for this int -> int table looks like it could be sub-optimal. + // Some other better sparse lookup table may be better. + assert (rowNumber < 0x10000) + assert (keyToFind < 0x10000) + let cacheKey = (rowNumber <<< 16) ||| keyToFind +#if OLD_CACHE + let mutable res = 0 + let ok = cache.TryGetValue(cacheKey, &res) + if ok then res + else +#else + let cacheIdx = int32 (uint32 cacheKey % uint32 cacheSize) + let cacheKey2 = cache.[cacheIdx*2] + let v = cache.[cacheIdx*2+1] + if cacheKey = cacheKey2 then v + else +#endif + let headOfTable = int offsetTab.[rowNumber] + let firstElemNumber = headOfTable + 1 + let numberOfElementsInAssoc = int elemTab.[headOfTable*2] + let defaultValueOfAssoc = int elemTab.[headOfTable*2+1] + let res = t.ReadAssoc (firstElemNumber,firstElemNumber+numberOfElementsInAssoc,defaultValueOfAssoc,keyToFind) +#if OLD_CACHE + cache.[cacheKey] <- res +#else + cache.[cacheIdx*2] <- cacheKey + cache.[cacheIdx*2+1] <- res +#endif + res + + // Read all entries in the association table + // Used during error recovery to find all valid entries in the table + member x.ReadAll(n) = + let headOfTable = int offsetTab.[n] + let firstElemNumber = headOfTable + 1 + let numberOfElementsInAssoc = int32 elemTab.[headOfTable*2] + let defaultValueOfAssoc = int elemTab.[headOfTable*2+1] + [ for i in firstElemNumber .. (firstElemNumber+numberOfElementsInAssoc-1) -> + (int elemTab.[i*2], int elemTab.[i*2+1]) ], defaultValueOfAssoc + + type IdxToIdxListTable(elemTab:uint16[], offsetTab:uint16[]) = + + // Read all entries in a row of the table + member x.ReadAll(n) = + let headOfTable = int offsetTab.[n] + let firstElemNumber = headOfTable + 1 + let numberOfElements = int32 elemTab.[headOfTable] + [ for i in firstElemNumber .. (firstElemNumber+numberOfElements-1) -> int elemTab.[i] ] + + //------------------------------------------------------------------------- + // interpret the tables emitted by FSYACC. + + [] + [] + type ValueInfo = + val value: obj + val startPos: Position + val endPos: Position + new(value,startPos,endPos) = { value=value; startPos=startPos;endPos=endPos } + + let interpret (tables: Tables<'tok>) lexer (lexbuf : LexBuffer<_>) initialState = +#if DEBUG + if Flags.debug then System.Console.WriteLine("\nParser: interpret tables"); +#endif + let stateStack : Stack = new Stack<_>(100) + stateStack.Push(initialState); + let valueStack = new Stack(100) + let mutable haveLookahead = false + let mutable lookaheadToken = Unchecked.defaultof<'tok> + let mutable lookaheadEndPos = Unchecked.defaultof + let mutable lookaheadStartPos = Unchecked.defaultof + let mutable finished = false + // After an error occurs, we suppress errors until we've shifted three tokens in a row. + let mutable errorSuppressionCountDown = 0 + + // When we hit the end-of-file we don't fail straight away but rather keep permitting shift + // and reduce against the last token in the token stream 20 times or until we've accepted + // or exhausted the stack. This allows error recovery rules of the form + // input : realInput EOF | realInput error EOF | error EOF + // where consuming one EOF to trigger an error doesn't result in overall parse failure + // catastrophe and the loss of intermediate results. + // + let mutable inEofCountDown = false + let mutable eofCountDown = 20 // Number of EOFs to supply at the end for error recovery + // The 100 here means a maximum of 100 elements for each rule + let ruleStartPoss = (Array.zeroCreate 100 : Position[]) + let ruleEndPoss = (Array.zeroCreate 100 : Position[]) + let ruleValues = (Array.zeroCreate 100 : obj[]) + let lhsPos = (Array.zeroCreate 2 : Position[]) + let reductions = tables.reductions + let actionTable = new AssocTable(tables.actionTableElements, tables.actionTableRowOffsets) + let gotoTable = new AssocTable(tables.gotos, tables.sparseGotoTableRowOffsets) + let stateToProdIdxsTable = new IdxToIdxListTable(tables.stateToProdIdxsTableElements, tables.stateToProdIdxsTableRowOffsets) + + let parseState = + new IParseState(ruleStartPoss,ruleEndPoss,lhsPos,ruleValues,lexbuf) + +#if DEBUG + let report haveLookahead lookaheadToken = + if haveLookahead then sprintf "%+A" lookaheadToken + else "[TBC]" +#endif + + // Pop the stack until we can shift the 'error' token. If 'tokenOpt' is given + // then keep popping until we can shift both the 'error' token and the token in 'tokenOpt'. + // This is used at end-of-file to make sure we can shift both the 'error' token and the 'EOF' token. + let rec popStackUntilErrorShifted(tokenOpt) = + // Keep popping the stack until the "error" terminal is shifted +#if DEBUG + if Flags.debug then System.Console.WriteLine("popStackUntilErrorShifted"); +#endif + if stateStack.IsEmpty then +#if DEBUG + if Flags.debug then + System.Console.WriteLine("state stack empty during error recovery - generating parse error"); +#endif + failwith "parse error"; + + let currState = stateStack.Peep() +#if DEBUG + if Flags.debug then + System.Console.WriteLine("In state {0} during error recovery", currState); +#endif + + let action = actionTable.Read(currState, tables.tagOfErrorTerminal) + + if actionKind action = shiftFlag && + (match tokenOpt with + | None -> true + | Some(token) -> + let nextState = actionValue action + actionKind (actionTable.Read(nextState, tables.tagOfToken(token))) = shiftFlag) then + +#if DEBUG + if Flags.debug then System.Console.WriteLine("shifting error, continuing with error recovery"); +#endif + let nextState = actionValue action + // The "error" non terminal needs position information, though it tends to be unreliable. + // Use the StartPos/EndPos from the lex buffer + valueStack.Push(ValueInfo(box (), lexbuf.StartPos, lexbuf.EndPos)); + stateStack.Push(nextState) + else + if valueStack.IsEmpty then + failwith "parse error"; +#if DEBUG + if Flags.debug then + System.Console.WriteLine("popping stack during error recovery"); +#endif + valueStack.Pop(); + stateStack.Pop(); + popStackUntilErrorShifted(tokenOpt) + + while not finished do + if stateStack.IsEmpty then + finished <- true + else + let state = stateStack.Peep() +#if DEBUG + if Flags.debug then (Console.Write("{0} value(state), state ",valueStack.Count); stateStack.PrintStack()) +#endif + let action = + let immediateAction = int tables.immediateActions.[state] + if not (immediateAction = anyMarker) then + // Action has been pre-determined, no need to lookahead + // Expecting it to be a Reduce action on a non-fakeStartNonTerminal ? + immediateAction + else + // Lookahead required to determine action + if not haveLookahead then + if lexbuf.IsPastEndOfStream then + // When the input runs out, keep supplying the last token for eofCountDown times + if eofCountDown>0 then + haveLookahead <- true + eofCountDown <- eofCountDown - 1 + inEofCountDown <- true + else + haveLookahead <- false + else + lookaheadToken <- lexer lexbuf + lookaheadStartPos <- lexbuf.StartPos + lookaheadEndPos <- lexbuf.EndPos + haveLookahead <- true; + + let tag = + if haveLookahead then tables.tagOfToken lookaheadToken + else tables.endOfInputTag + + // printf "state %d\n" state + actionTable.Read(state,tag) + + let kind = actionKind action + if kind = shiftFlag then ( + if errorSuppressionCountDown > 0 then + errorSuppressionCountDown <- errorSuppressionCountDown - 1; +#if DEBUG + if Flags.debug then Console.WriteLine("shifting, reduced errorRecoverylevel to {0}\n", errorSuppressionCountDown); +#endif + let nextState = actionValue action + if not haveLookahead then failwith "shift on end of input!"; + let data = tables.dataOfToken lookaheadToken + valueStack.Push(ValueInfo(data, lookaheadStartPos, lookaheadEndPos)); + stateStack.Push(nextState); +#if DEBUG + if Flags.debug then Console.WriteLine("shift/consume input {0}, shift to state {1}", report haveLookahead lookaheadToken, nextState); +#endif + haveLookahead <- false + + ) elif kind = reduceFlag then + let prod = actionValue action + let reduction = reductions.[prod] + let n = int tables.reductionSymbolCounts.[prod] + // pop the symbols, populate the values and populate the locations +#if DEBUG + if Flags.debug then Console.Write("reduce popping {0} values/states, lookahead {1}", n, report haveLookahead lookaheadToken); +#endif + for i = 0 to n - 1 do + if valueStack.IsEmpty then failwith "empty symbol stack"; + let topVal = valueStack.Peep() + valueStack.Pop(); + stateStack.Pop(); + ruleValues.[(n-i)-1] <- topVal.value; + ruleStartPoss.[(n-i)-1] <- topVal.startPos; + ruleEndPoss.[(n-i)-1] <- topVal.endPos; + if i = 0 then lhsPos.[1] <- topVal.endPos; + if i = n - 1 then lhsPos.[0] <- topVal.startPos + + // Use the lookahead token to populate the locations if the rhs is empty + if n = 0 then + if haveLookahead then + lhsPos.[0] <- lookaheadStartPos; + lhsPos.[1] <- lookaheadEndPos; + else + lhsPos.[0] <- lexbuf.StartPos; + lhsPos.[1] <- lexbuf.EndPos; + try + // printf "reduce %d\n" prod; + let redResult = reduction parseState + valueStack.Push(ValueInfo(redResult, lhsPos.[0], lhsPos.[1])); + let currState = stateStack.Peep() + let newGotoState = gotoTable.Read(int tables.productionToNonTerminalTable.[prod], currState) + stateStack.Push(newGotoState) +#if DEBUG + if Flags.debug then Console.WriteLine(" goto state {0}", newGotoState) +#endif + with + | Accept res -> + finished <- true; + valueStack.Push(ValueInfo(res, lhsPos.[0], lhsPos.[1])) + | RecoverableParseError -> +#if DEBUG + if Flags.debug then Console.WriteLine("RecoverableParseErrorException...\n"); +#endif + popStackUntilErrorShifted(None); + // User code raised a Parse_error. Don't report errors again until three tokens have been shifted + errorSuppressionCountDown <- 3 + elif kind = errorFlag then ( +#if DEBUG + if Flags.debug then Console.Write("ErrorFlag... "); +#endif + // Silently discard inputs and don't report errors + // until three tokens in a row have been shifted +#if DEBUG + if Flags.debug then printfn "error on token '%s' " (report haveLookahead lookaheadToken); +#endif + if errorSuppressionCountDown > 0 then + // If we're in the end-of-file count down then we're very keen to 'Accept'. + // We can only do this by repeatedly popping the stack until we can shift both an 'error' token + // and an EOF token. + if inEofCountDown && eofCountDown < 10 then +#if DEBUG + if Flags.debug then printfn "poppin stack, lokking to shift both 'error' and that token, during end-of-file error recovery" ; +#endif + popStackUntilErrorShifted(if haveLookahead then Some(lookaheadToken) else None); + + // If we don't haveLookahead then the end-of-file count down is over and we have no further options. + if not haveLookahead then + failwith "parse error: unexpected end of file" + +#if DEBUG + if Flags.debug then printfn "discarding token '%s' during error suppression" (report haveLookahead lookaheadToken); +#endif + // Discard the token + haveLookahead <- false + // Try again to shift three tokens + errorSuppressionCountDown <- 3 + else ( + + let currentToken = if haveLookahead then Some(lookaheadToken) else None + let actions,defaultAction = actionTable.ReadAll(state) + let explicit = Set.ofList [ for (tag,_action) in actions -> tag ] + + let shiftableTokens = + [ for (tag,action) in actions do + if (actionKind action) = shiftFlag then + yield tag + if actionKind defaultAction = shiftFlag then + for tag in 0 .. tables.numTerminals-1 do + if not (explicit.Contains(tag)) then + yield tag ] in + + let stateStack = stateStack.Top(12) in + let reducibleProductions = + [ for state in stateStack do + yield stateToProdIdxsTable.ReadAll(state) ] + + let reduceTokens = + [ for (tag,action) in actions do + if actionKind(action) = reduceFlag then + yield tag + if actionKind(defaultAction) = reduceFlag then + for tag in 0 .. tables.numTerminals-1 do + if not (explicit.Contains(tag)) then + yield tag ] in + //let activeRules = stateStack |> List.iter (fun state -> + let errorContext = new ParseErrorContext<'tok>(stateStack,parseState, reduceTokens,currentToken,reducibleProductions, shiftableTokens, "syntax error") + tables.parseError(errorContext); + popStackUntilErrorShifted(None); + errorSuppressionCountDown <- 3; +#if DEBUG + if Flags.debug then System.Console.WriteLine("generated syntax error and shifted error token, haveLookahead = {0}\n", haveLookahead); +#endif + ) + ) elif kind = acceptFlag then + finished <- true +#if DEBUG + else + if Flags.debug then System.Console.WriteLine("ALARM!!! drop through case in parser"); +#endif + done; + // OK, we're done - read off the overall generated value + valueStack.Peep().value + +type internal Tables<'tok> with + member tables.Interpret (lexer,lexbuf,initialState) = + Implementation.interpret tables lexer lexbuf initialState + +module internal ParseHelpers = + let parse_error (_s:string) = () + let parse_error_rich = (None : (ParseErrorContext<_> -> unit) option) diff --git a/src/utils/prim-parsing.fsi b/src/utils/prim-parsing.fsi new file mode 100644 index 0000000..75f9558 --- /dev/null +++ b/src/utils/prim-parsing.fsi @@ -0,0 +1,114 @@ +//---------------------------------------------------------------------------- +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + +namespace Internal.Utilities.Text.Parsing +open Internal.Utilities +open Internal.Utilities.Text.Lexing + +open System.Collections.Generic + +[] +type internal IParseState = + /// Get the start and end position for the terminal or non-terminal at a given index matched by the production + member InputRange: index:int -> Position * Position + /// Get the end position for the terminal or non-terminal at a given index matched by the production + member InputEndPosition: int -> Position + /// Get the start position for the terminal or non-terminal at a given index matched by the production + member InputStartPosition: int -> Position + /// Get the start of the range of positions matched by the production + member ResultStartPosition: Position + /// Get the end of the range of positions matched by the production + member ResultEndPosition: Position + /// Get the full range of positions matched by the production + member ResultRange: Position * Position + /// Get the value produced by the terminal or non-terminal at the given position + member GetInput : int -> obj + /// Raise an error in this parse context + member RaiseError<'b> : unit -> 'b + /// Return the LexBuffer for this parser instance + member LexBuffer : LexBuffer + + +[] +/// The context provided when a parse error occurs +type internal ParseErrorContext<'tok> = + /// The stack of state indexes active at the parse error + member StateStack : int list + /// The state active at the parse error + member ParseState : IParseState + /// The tokens that would cause a reduction at the parse error + member ReduceTokens: int list + /// The stack of productions that would be reduced at the parse error + member ReducibleProductions : int list list + /// The token that caused the parse error + member CurrentToken : 'tok option + /// The token that would cause a shift at the parse error + member ShiftTokens : int list + /// The message associated with the parse error + member Message : string + +/// Tables generated by fsyacc +/// The type of the tables contained in a file produced by the fsyacc.exe parser generator. +type internal Tables<'tok> = + { /// The reduction table + reductions: (IParseState -> obj) array ; + /// The token number indicating the end of input + endOfInputTag: int; + /// A function to compute the tag of a token + tagOfToken: 'tok -> int; + /// A function to compute the data carried by a token + dataOfToken: 'tok -> obj; + /// The sparse action table elements + actionTableElements: uint16[]; + /// The sparse action table row offsets + actionTableRowOffsets: uint16[]; + /// The number of symbols for each reduction + reductionSymbolCounts: uint16[]; + /// The immediate action table + immediateActions: uint16[]; + /// The sparse goto table + gotos: uint16[]; + /// The sparse goto table row offsets + sparseGotoTableRowOffsets: uint16[]; + /// The sparse table for the productions active for each state + stateToProdIdxsTableElements: uint16[]; + /// The sparse table offsets for the productions active for each state + stateToProdIdxsTableRowOffsets: uint16[]; + /// This table is logically part of the Goto table + productionToNonTerminalTable: uint16[]; + /// This function is used to hold the user specified "parse_error" or "parse_error_rich" functions + parseError: ParseErrorContext<'tok> -> unit; + /// The total number of terminals + numTerminals: int; + /// The tag of the error terminal + tagOfErrorTerminal: int } + + /// Interpret the parser table taking input from the given lexer, using the given lex buffer, and the given start state. + /// Returns an object indicating the final synthesized value for the parse. + member Interpret : lexer:(LexBuffer -> 'tok) * lexbuf:LexBuffer * startState:int -> obj + +/// Indicates an accept action has occured +exception internal Accept of obj +/// Indicates a parse error has occured and parse recovery is in progress +exception internal RecoverableParseError + +#if DEBUG +module internal Flags = + val mutable debug : bool +#endif + +/// Helpers used by generated parsers. +module internal ParseHelpers = + /// The default implementation of the parse_error_rich function + val parse_error_rich: (ParseErrorContext<'tok> -> unit) option + /// The default implementation of the parse_error function + val parse_error: string -> unit + diff --git a/src/utils/resizearray.fs b/src/utils/resizearray.fs new file mode 100644 index 0000000..3848c09 --- /dev/null +++ b/src/utils/resizearray.fs @@ -0,0 +1,325 @@ +//---------------------------------------------------------------------------- +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + + +namespace Internal.Utilities + +open Microsoft.FSharp.Core +open Microsoft.FSharp.Core.OptimizedClosures + + +[] +module internal ResizeArray = + + let length (arr: ResizeArray<'T>) = arr.Count + let get (arr: ResizeArray<'T>) (n: int) = arr.[n] + let set (arr: ResizeArray<'T>) (n: int) (x:'T) = arr.[n] <- x + let create (n: int) x = new ResizeArray<_> (seq { for _ in 1 .. n -> x }) + let init (n: int) (f: int -> 'T) = new ResizeArray<_> (seq { for i in 0 .. n-1 -> f i }) + + let blit (arr1: ResizeArray<'T>) start1 (arr2: ResizeArray<'T>) start2 len = + if start1 < 0 then invalidArg "start1" "index must be positive" + if start2 < 0 then invalidArg "start2" "index must be positive" + if len < 0 then invalidArg "len" "length must be positive" + if start1 + len > length arr1 then invalidArg "start1" "(start1+len) out of range" + if start2 + len > length arr2 then invalidArg "start2" "(start2+len) out of range" + for i = 0 to len - 1 do + arr2.[start2+i] <- arr1.[start1 + i] + + let concat (arrs: ResizeArray<'T> list) = new ResizeArray<_> (seq { for arr in arrs do for x in arr do yield x }) + let append (arr1: ResizeArray<'T>) (arr2: ResizeArray<'T>) = concat [arr1; arr2] + + let sub (arr: ResizeArray<'T>) start len = + if start < 0 then invalidArg "start" "index must be positive" + if len < 0 then invalidArg "len" "length must be positive" + if start + len > length arr then invalidArg "len" "length must be positive" + new ResizeArray<_> (seq { for i in start .. start+len-1 -> arr.[i] }) + + let fill (arr: ResizeArray<'T>) (start: int) (len: int) (x:'T) = + if start < 0 then invalidArg "start" "index must be positive" + if len < 0 then invalidArg "len" "length must be positive" + if start + len > length arr then invalidArg "len" "length must be positive" + for i = start to start + len - 1 do + arr.[i] <- x + + let copy (arr: ResizeArray<'T>) = new ResizeArray<_>(arr) + + let toList (arr: ResizeArray<_>) = + let mutable res = [] + for i = length arr - 1 downto 0 do + res <- arr.[i] :: res + res + + let ofList (l: _ list) = + let len = l.Length + let res = new ResizeArray<_>(len) + let rec add = function + | [] -> () + | e::l -> res.Add(e); add l + add l + res + + let iter f (arr: ResizeArray<_>) = + for i = 0 to arr.Count - 1 do + f arr.[i] + + let map f (arr: ResizeArray<_>) = + let len = length arr + let res = new ResizeArray<_>(len) + for i = 0 to len - 1 do + res.Add(f arr.[i]) + res + + let mapi f (arr: ResizeArray<_>) = + let f = FSharpFunc<_,_,_>.Adapt(f) + let len = length arr + let res = new ResizeArray<_>(len) + for i = 0 to len - 1 do + res.Add(f.Invoke(i, arr.[i])) + res + + let iteri f (arr: ResizeArray<_>) = + let f = FSharpFunc<_,_,_>.Adapt(f) + for i = 0 to arr.Count - 1 do + f.Invoke(i, arr.[i]) + + let exists (f: 'T -> bool) (arr: ResizeArray<'T>) = + let len = length arr + let rec loop i = i < len && (f arr.[i] || loop (i+1)) + loop 0 + + let forall f (arr: ResizeArray<_>) = + let len = length arr + let rec loop i = i >= len || (f arr.[i] && loop (i+1)) + loop 0 + + let indexNotFound() = raise (new System.Collections.Generic.KeyNotFoundException("An index satisfying the predicate was not found in the collection")) + + let find f (arr: ResizeArray<_>) = + let rec loop i = + if i >= length arr then indexNotFound() + elif f arr.[i] then arr.[i] + else loop (i+1) + loop 0 + + let tryPick f (arr: ResizeArray<_>) = + let rec loop i = + if i >= length arr then None else + match f arr.[i] with + | None -> loop(i+1) + | res -> res + loop 0 + + let tryFind f (arr: ResizeArray<_>) = + let rec loop i = + if i >= length arr then None + elif f arr.[i] then Some arr.[i] + else loop (i+1) + loop 0 + + let iter2 f (arr1: ResizeArray<'T>) (arr2: ResizeArray<'b>) = + let f = FSharpFunc<_,_,_>.Adapt(f) + let len1 = length arr1 + if len1 <> length arr2 then invalidArg "arr2" "the arrays have different lengths" + for i = 0 to len1 - 1 do + f.Invoke(arr1.[i], arr2.[i]) + + let map2 f (arr1: ResizeArray<'T>) (arr2: ResizeArray<'b>) = + let f = FSharpFunc<_,_,_>.Adapt(f) + let len1 = length arr1 + if len1 <> length arr2 then invalidArg "arr2" "the arrays have different lengths" + let res = new ResizeArray<_>(len1) + for i = 0 to len1 - 1 do + res.Add(f.Invoke(arr1.[i], arr2.[i])) + res + + let choose f (arr: ResizeArray<_>) = + let res = new ResizeArray<_>() + for i = 0 to length arr - 1 do + match f arr.[i] with + | None -> () + | Some b -> res.Add(b) + res + + let filter f (arr: ResizeArray<_>) = + let res = new ResizeArray<_>() + for i = 0 to length arr - 1 do + let x = arr.[i] + if f x then res.Add(x) + res + + let partition f (arr: ResizeArray<_>) = + let res1 = new ResizeArray<_>() + let res2 = new ResizeArray<_>() + for i = 0 to length arr - 1 do + let x = arr.[i] + if f x then res1.Add(x) else res2.Add(x) + res1, res2 + + let rev (arr: ResizeArray<_>) = + let len = length arr + let res = new ResizeArray<_>(len) + for i = len - 1 downto 0 do + res.Add(arr.[i]) + res + + let foldBack (f : 'T -> 'State -> 'State) (arr: ResizeArray<'T>) (acc: 'State) = + let mutable res = acc + let len = length arr + for i = len - 1 downto 0 do + res <- f (get arr i) res + res + + let fold (f : 'State -> 'T -> 'State) (acc: 'State) (arr: ResizeArray<'T>) = + let mutable res = acc + let len = length arr + for i = 0 to len - 1 do + res <- f res (get arr i) + res + + let toArray (arr: ResizeArray<'T>) = arr.ToArray() + let ofArray (arr: 'T[]) = new ResizeArray<_>(arr) + let toSeq (arr: ResizeArray<'T>) = Seq.readonly arr + + let sort f (arr: ResizeArray<'T>) = arr.Sort (System.Comparison(f)) + let sortBy f (arr: ResizeArray<'T>) = arr.Sort (System.Comparison(fun x y -> compare (f x) (f y))) + + + let exists2 f (arr1: ResizeArray<_>) (arr2: ResizeArray<_>) = + let len1 = length arr1 + if len1 <> length arr2 then invalidArg "arr2" "the arrays have different lengths" + let rec loop i = i < len1 && (f arr1.[i] arr2.[i] || loop (i+1)) + loop 0 + + let findIndex f (arr: ResizeArray<_>) = + let rec go n = if n >= length arr then indexNotFound() elif f arr.[n] then n else go (n+1) + go 0 + + let findIndexi f (arr: ResizeArray<_>) = + let rec go n = if n >= length arr then indexNotFound() elif f n arr.[n] then n else go (n+1) + go 0 + + let foldSub f acc (arr: ResizeArray<_>) start fin = + let mutable res = acc + for i = start to fin do + res <- f res arr.[i] + res + + let foldBackSub f (arr: ResizeArray<_>) start fin acc = + let mutable res = acc + for i = fin downto start do + res <- f arr.[i] res + res + + let reduce f (arr : ResizeArray<_>) = + let arrn = length arr + if arrn = 0 then invalidArg "arr" "the input array may not be empty" + else foldSub f arr.[0] arr 1 (arrn - 1) + + let reduceBack f (arr: ResizeArray<_>) = + let arrn = length arr + if arrn = 0 then invalidArg "arr" "the input array may not be empty" + else foldBackSub f arr 0 (arrn - 2) arr.[arrn - 1] + + let fold2 f (acc: 'T) (arr1: ResizeArray<'T1>) (arr2: ResizeArray<'T2>) = + let f = FSharpFunc<_,_,_,_>.Adapt(f) + let mutable res = acc + let len = length arr1 + if len <> length arr2 then invalidArg "arr2" "the arrays have different lengths" + for i = 0 to len - 1 do + res <- f.Invoke(res,arr1.[i],arr2.[i]) + res + + let foldBack2 f (arr1: ResizeArray<'T1>) (arr2: ResizeArray<'T2>) (acc: 'b) = + let f = FSharpFunc<_,_,_,_>.Adapt(f) + let mutable res = acc + let len = length arr1 + if len <> length arr2 then invalidArg "arr2" "the arrays have different lengths" + for i = len - 1 downto 0 do + res <- f.Invoke(arr1.[i],arr2.[i],res) + res + + let forall2 f (arr1: ResizeArray<_>) (arr2: ResizeArray<_>) = + let len1 = length arr1 + if len1 <> length arr2 then invalidArg "arr2" "the arrays have different lengths" + let rec loop i = i >= len1 || (f arr1.[i] arr2.[i] && loop (i+1)) + loop 0 + + let isEmpty (arr: ResizeArray<_>) = length (arr: ResizeArray<_>) = 0 + + let iteri2 f (arr1: ResizeArray<'T>) (arr2: ResizeArray<'b>) = + let f = FSharpFunc<_,_,_,_>.Adapt(f) + let len1 = length arr1 + if len1 <> length arr2 then invalidArg "arr2" "the arrays have different lengths" + for i = 0 to len1 - 1 do + f.Invoke(i,arr1.[i], arr2.[i]) + + let mapi2 (f: int -> 'T -> 'b -> 'c) (arr1: ResizeArray<'T>) (arr2: ResizeArray<'b>) = + let f = FSharpFunc<_,_,_,_>.Adapt(f) + let len1 = length arr1 + if len1 <> length arr2 then invalidArg "arr2" "the arrays have different lengths" + init len1 (fun i -> f.Invoke(i, arr1.[i], arr2.[i])) + + let scanBackSub f (arr: ResizeArray<'T>) start fin acc = + let f = FSharpFunc<_,_,_>.Adapt(f) + let mutable state = acc + let res = create (2+fin-start) acc + for i = fin downto start do + state <- f.Invoke(arr.[i], state) + res.[i - start] <- state + res + + let scanSub f acc (arr : ResizeArray<'T>) start fin = + let f = FSharpFunc<_,_,_>.Adapt(f) + let mutable state = acc + let res = create (fin-start+2) acc + for i = start to fin do + state <- f.Invoke(state, arr.[i]) + res.[i - start+1] <- state + res + + let scan f acc (arr : ResizeArray<'T>) = + let arrn = length arr + scanSub f acc arr 0 (arrn - 1) + + let scanBack f (arr : ResizeArray<'T>) acc = + let arrn = length arr + scanBackSub f arr 0 (arrn - 1) acc + + let singleton x = + let res = new ResizeArray<_>(1) + res.Add(x) + res + + let tryFindIndex f (arr: ResizeArray<'T>) = + let rec go n = if n >= length arr then None elif f arr.[n] then Some n else go (n+1) + go 0 + + let tryFindIndexi f (arr: ResizeArray<'T>) = + let rec go n = if n >= length arr then None elif f n arr.[n] then Some n else go (n+1) + go 0 + + let zip (arr1: ResizeArray<_>) (arr2: ResizeArray<_>) = + let len1 = length arr1 + if len1 <> length arr2 then invalidArg "arr2" "the arrays have different lengths" + init len1 (fun i -> arr1.[i], arr2.[i]) + + let unzip (arr: ResizeArray<_>) = + let len = length arr + let res1 = new ResizeArray<_>(len) + let res2 = new ResizeArray<_>(len) + for i = 0 to len - 1 do + let x,y = arr.[i] + res1.Add(x) + res2.Add(y) + res1,res2 + + diff --git a/src/utils/resizearray.fsi b/src/utils/resizearray.fsi new file mode 100644 index 0000000..0ee00d3 --- /dev/null +++ b/src/utils/resizearray.fsi @@ -0,0 +1,230 @@ +//---------------------------------------------------------------------------- +// Copyright (c) 2002-2012 Microsoft Corporation. +// +// This source code is subject to terms and conditions of the Apache License, Version 2.0. A +// copy of the license can be found in the License.html file at the root of this distribution. +// By using this source code in any fashion, you are agreeing to be bound +// by the terms of the Apache License, Version 2.0. +// +// You must not remove this notice, or any other, from this software. +//---------------------------------------------------------------------------- + + +namespace Internal.Utilities + + +open System +open System.Collections.Generic +open Microsoft.FSharp.Core +open Microsoft.FSharp.Collections + +[] +/// Generic operations on the type System.Collections.Generic.List, which is called ResizeArray in the F# libraries. +module internal ResizeArray = + + /// Return the length of the collection. You can also use property arr.Length. + val length: ResizeArray<'T> -> int + + /// Fetch an element from the collection. You can also use the syntax arr.[idx]. + val get: ResizeArray<'T> -> int -> 'T + + /// Set the value of an element in the collection. You can also use the syntax arr.[idx] <- e. + val set: ResizeArray<'T> -> int -> 'T -> unit + + /// Create an array whose elements are all initially the given value. + val create: int -> 'T -> ResizeArray<'T> + + /// Create an array by calling the given generator on each index. + val init: int -> (int -> 'T) -> ResizeArray<'T> + + ///Build a new array that contains the elements of the first array followed by the elements of the second array + val append: ResizeArray<'T> -> ResizeArray<'T> -> ResizeArray<'T> + + ///Build a new array that contains the elements of each of the given list of arrays + val concat: ResizeArray<'T> list -> ResizeArray<'T> + + ///Build a new array that contains the given subrange specified by + ///starting index and length. + val sub: ResizeArray<'T> -> int -> int -> ResizeArray<'T> + + ///Build a new array that contains the elements of the given array + val copy: ResizeArray<'T> -> ResizeArray<'T> + + ///Fill a range of the collection with the given element + val fill: ResizeArray<'T> -> int -> int -> 'T -> unit + + ///Read a range of elements from the first array and write them into the second. + val blit: ResizeArray<'T> -> int -> ResizeArray<'T> -> int -> int -> unit + + ///Build a list from the given array + val toList: ResizeArray<'T> -> 'T list + + ///Build an array from the given list + val ofList: 'T list -> ResizeArray<'T> + + /// Apply a function to each element of the collection, threading an accumulator argument + /// through the computation. If the input function is f and the elements are i0...iN + /// then computes f (... (f s i0)...) iN + val fold: ('T -> 'U -> 'T) -> 'T -> ResizeArray<'U> -> 'T + + /// Apply a function to each element of the array, threading an accumulator argument + /// through the computation. If the input function is f and the elements are i0...iN then + /// computes f i0 (...(f iN s)). + val foldBack: ('T -> 'U -> 'U) -> ResizeArray<'T> -> 'U -> 'U + + ///Apply the given function to each element of the array. + val iter: ('T -> unit) -> ResizeArray<'T> -> unit + + ///Build a new array whose elements are the results of applying the given function + ///to each of the elements of the array. + val map: ('T -> 'U) -> ResizeArray<'T> -> ResizeArray<'U> + + ///Apply the given function to two arrays simultaneously. The + ///two arrays must have the same lengths, otherwise an Invalid_argument exception is + ///raised. + val iter2: ('T -> 'U -> unit) -> ResizeArray<'T> -> ResizeArray<'U> -> unit + + ///Build a new collection whose elements are the results of applying the given function + ///to the corresponding elements of the two collections pairwise. The two input + ///arrays must have the same lengths. + val map2: ('T -> 'U -> 'c) -> ResizeArray<'T> -> ResizeArray<'U> -> ResizeArray<'c> + + ///Apply the given function to each element of the array. The integer passed to the + ///function indicates the index of element. + val iteri: (int -> 'T -> unit) -> ResizeArray<'T> -> unit + + ///Build a new array whose elements are the results of applying the given function + ///to each of the elements of the array. The integer index passed to the + ///function indicates the index of element being transformed. + val mapi: (int -> 'T -> 'U) -> ResizeArray<'T> -> ResizeArray<'U> + + /// Test if any element of the array satisfies the given predicate. + /// If the input function is f and the elements are i0...iN + /// then computes p i0 or ... or p iN. + val exists: ('T -> bool) -> ResizeArray<'T> -> bool + + /// Test if all elements of the array satisfy the given predicate. + /// If the input function is f and the elements are i0...iN and "j0...jN" + /// then computes p i0 && ... && p iN. + val forall: ('T -> bool) -> ResizeArray<'T> -> bool + + ///Return a new collection containing only the elements of the collection + ///for which the given predicate returns true + val filter: ('T -> bool) -> ResizeArray<'T> -> ResizeArray<'T> + + ///Split the collection into two collections, containing the + ///elements for which the given predicate returns true and false + ///respectively + val partition: ('T -> bool) -> ResizeArray<'T> -> ResizeArray<'T> * ResizeArray<'T> + + ///Apply the given function to each element of the array. Return + ///the array comprised of the results "x" for each element where + ///the function returns Some(x) + val choose: ('T -> 'U option) -> ResizeArray<'T> -> ResizeArray<'U> + + ///Return the first element for which the given function returns true. + ///Raise KeyNotFoundException if no such element exists. + val find: ('T -> bool) -> ResizeArray<'T> -> 'T + + ///Return the first element for which the given function returns true. + ///Return None if no such element exists. + val tryFind: ('T -> bool) -> ResizeArray<'T> -> 'T option + + ///Apply the given function to successive elements, returning the first + ///result where function returns "Some(x)" for some x. + val tryPick: ('T -> 'U option) -> ResizeArray<'T> -> 'U option + + ///Return a new array with the elements in reverse order + val rev: ResizeArray<'T> -> ResizeArray<'T> + + /// Sort the elements using the given comparison function + val sort: ('T -> 'T -> int) -> ResizeArray<'T> -> unit + + /// Sort the elements using the key extractor and generic comparison on the keys + val sortBy: ('T -> 'Key) -> ResizeArray<'T> -> unit when 'Key : comparison + + /// Return a fixed-length array containing the elements of the input ResizeArray + val toArray : ResizeArray<'T> -> 'T[] + /// Build a ResizeArray from the given elements + val ofArray : 'T[] -> ResizeArray<'T> + /// Return a view of the array as an enumerable object + val toSeq : ResizeArray<'T> -> seq<'T> + + /// Test elements of the two arrays pairwise to see if any pair of element satisfies the given predicate. + /// Raise ArgumentException if the arrays have different lengths. + val exists2 : ('T -> 'U -> bool) -> ResizeArray<'T> -> ResizeArray<'U> -> bool + + /// Return the index of the first element in the array + /// that satisfies the given predicate. Raise KeyNotFoundException if + /// none of the elements satisfy the predicate. + val findIndex : ('T -> bool) -> ResizeArray<'T> -> int + + /// Return the index of the first element in the array + /// that satisfies the given predicate. Raise KeyNotFoundException if + /// none of the elements satisfy the predicate. + val findIndexi : (int -> 'T -> bool) -> ResizeArray<'T> -> int + + /// Apply a function to each element of the array, threading an accumulator argument + /// through the computation. If the input function is f and the elements are i0...iN + /// then computes f (... (f i0 i1)...) iN. Raises ArgumentException if the array has size zero. + val reduce : ('T -> 'T -> 'T) -> ResizeArray<'T> -> 'T + + /// Apply a function to each element of the array, threading an accumulator argument + /// through the computation. If the input function is f and the elements are i0...iN then + /// computes f i0 (...(f iN-1 iN)). Raises ArgumentException if the array has size zero. + val reduceBack : ('T -> 'T -> 'T) -> ResizeArray<'T> -> 'T + + /// Apply a function to pairs of elements drawn from the two collections, + /// left-to-right, threading an accumulator argument + /// through the computation. The two input + /// arrays must have the same lengths, otherwise an ArgumentException is + /// raised. + val fold2: ('state -> 'b1 -> 'b2 -> 'state) -> 'state -> ResizeArray<'b1> -> ResizeArray<'b2> -> 'state + + /// Apply a function to pairs of elements drawn from the two collections, right-to-left, + /// threading an accumulator argument through the computation. The two input + /// arrays must have the same lengths, otherwise an ArgumentException is + /// raised. + val foldBack2 : ('a1 -> 'a2 -> 'U -> 'U) -> ResizeArray<'a1> -> ResizeArray<'a2> -> 'U -> 'U + + /// Test elements of the two arrays pairwise to see if all pairs of elements satisfy the given predicate. + /// Raise ArgumentException if the arrays have different lengths. + val forall2 : ('T -> 'U -> bool) -> ResizeArray<'T> -> ResizeArray<'U> -> bool + + /// Return true if the given array is empty, otherwise false + val isEmpty : ResizeArray<'T> -> bool + + /// Apply the given function to pair of elements drawn from matching indices in two arrays, + /// also passing the index of the elements. The two arrays must have the same lengths, + /// otherwise an ArgumentException is raised. + val iteri2 : (int -> 'T -> 'U -> unit) -> ResizeArray<'T> -> ResizeArray<'U> -> unit + + /// Build a new collection whose elements are the results of applying the given function + /// to the corresponding elements of the two collections pairwise. The two input + /// arrays must have the same lengths, otherwise an ArgumentException is + /// raised. + val mapi2 : (int -> 'T -> 'U -> 'c) -> ResizeArray<'T> -> ResizeArray<'U> -> ResizeArray<'c> + + /// Like fold, but return the intermediary and final results + val scan : ('U -> 'T -> 'U) -> 'U -> ResizeArray<'T> -> ResizeArray<'U> + + /// Like foldBack, but return both the intermediary and final results + val scanBack : ('T -> 'c -> 'c) -> ResizeArray<'T> -> 'c -> ResizeArray<'c> + + /// Return an array containing the given element + val singleton : 'T -> ResizeArray<'T> + + /// Return the index of the first element in the array + /// that satisfies the given predicate. + val tryFindIndex : ('T -> bool) -> ResizeArray<'T> -> int option + + /// Return the index of the first element in the array + /// that satisfies the given predicate. + val tryFindIndexi : (int -> 'T -> bool) -> ResizeArray<'T> -> int option + + /// Combine the two arrays into an array of pairs. The two arrays must have equal lengths, otherwise an ArgumentException is + /// raised.. + val zip : ResizeArray<'T> -> ResizeArray<'U> -> ResizeArray<'T * 'U> + + /// Split an array of pairs into two arrays + val unzip : ResizeArray<'T * 'U> -> ResizeArray<'T> * ResizeArray<'U>